아파치에 GeoIP 모듈 설치하는 방법


GeoIP 란 MaxMind 에서 제공하는 국가별로 IP를 확인할 수 있는 오픈소스 라이브러리로 이를 이용하여 서버에 접근 하는 아이피를 국가별로 관리할 수 있습니다.


http://www.maxmind.com


(1) GeoIP C API 설치하기


1.

- GeoIP C API를 다운 받아 설치 합니다.


http://geolite.maxmind.com/download/geoip/api/c/


#wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz


2

- 압축을 해제 합니다.


#tar zxvf GeoIP-1.4.6.tar.gz


3.
- 해제된 디렉토리로 이동 후 설치 디렉토리를 지정하여 ./configure 합니다.


#cd GeoIP-1.4.6
#./configure --prefix=/usr/local/GeoIP


4.
- 컴파일 및 설치를 진행 합니다.


#make && make install


5.
GeoIP의 ip 목록을 최신정보로 갱신하기 위하여 GeoIP.dat 를 다운받아 설치된 위치에 복사 합니다.


- 국가 정보 다운로드


#wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz


- 도시 정보 다운로드


#wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz


- 압축 해제


#gzip -d GeoIP.dat.gz
#gzip -d GeoLiteCity.dat.gz


- 해제된 파일을 GeoIP가 설치된 위치에 덮어쓰기


#cp -a GeoIP.dat /usr/local/GeoIP/share/GeoIP/
#cp -a GeoLiteCity.dat /usr/local/GeoIP/share/GeoIP/


(2)
geoip모듈을 아파치에 설치하기.


1.mod_geoip를 다운 받습니다.


아파치 1.x 용


http://geolite.maxmind.com/download/geoip/api/mod_geoip/


아파치 2.x 용


http://geolite.maxmind.com/download/geoip/api/mod_geoip2/


ex)아파치 2.x용 다운로드


#wget http://geolite.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.5.tar.gz


2

.
압축을 해제 합니다.


#tar zxvf mod_geoip2_1.2.5.tar.gz


3.
해제된 위치로 이동 후 c파일을 apxs를 이용하여 설치 합니다.


#cd mod_geoip2_1.2.5


#[아파치 apxs경로] -i -a -L[geoip설치디렉토리의lib경로] -I[geoip설치디렉토리의include경로] -lGeoIP -c [mod_geoip.c 경로] ## 옵션의 대소문자 주의 -lGeoIP = 소문자 l로 시작

#/usr/local/apache/bin/apxs -i -a -L/usr/local/GeoIP/lib -I/usr/local/GeoIP/include -lGeoIP -c /root/mod_geoip2_1.2.5/mod_geoip.c


4.
모듈이 정상적으로 설치,로드 되었는지 확인합니다.


#ls -al /usr/local/apache/modules/mod_geoip.so
-rwxr-xr-x 1 root root 38179  3월 26 13:16 /usr/local/apache/modules/mod_geoip.so


- httpd.conf 파일의 LoadModule 위치에 추가 되었는지 확인


LoadModule geoip_module       modules/mod_geoip.so


- phpinfo 페이지의 Apache Environment 정보에 GEOIP_CONTINENT_CODE, GEOIP_COUNTRY_CODE, GEOIP_COUNTRY_NAME 항목 확인


5.
httpd.conf에 mod_geoip 모듈의 적용 내용을 설정합니다.


특정 국가의 접근 차단


<IfModule mod_geoip.c>
    GeoIPEnable On
    GeoIPDBFile /usr/local/GeoIP/share/GeoIP/GeoIP.dat
    <Location /home>
           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>


특정 국가에만 접근 허용


<IfModule mod_geoip.c>
    GeoIPEnable On
    GeoIPDBFile /usr/local/GeoIP/share/GeoIP/GeoIP.dat
    <Location /home>
          SetEnvIf GEOIP_COUNTRY_CODE KR go_in
           <Limit GET POST>
             Order Deny,Allow
             Deny from all
             Allow  from env=go_in
           </Limit>
    </Location>
</IfModule>

2010/03/26 14:29 2010/03/26 14:29
샤이 이 작성.

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

Trackback RSS : http://www.worldwalker.co.kr/rss/trackback/61

Trackback ATOM : http://www.worldwalker.co.kr/atom/trackback/61


당신의 의견을 작성해 주세요.

: 1 : ... 71 : 72 : 73 : 74 : 75 : 76 : 77 : 78 : 79 : ... 134 :