Geoip를 이용한 국가별 iptables 체인 및 차단룰 생성 스크립트

**
[ Geoip를 이용한 체인 생성 및 차단룰 생성 스크립트 ]**

Geoip에서 제공 되는 csv파일을 이용하여 국가별 ip리스트를 뽑아 국가별 분류 후

국가 이니셜로 체인룰 생성후 차단룰 파일 생성 스크립트임.

KR도 포함되어 있으니 괜히.. ㅋㅋ.. KR 파일 실행 시키면 ㅋㅋㅋ 대략 난감한 상황 발생 ㅋㅋ

crontab에 5분간격으로 iptables 리스타트 혹은 플래쉬 해주도록 하고 테스트 ㅋㅋ.


#!/bin/bash
# 2010.05.01  by netggio

Geoip_Tmp=Tmp
Geoip=GeoIPCountryWhois.csv
nation_Dir=NATION_IP
protocol=ALL


rm -rf   $Geoip_Tmp/*
mkdir -p $nation_Dir
mkdir -p $Geoip_Tmp


wget http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip -P $Geoip_Tmp/


unzip  $Geoip_Tmp/GeoIPCountryCSV.zip  -d  $Geoip_Tmp/


for search in `awk -F “\”” ‘{ print $10 }’ $Geoip_Tmp/$Geoip  | sort | uniq  | xargs`


  do
     iptables -L -n | grep -w $search > /dev/null


         if [ $? = 1 ];then
            iptables -N $search
            iptables -A $search  -j RETURN
         fi


         grep -w “$search” $Geoip_Tmp/$Geoip | awk -F ‘\”‘ ‘{ print “iptables -I ” $10  ” 1 -p ‘$protocol’ -m iprange –src-range ”
$2 “-” $4 ” -j DROP” }’  > $nation_Dir/$search


done


rm -rf   $Geoip_Tmp/*



스크립트 실행 하면,  Geoip에서  제공되는 국가코드 이름 별로 체인이 생성되고 ,

NATION_IP  폴더 밑에 국가 코드명으로 파일이 생성됨 파일 열어보면 차단룰이 들어가게 해났음.

나머지는 본인 입맛데로 차단을 하던 허용을 하던 ㅋㅋㅋ… 변경을 하던 본인 숙제 ㅋㅋ

geoip가 갱신 주기에 맞쳐서 주기적으로  업데이트 해주면 될듯.

차단 1순위는 C 모시기 ㅋㅋ…

Written on May 2, 2010