바로가기 메뉴
본문내용 바로가기
메인메뉴 바로가기



Customer Center

Notice · Security Issue · Account Guide · Global Traffic Test

HOME > Customer Center > Tech Note

기술노트

GeoIP, iptables 로 국가별 접속 제한하기
2016.02.11

GeoIP에는 국가별 IP대역에 대한 database가 담겨 있습니다. 이를 각 패키지 모듈에 적재하여 여러 방법으로 접속제한 및 속도향상, 등 여러가지 재미있는 구성을 해 볼 수 있습니다. 이번 포스팅에는 iptables에 모듈 적재하여 국가별로 접속을 제한하는 방법에 대해 설명 해 보고자 합니다.

GeoIP의 경우 공식적인 모듈 업데이트가 몇년 전에 중단 된 것으로 알고 있어 구 버전 OS를 사용하는 경우가 있으나

이를 위해 최신 OS 커널에 작업을 해보겠습니다.

##설치환경

- CentOS 6.4 Final 64bit.

- kernel 2.6.32


#컴파일러 설치, 커널컴파일, 필요 패키지 설치, iptable 패치
yum install gcc gcc-g++ make automake unzip zip xz kernel-devel-"uname -r" iptables-devel

#rpm 모듈 설치
rpm -i http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

#파일 라이브러리 설치
yum install perl-Text-CSV_XS


#iptables 에드온 설치

cd /usr/src

wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/1.37/xtables-addons-1.37.tar.xz

tar xvf xtables-addons-1.37.tar.xz

cd xtables-addons-1.37

./configure && make && make install


#geoip DB 다운 및 모듈적재

cd geoip

./xt_geoip_dl

./xt_geoip_build GeoIPCountryWhois.csv

mkdir -p /usr/share/xt_geoip/

cp -r {BE,LE} /usr/share/xt_geoip/

cd /lib64/xtables/

cp libxt_geoip.so libipt_geoip.so

#iptables 정책 적용

(국내 IP만 22번 포트 허용)
iptables -A INPUT -p tcp --dport 22 -m geoip --src-cc KR -j ACCECP

service iptables save

service iptables restart

ehostidc by KMY

첨부파일