한국을 제외한 전 세계 모든 해외 IP를 차단!
GeoIPCountryCSV.zip 다운로드후 아래 쉘 스크립트와 같은 경로에 업로드 하세요.
그리고, 쉘 스크립트 작성
# vi GeoIPCountryWhois.sh
#!/bin/sh
# iptables init
iptables -P INPUT ACCEPT
iptables -F
echo "IPTABLES INIT SUCCESS"
BLOCK_LIST_FILE=./GeoIPCountryWhois.csv
echo "BLOCK LIST FILE = $BLOCK_LIST_FILE"
# ADD BLOCK TARGET LIST
ALLOW_TARGET_COUNTRY="Korea"
# REGIST BLOCK IP FOR LOOP
for IP_BANDWIDTH in `egrep -v $ALLOW_TARGET_COUNTRY $BLOCK_LIST_FILE | awk -F, '{print $1, $2}' | awk -F" '{print $2"-"$4}'`
do
echo "STARTING!!"
iptables -I INPUT -p all -m iprange --src-range $IP_BANDWIDTH -j DROP
done
iptables -L
그리고, 쉘 스크립트 실행 하세요.
# ./GeoIPCountryWhois.sh
참고로 한국을 제외한 모든 해외IP차단할 경우 시간이 엄청 오래걸립니다.
중국 또는 특정 국가를 차단하는형식으로 사용하시면 좋을듯 합니다.
※ 중국 IP만 차단하는 방법(또는 특정국가만 차단하는 방법) ※
#!/bin/bash
DATA=./GeoIPCountryWhois.csv
IPT=/sbin/iptables
for IPRANGE in `egrep "China" $DATA | cut -d, -f1,2 | sed -e 's/"//g' | sed -e 's/,/-/g'`
do
$IPT -A INPUT -p all -m iprange --src-range $IPRANGE -j DROP
done
...[더 보기]