Geoip 설치방법 - 리눅스 2015. 8. 2. 16:08
공유하기 |
SSH 에서 작업합니다.
1. GeoIP 설치
cd /home/root mkdir GeoIP wget http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.4.tar.gz tar xvfz GeoIP-1.4.4.tar.gz cd GeoIP-1.4.4 ./configure --prefix=/home/root/GeoIP make make install |
2. mod_geoip2 설치
cd /home/root wget http://www.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.4.tar.gz tar xvfz mod_geoip2_1.2.4.tar.gz cd mod_geoip2_1.2.4 /usr/local/apache/bin/apxs -a -i -L/home/root/GeoIP/lib -I/home/root/GeoIP/include -lGeoIP -c mod_geoip.c |
3. httpd.conf 수정
하단에 아래내용을 추가
<IfModule mod_geoip.c> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{Host}i %{GEOIP_COUNTRY_CODE}e" digimoonlog
CustomLog logs/access_log digimoonlog |
4. /etc/init.d/httpd restart 후 access log 에 국가 코드가 출력되는지 확인.
116.34.62.xxx - - [13/Aug/2013:09:45:32 +0900] "GET /rb/layouts/soyou01/image/linebg.png HTTP/1.1" 200 137733 "http://ibneer.com/rb/" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" KR
* geoip IP 데이터 업데이트
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
GeoIP.dat 파일을 /home/root/GeoIP/share/GeoIP/ 에 덮어쓰기
* 활용방법.
1. access log 에서 국가코드 확인 처리
2. PHP $_SERVER["GEOIP_COUNTRY_CODE"] 로 접속자 국가코드 확인가능
3. 아파치 설정(httpd.conf)으로 특정 국가 접속 제한 가능
<Directory "/home/htdocs"> SetEnvIf GEOIP_COUNTRY_CODE KR go_in SetEnvIf Remote_Addr 192.168.0.[1-5] go_in Order Deny,Allow Deny from all Allow from env=go_in </Directory> |
위의 예문은 대한민국 아이피와 192.168.0.1~5 까지만 접속을 허용합니다.
PS. 와이즈기가 NAS 의 httpd.conf 상... log_config_module 의 내용을 변경해야 로그가 중복되지 않고 생성되더군요.
<IfModule log_config_module> <IfModule logio_module> # # |
그리고 하단에
<IfModule mod_geoip.c> |
요것만 추가해주면 됩니다.
각자 서버에 맞게 사용하면 될거 같네요.
'리눅스' 카테고리의 다른 글
Transmission daemon 실행 권한 변경 (0) | 2015.09.30 |
---|---|
iptables (0) | 2015.07.28 |
리눅스 램디스크 (0) | 2015.07.28 |
고정폭 글꼴 consolas, VeraMono (0) | 2015.07.09 |
Linux 코롬 패키지 백엔드 초기화에 실패했다고 뜰 때 (0) | 2015.07.09 |
|
|