본문 바로가기
[IT 관련 지식]/[Security]

iptables 활용한 국가별 차단 방법

by 판톰 2011. 3. 6.
반응형

국가별 접속 차단 방법

일반적으로 파이어월의 기본 정책은 허용할 것을 제외한 나머지는 모두 차단하는 것이다.

그런데 필요에 따라 국가별로 접속을 제한해야 할 필요가 있다.

이를테면 특정 국가에서 비정상적인 접속 요청이 들어온다거나,

국내에서만 telnet이나 ftp 접속을 허용해야 할 때는 이같은 국가별 접속 차단을 사용해야 한다.

하지만 국가별 IP 현황을 조사해 모든 IP 대역에 대해 일일이 접근 설정을 한다는 것은 불가능한 일이다.

하지만 리눅스 파이어월인 iptables를 이용하면 이같은 기능을 쉽게 구현할 수 있다.

 

1. ‘people.netfilter.org/peejix/geoip/database/’에서 geoipdb.bin과 geoipdb.idx 파일을 다운로드한다.

2. iptables가 설치된 파이어월에 ‘/var/geoip’ 디렉토리를 생성

3. 디렉토리에 두 파일을 옮긴다.

    -- 여기에서 geoipdb.bin은 국가별 IP 대역에 대한 바이너리 포맷의 데이터이고, geoipdb.idx는 인덱스 파일이다.

        geoip 라이브러리가 ‘/var/geoip’ 디렉토리를 참조하기 때문에 디렉토리명은 반드시 정해진 명칭을 사용해야한다.

4. iptables에서 geoip를 사용하기 위해 커널을 패치한다.

   고급 기능을 이용할 수 있도록 커널을 패치하는 p-o-m을 다운로드하면 되는데

    ‘ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/’에서 최신 버전을 다운로드받을 수 있다.

5. p-o-m을 압축해제하고, 다음과 같이 실행한다.

     # tar xfz patch-o-matic-ng-XXXXXX.tar.gz

     # cd patch-o-matic-ng

     # IPTABLES_DIR=/usr/src/iptables KERNEL_DIR=/usr/src/linux ./runme geoip

6.  kernel 메뉴에서 geoip를 사용하도록 실행 설정

    ‘make menuconfig’ 실행 화면에서 다음과 같이 선택해 들어간 상태에서 최종적으로 ‘[*] geoip match support’를 선택하면 된다.

   Device Drivers

-> Networking support

-> Networking support

-> Networking options

-> Network packet filtering (replaces ipchains)

-> IP: Netfilter Configuration

-> [*] geoip match support

이후 iptables 역시 ‘ftp.netfilter.org/pub/iptables/’에서 최신 버전을 다운로드받아 설치한다.

커널 컴파일을 완료한 후 새로운 버전의 커널로 부팅하면

이제 iptables의 geoip를 사용할 준비가 된 것이다. 사용할 수 있는 옵션은 --src-cc와 --dst-cc가 있는데, 각각 뒤에 국가 코드명을 넣으면 된다.

  예를 들어 확인해 보자.

- 일본과 미국에서의 웹 접속을 차단하고 다른 곳에서의 접속은 허용할 때

iptables -A INPUT -p tcp --dport 80 -m geoip --src-cc JP,US -j DROP

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

- 한국에서의 ftp만 허용하고 나머지 국가에서의 접속은 차단하고자 할 때

iptables -A INPUT -p tcp --dport 21 -m geoip --src-cc KR -j ACCEPT

iptables -A INPUT -p tcp --dport 21 -j DROP

또는 iptables -A INPUT -p tcp --dport 21 -m geoip ! --src-cc KR -j DROP

실제로 운영중인 서버에 설정한 결과 서버가 느려지거나 부하가 늘어나는 일은 없었다.

이를 적절히 활용한다면 다양한 응용이 가능할 것이다.

반응형

'[IT 관련 지식] > [Security]' 카테고리의 다른 글

오픈SSL 보안취약점  (0) 2014.05.10
웹캠 훔쳐보기 해킹 비상  (0) 2014.05.10
iptables 이용한 icmp 차단  (0) 2013.02.25
iptable 이용한 URL 차당방법  (0) 2013.02.25
윈도우 업데이트의 중요성  (0) 2011.12.13