아파치 GeoIP를 이용한 국가별 제한

아파치 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>


코멘트 쓰기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



배송정보
배송조회를 하시려면 송장번호를 클릭하세요
배송조회
상품명
주문번호
택배사
송장번호