4.2. 알려진 프록시
자동화 컨트롤러가 REMOTE_HOST_HEADERS = ['HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR', 'REMOTE_HOST']
로 구성된 경우 X-Forwarded-For
의 값이 자동화 컨트롤러 앞에 있는 프록시/로드 밸런서에서 발생했다고 가정합니다. 프록시/로드 밸런서를 사용하지 않고 자동화 컨트롤러에 도달하거나 프록시에서 헤더의 유효성을 검사하지 않는 경우 X-Forwarded-For
의 값을 위조하여 원래 IP 주소를 위조할 수 있습니다. REMOTE
_FOR를 사용하면 취약점이 발생합니다.
_HOST_HEADERS
설정에서 HTTP_X_FORARDED
이를 방지하려면 자동화 컨트롤러의 설정 메뉴에서 PROXY_IP_ALLOWED_LIST 필드를 사용하여 허용되는 알려진 프록시 목록을 구성할 수 있습니다. 알려진 프록시 목록에 없는 로드 밸런서와 호스트는 거부된 요청을 생성합니다.
4.2.1. 알려진 프록시 구성
자동화 컨트롤러에 대해 알려진 프록시 목록을 구성하려면 자동화 컨트롤러의 설정 페이지의 PROXY_IP_ALLOWED_LIST 필드에 프록시 IP 주소를 추가합니다.
절차
- 자동화 컨트롤러에서 기타 시스템 설정을 선택합니다. 이동하여 시스템 옵션 목록에서
PROXY_IP_ALLOWED_LIST 필드에 아래 예제의 구문에 따라 자동화 컨트롤러에 연결할 수 있는 IP 주소를 입력합니다.
PROXY_IP_ALLOWED_LIST 항목 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [ "example1.proxy.com:8080", "example2.proxy.com:8080" ]
[ "example1.proxy.com:8080", "example2.proxy.com:8080" ]
-
PROXY_IP_ALLOWED_LIST
는 목록의 프록시가 헤더 입력을 올바르게 제거하고 클라이언트의 실제 소스 IP와 동일한X-Forwarded-For
값을 올바르게 설정해야 합니다. 자동화 컨트롤러는PROXY_IP_ALLOWED_LIST
의 IP 주소 및 호스트 이름을 사용하여X-Forwarded-For
필드에 스푸핑되지 않은 값을 제공할 수 있습니다. 다음 조건이 모두 충족되지 않는 한
HTTP_X_FOR
을 'REMOTE_HOST_HEADERS'의 항목으로 구성하지 마십시오.- ssl 종료가 있는 프록시된 환경을 사용하고 있습니다.
-
프록시는 클라이언트 스푸핑을 방지하기 위해
X-Forwarded-For
헤더의 종료 또는 검증을 제공합니다. -
/etc/tower/conf.d/remote_host_headers.py
는 신뢰할 수 있는 프록시 또는 로드 밸런서의 원래 IP 주소만 포함하는PROXY_IP_ALLOWED_LIST
를 정의합니다.