아파치 1.3 버전 GEOIP를 이용한 해외망 아파치 차단 (하단 apache2.x 적용)
GeoIP데이터를 apache에서 사용하기위해서는 mod_geoip를 설치하기에 앞서
GeoIP C API를 먼저 설치하여야 한다
하지만 O/S 버전이 CENTOS 4. 이상 YUM 서비스를 지원한다면 YUM으로 설치할수 있다
[root@ns1 ~]# yum -y install GeoIP GeoIP-devel GeoIP-data perl-Geo-IP
YUM 서비스 지원되지 않는 운용체제에서는 아래와 같이 컴파일 작업을 진행한다 ㅋ
다운로드 : http://www.maxmind.com/app/c
[root@ns1 ~]#wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
[root@ns1 ~]# tar xvfz GeoIP.tar.gz
[root@ns1 ~]# cd GeoIP-1.4.6/
[root@ns1 GeoIP-1.4.6]# ./configure && make && make install
[root@ns1 GeoIP-1.4.6]# cd /root
=== 아파치 모듈 컴파일하기 =========================
[root@ns1 ~]# wget http://geolite.maxmind.com/download/geoip/api/mod_geoip/mod_geoip_1.3.4.tar.gz
[root@ns1 ~]# tar xvfz mod_geoip_1.3.4.tar.gz
[root@ns1 ~]# cd mod_geoip_1.3.4
[root@ns1 mod_geoip_1.3.4]# /usr/local/apache/bin/apxs -i -a -L/usr/local/include -I/usr/local/lib -lGeoIP -c mod_geoip.c
모듈확인
[root@ns1 mod_geoip_1.3.4]# ll /usr/local/apache/libexec/
합계 24
-rw-r–r– 1 root root 7587 8월 4 2009 httpd.exp
-rwxr-xr-x 1 root root 16087 8월 10 14:09 mod_geoip.so
GeoIP 데이터 파일 다운로드 및 설치
[root@ns1 mod_geoip_1.3.4]# cd /root
[root@ns1 ~]# wget http://mirror.koreaidc.com/geoip/GeoLiteCity.dat.gz
[root@ns1 ~]# gzip -d GeoLiteCity.dat.gz
[root@ns1 ~]# mkdir /var/geoip/
[root@ns1 ~]# mv GeoLiteCity.dat /var/geoip/
HTTPD.CONF 파일에 추가
[root@ns1 mod_geoip_1.3.4]# vi /usr/local/apache/conf/httpd.conf
아래 내용은 한국 국가만 허용하고 나머지 국각에 대해서는 접속 거부
<IfModule geoip_module>
GeoIPEnable On
GeoIPDBFile /var/geoip/GeoLiteCity.dat
<Location /image>
SetEnvIf GEOIP_COUNTRY_CODE KR go_in
<Limit GET POST>
Order Deny,Allow
Deny from all
Allow from env=go_in
</Limit>
</Location>
</IfModule>
################# 아파치 2. 버전 =====================================
YUM서비스를 이용하여 GEOIP를 설치한다
아파치 모듈 컴파일
[root@ns1 ~] wget http://mirror.koreaidc.com/geoip/mod_geoip2_1.2.5.tar.gz
[root@ns1 ~] tar xvfz mod_geoip2_1.2.5.tar.gz
[root@ns1 ~] mod_geoip_1.3.4]# cd /root
[root@ns1 ~]# wget http://mirror.koreaidc.com/geoip/GeoLiteCity.dat.gz
[root@ns1 ~]# gzip -d GeoLiteCity.dat.gz
[root@ns1 ~]# mkdir /var/geoip/
[root@ns1 ~]# mv GeoLiteCity.dat /var/geoip/
HTTPD.CONF 파일에 추가
[root@ns1 ~] vi /usr/local/apache/conf/httpd.conf
<IfModule geoip_module>
GeoIPEnable On
GeoIPDBFile /var/geoip/GeoLiteCity.dat
<Location /image>
SetEnvIf GEOIP_COUNTRY_CODE KR go_in
<Limit GET POST>
Order Deny,Allow
Deny from all
Allow from env=go_in
</Limit>
</Location>
</IfModule>
만약 위에서 yum으로 설치했다면 /var/lib/GeoIP/GeoIP.dat 이곳에 데이터파일이 존재한다
사용자 환경에 맞게 구성하면 된다
============================================================================
특정국가별로 접근을 제한하기위해서는 아래와같이 설정을 추가하면된다
<IfModule geoip_module>
GeoIPEnable On
GeoIPDBFile /var/lib/GeoIP/GeoIP.dat
<Location /image>
SetEnvIf GEOIP_COUNTRY_CODE CN go_out
SetEnvIf GEOIP_COUNTRY_CODE RU go_out
SetEnvIf GEOIP_COUNTRY_CODE TH go_out
<Limit GET POST>
Order Allow,Deny
Allow from all
Deny from env=go_out
</Limit>
</Location>
</IfModule>