5.2. 알려진 프록시
자동화 컨트롤러가 REMOTE_HOST_HEADERS = ['HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR', 'REMOTE_HOST']
로 설정된 경우 X-Forwarded-For
의 값은 자동화 컨트롤러 앞에 묶은 프록시/로드 밸런서에서 시작된 것으로 가정합니다. 프록시/로드 밸런서를 사용하지 않고 자동화 컨트롤러에 연결할 수 있거나 프록시에서 헤더를 확인하지 않는 경우 X-Forwarded-For
값은 원래 IP 주소를 위조하기 위해 falsified될 수 있습니다. REMOTE
_FOR을 사용하면 문제가 발생합니다.
_HOST_HEADERS
설정에서 HTTP_X_FOR
이를 방지하려면 자동화 컨트롤러의 설정 메뉴에서 PROXY_IP_ALLOWED_LIST 필드를 사용하여 허용되는 알려진 프록시 목록을 구성할 수 있습니다. 알려진 프록시 목록에 없는 로드 밸런서 및 호스트는 거부된 요청을 생성합니다.
5.2.1. 알려진 프록시 구성
자동화 컨트롤러에 대해 알려진 프록시 목록을 구성하려면 자동화 컨트롤러의 설정 페이지의 프록시 IP 주소를 PROXY_IP_ALLOWED_LIST 필드에 추가합니다.
절차
-
자동화 컨트롤러에서
으로 이동합니다. PROXY_IP_ALLOWED_LIST 필드에 다음과 같이 자동화 컨트롤러에 연결할 수 있는 IP 주소를 입력합니다.
PROXY_IP_ALLOWED_LIST 항목 예
[ "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_FORWARDED_FOR
을 'REMOTE_HOST_HEADERS'의 항목으로 구성하지 마십시오.- ssl 종료와 함께 프록시된 환경을 사용하고 있습니다.
-
프록시는 클라이언트 스푸핑을 방지하기 위해
X-Forwarded-For
헤더의 sanitization 또는 검증 기능을 제공합니다. -
/etc/tower/conf.d/remote_host_headers.py
는 신뢰할 수 있는 프록시 또는 로드 밸런서의 원래 IP 주소만 포함하는PROXY_IP_ALLOWED_LIST
를 정의합니다.