[아파치] 앞단에 프록시 서버를 두었을 때 실제 아이피 추적하기 (mod_rpaf)
그물터 관리/웹 서버
2013/01/18 13:07
앞단에 프록시 서버(proxy server)를 두고 운영하는 아파치(apache) 서버에서 아이피(IP) 문제를 전혀 신경 쓰지 않는다면, 아래처럼 아파치 서버의 접근 기록(access log)에 접근한 이의 실제 아이피(real IP)가 아니라 프록시 서버의 공인 아이피나 127.0.0.1 같은 내부 아이피가 남을 수 있다.
127.0.0.1 - - [12/Jan/2013:03:41:00 +0900] "GET /xe/12642 HTTP/1.0" 200 19329
127.0.0.1 - - [12/Jan/2013:03:41:04 +0900] "GET /1637?commentId=219 HTTP/1.0" 200 16144
127.0.0.1 - - [12/Jan/2013:03:41:04 +0900] "GET /rss HTTP/1.0" 200 294379
127.0.0.1 - - [12/Jan/2013:03:41:04 +0900] "GET /1637?commentId=219 HTTP/1.0" 200 16144
127.0.0.1 - - [12/Jan/2013:03:41:04 +0900] "GET /rss HTTP/1.0" 200 294379
이 때문에 관리자 화면에 덧글 단 사람의 아이피를 제대로 나타내지 못하는 게시판이나 블로그 도구가 몇몇 있다.주1
먼저 앞단 프록시 서버에서 실제 아이피를 잘 전달하게 설정했다면, 아파치 서버에서는 mod_rpaf를 써서 실제 아이피정보를 전달받아 기록에 남길 수 있다. CentOS 등에서는 yum으로 mod_rpaf를 설치할 수 있다.
# yum install mod_rpaf
아파치가 설치된 서버에서 다음 내용이 들어 있는 /etc/httpd/conf.d/mod_rpaf.conf 파일을 연다.
LoadModule rpaf_module modules/mod_rpaf.so
<IfModule mod_rpaf.c>
RPAF_Enable On
RPAF_ProxyIPs 127.0.0.1 127.0.0.2
RPAF_Header X-Forwarded-For
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On
</IfModule>
<IfModule mod_rpaf.c>
RPAF_Enable On
RPAF_ProxyIPs 127.0.0.1 127.0.0.2
RPAF_Header X-Forwarded-For
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On
</IfModule>
RPAF_ProxyIPs 항목에 실제 아이피를 추적할 내부 아이피나 서버의 아이피를 쭉 적어 준다. 아파치 서비스(httpd)를 다시 시작하고 나면, 접근자의 실제 아이피 정보가 아파치의 접근 기록에 쌓인다.
덧글을 달아 주세요