호스트 헤더 공격에 대한 보호를 강화하기 위해 UAG(Unified Access Gateway)는 기본적으로 모든 수신 요청에서 HTTP 호스트 및 X-Forwarded-Host 헤더의 유효성을 검사합니다. 이 유효성 검사는 동적으로 계산되고 명시적으로 구성된 호스트 이름과 포트를 모두 포함하는 허용된 호스트 헤더 목록에 적용됩니다.
호스트 헤더 유효성 검사 목록
자동 허용 목록
UAG 네트워크, 고가용성 및 Edge 서비스 설정이 저장되면 다음 항목이 자동 허용 호스트 헤더 목록에 자동으로 추가됩니다.
자동 허용 목록의 항목은 참조 전용입니다.
- 개별 네트워크 인터페이스 IP
- 시스템 구성의 UAG 이름
- 고가용성 가상 IP
- Horizon 설정
- Tunnel 및 Blast에 대해 구성된 외부 URL
- Blast 외부 URL 및 추가 Blast 외부 URL
- Tunnel 외부 URL 및 추가 Tunnel 외부 URL
- 호스트 포트 리디렉션 매핑 항목
- 웹 역방향 프록시 설정의 프록시 호스트 패턴 및 외부 URL
다음 호스트 헤더 형식의 수신 요청은 해당 값이 자동 허용 목록의 항목과 일치하는 경우 허용됩니다.
- <호스트 이름 또는 IP>
- <호스트 이름 또는 IP>:443
- <호스트 이름 또는 IP>:80
- <호스트 이름 또는 IP>:9443
- <hostname 또는 IP>:<기타 자동 허용 포트>
수락된 호스트 헤더의 예
시나리오 1: uag.myco.com이 자동으로 허용되는 경우 다음 호스트 헤더가 수락됩니다.
uag.myco.comuag.myco.com:443uag.myco.com:80(포트 9443에서 관리 인터페이스에 연결할 때 허용되지 않음)uag.myco.com:9443(포트 9443에서 관리 인터페이스에 연결할 때만 허용됨)
시나리오 2: test.com:10443이 자동으로 허용되는 경우 test.com:10443만 수락됩니다.
명시적으로 구성된 목록
HTTP 요청이 동적으로 계산된 것 이외의 호스트 헤더 값을 사용하여 Unified Access Gateway에 도착하는 경우 관리자는 다음 옵션 중 하나를 사용하여 이러한 값을 허용 목록에 명시적으로 추가해야 합니다.
-
옵션 1: [관리 UI] > [시스템 구성]에서 허용된 호스트 헤더 설정을 사용합니다.
-
옵션 2: PowerShell 스크립트를 통해 배포하는 동안
.ini파일을 사용합니다.샘플 구성
[일반]
allowedHostHeaderValues=abc.com,abc.com:10443,uag1.example.com,uag-lb.example.com -
옵션 3: 다음 CLI 명령을 사용합니다.
adminreset --allowedHostHeader
포트별 검증 논리
-
일반 호스트 이름(예:
uag1.myco.com)이 추가된 경우, Unified Access Gateway는 포트 443, 80, 9443 및 빈 포트를 가진 호스트 헤더가 있는 요청을 자동으로 허용합니다. -
특정 포트가 있는 호스트 이름(예:
uag1.myco.com:10443)이 추가되면 명시적으로 나열된 host:port가 있는 요청만 허용됩니다.
허용된 헤더 형식의 예
| 허용된 호스트 헤더 | 수신 호스트 헤더 | 허용됨? |
|---|---|---|
uag.myco.com | uag.myco.com:443 | 예 |
uag.myco.com | uag.myco.com:9443 | 예 |
uag.myco.com:10443 | uag.myco.com:9443 | 아니요(관리자 논리) |
uag.myco.com:10443 | uag.myco.com:443 | 아니요 |
호스트 헤더 유효성 검사 문제 해결
수신 요청의 호스트 헤더 값이 허용된 목록에 속하지 않으면 UAG는 HTTP 400으로 응답합니다.
다음 로그 파일에서 거부 메시지를 확인합니다.
/opt/omnissa/gateway/logs/admin.log(관리 서비스)
/opt/omnissa/gateway/logs/esmanager.log(Horizon/웹 역방향 프록시 트래픽)
일반 로그 메시지
-
Rejecting request from <source>. The request was rejected because the domain <uag-hostname> is untrusted. -
UAGW00388: Sending bad request. Incoming request does not have valid host header: <host-header-value>, XFH: <xfh-header-value> -
Redirect host <redirect-host> does not match the allowed hosts. Hence sending 400
이 페이지가 도움이 되었나요?