XFF(1) - 정의 및 적용방법 본문
결제 모듈, 접근 제어를 비롯한 다양한 분야에서 개발할 때 클라이언트의 실제 IP 주소가 필요한 경우가 많습니다. 하지만 웹서버 상단에 프록시 서버, 캐싱서버 장비가 있으며 HTTPS로 통신을 시도할 경우, 웹서버에서는 상단의 프록시 서버나 캐싱서버에서 접근하는 것으로 인식되어 웹 로그에 상단 서버의 IP를 남기게 됩니다.
이번에는 이러한 경우에서 웹서버가 클라이언트 IP를 식별할 수 있게 하는 XFF 헤더에 대해 알아보겠습니다.
XFF X-Forwarded-For
HTTP 요청 헤더 중 하나로 프록시 장비를 거쳐서 웹 서버에 연결될 때 클라이언트의 IP 주소를 식별하는 방법입니다. HTTP 프로토콜은 평문이라 클라이언트 IP를 숨기지 않아 하단 서버에서 클라이언트 IP를 식별할 수 있으나, HTTPS 프로토콜을 사용하게 되면 보안상의 이유로 클라이언트 IP를 숨기게 됩니다. 따라서 각 프록시 서버에 이 XFF설정을 적용하여 헤더에 클라이언트 IP를 추가하고, 복호화를 시켜주어 상단 서버에 도달하는 패킷 헤더에 클라이언트 IP가 숨겨지지 않도록 해야합니다.
XFF 설정 방법
XFF는 해당 시스템을 사용하기 위해 통신되는 모든 프록시 서버 및 웹서버에 적용을 해야만 합니다.
각 서버의 XFF 설정 방법은 아래를 참고하시기 바랍니다.
1. Apache XFF 설정 방법
1) Apache 경로로 이동 후 httpd.conf 파일 확인
$ cd /usr/local/httpd/conf
2) httpd.conf 백업본 생성
$ cp -aurp httpd.conf httpd.conf_240508
3) httpd.conf에 LogFormat 항목 수정
$ vim httpd.conf
## httpd.conf 수정 전
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
## httpd.conf 수정 후
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
4) httpd 데몬 재기동
2. Apache2 XFF 설정 방법
1) Apache2 경로로 이동 후 apache2.conf 파일 확인
$ cd /etc/apache2
2) apache2.conf 백업본 생성
$ cp -aurp apache2.conf apache2.conf_240508
3) apache2.conf에 LogFormat 항목 수정
$ vim apache2.conf
## apache2.conf 수정 전
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
## apache2.conf 수정 후
LogFormat "%a %l %u %t \"%r\" %>s %b" common
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
4) apache2 데몬 재기동
3. Nginx XFF 설정 방법
1) nginx 경로로 이동 후 nginx.conf 파일 확인
$ cd /etc/nginx
2) nginx.conf 백업본 생성
$ cp -aurp nginx.conf nginx.conf_240508
3) nginx.conf 내 http 블록에 XFF 헤더 설정 추가
$ vim nginx.conf
http {
...
real_ip_header X-Forwarded-For;
...
}
4) nginx 데몬 재기동
이외의 서버 XFF 설정 방법은 추가 예정..
'WEB' 카테고리의 다른 글
XFF(2) - 예시 및 고려사항 (1) | 2024.05.14 |
---|---|
[TS][NGINX] Ubuntu 서버 내 Nginx 설치 후 기동 오류 (0) | 2024.03.14 |