2008. 4. 15.

[아파치] 가상서버 내 아차피 로그설정시 리모트 IP 옵션

[아파치] 가상서버 내 아차피 로그설정시 리모트 IP 옵션
일반적으로 가상호스트의 아파치 로그 설정은

LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

이렇습니다. %v 가 가상호스트명이고, %h 가 리모트 ip 입니다.

근데 가상서버내에서는 %h 가 게이트웨이 IP 로 나오기 때문에 조금 수정이 필요합니다.

LogFormat "%v %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

여기서 %h 를 %{X-Forwarded-For}i 로 변경해 주서야 합니다.

HTTP Header 값인 X-Forwarded-For 를 바로 사용하는 것입니다.

가상서버 이용에 참고하시기 바랍니다.




reverse proxy add forward module로 해결하기
가상서버에서 방문자 IP가 잡히지 않는 문제는 아파치로그 뿐만이 아닌 웹솔루션 소스를 뜯어 고쳐야 하는 것과 사이트 관리상에 상당한 문제점이 발생할 수 있습니다. 따라서 이러한 문제를 근본적으로 해결할 수 있는 것이 바로 reverse proxy add forward(RPAF)입니다. 이 모듈을 올려주면 이러한 문제가 해결이 되므로 가상서버, VPS, UML에서는 필수적인 모듈입니다.

1. 설치방법 방법은 http://www.just4fun.co.kr/drupal/?q=node/233 에서 소개한 것처럼 하면 됩니다.
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/httpd/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

2. mod_rpaf-2.0라는 공유객체가 생성이 되면 아파치 모듈에 자동 복사되어 넣어집니다. LoadModue에도 자동 추가 됩니다.(httpd.conf)
LoadModule rpaf_module modules/mod_rpaf-2.0.so

3. 다음을 2번 아래에 추가합니다.
RPAFenable On
RPAFsethostname On
RPAFproxy_ips [내부IP]

여기서 내부IP는 자신의 가상서버의 IP가 아닌 또다른 내부IP입니다. 제생각에는 포워딩을 해주는 프록시 IP같은데, 아파치 로그를 보면 계속 어떤 특정한 IP로 찍히는 것을 확인할 수 있을 것입니다. 그것을 기입합니다. (예를들면 10.0.0.177 또는 192.0.0.20)
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 10.0.0.177

4. 이제 아파치를 재가동하면 정상적으로 IP가 기록되는 것을 로그파일로 확인할 수 있습니다.
5. 로그설정에서 IP(X-Forwarded-For)식으로 2개를 활용하면 IP(실제IP)가 잡힙니다.

*** 간혹 프록시를 이용해서 장난치는 경우도 실제IP를 파악할 수 있습니다.

댓글 없음: