태그 Archives: GeoIP

GEOIP data 파일 업데이트

GeoIP.dat 파일을 배포하는 maxmind (https://www.maxmind.com/) 사에서 레거시 파일 형태인 GeoIP.dat 파일을 2019-01-02 일로 부터 배포를 중단하였다.

기존에 apache 혹은 nginx 그리고 iptables 등에서 사용중인 국가별 구분 및 제한을 을 지속적으로 사용 하기 위해서는

GeoIP의 지속적인 업데이트가 필요로 한다.

– 주기적으로 ip는 로테이션이 되기 때문에 dat 파일이 갱신되지 않은채 1년 정도가 지나면 신뢰도가 떨어진다.

다만 과거 형태 .dat 파일만 배포 중단이며 .mmdb 및 .csv 형태의 배포는 지속되고 있다.

 

때문에 배포되는 csv 파일을 이용 하여 dat 파일을 직접 생성해 주는 방향으로 진행할 수 있다.

이미 github 에서 csv를 이용한 dat 파일을 만드는 게 몇몇 올라와 있다. 이중 https://github.com/sherpya/geolite2legacy 을 이용하여 생성할 수 있는 스크립트를 작성 하였다 ‘ㅅ’a

GeoLiteCity.dat 는 최상단의 config CITYDATA 를 Y 로 지정하면 생성한다. (일반적으로 불필요 하며, 생성시 2GB 이상의 메모리를 사용 한다.)

cron 등록은 /etc/cron.daily/ 혹은 /etc/cron.weekly/ 에 파일을 만들어 두면 anacron 이 알아서 주 or 일에 돌려주겠지요..

CentOS6 x64 – apache 1.3.x – mod_geoip 설치

httpd.conf 에 아래와 비슷한 내용이 먼저 들어 있어야 한다.

이유는 mod_geoip 설치시 마지막 LoadModule 라인을 인식하여 그 아래 LoadModule  mod_geoip 추가 한다.
라인이 없다면 스크립트 실패로 설치가 실패한다.

 

GeoIP를 yum 으로 설치한다.

 

이후 mod_geoip 를 설치한다.

 

httpd.conf 파일에 data 파일 위치를 선언하는 부분을 추가한다.

 

CentOS6에서 기본 설치를 이용했을때 일반적인 data파일 위치는 아래와 같다.
GeoIP : /usr/share/GeoIP
xt_geoip(iptables): /usr/share/xt_geoip
mod_geoip(apache): /var/lib/GeoIP
dat 파일은 매월 2~7일 사이에 maxmind.com 에서 바뀐부분을 새롭게 배포한다.

때문에 위 위치안의 GeoIP.dat 파일을 매월 초 갱신해 줘야 한다는 이야기가 된다.
갱신 없이 사용한다면 국가별 차단 등을 해놨을때 해당 국가여도 접속을 못하는 상황이 나올 수 있다.

그래서 아래와 같이 geoip_data_update.sh 스크립트를 만들어 매월 7일 정기적으로 실행 시켜 업데이트를 한다.