리눅스 해외 IP 차단하기
우선은 아래 링크에서 국가별IP목록이 있는 파일을 받아줍니다.
쉘 스크립트 작성 (특정 국가 차단용)
파일을 받았으면 리눅스의 특정 폴더에 복사한 후 VI편집기를 이용해서 아래와 같이 쉘 스크립트를 작성 해줍니다.
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash DATA=./GeoIPCountryWhois.csv IPT=/sbin/iptables // 차단할 국가 China 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 | cs |
이렇게 작성 후 실행하면 중국IP가 차단됩니다.
하지만 이렇게 한국가씩 차단하기에는 만들어야 할 스크립트가 많지요.
그럴땐 아래의 코드를 사용하면 됩니다.
쉘 스크립트 작성 ( 해외IP 차단용)
역시 VI편집기를 이용해서 아래와 같이 쉘 스크립트를 작성 해줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/bin/sh # iptables init sudo iptables -P INPUT ACCEPT sudo 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!!" sudo iptables -I INPUT -p all -m iprange --src-range $IP_BANDWIDTH -j DROP done sudo iptables -L | cs |
이렇게 작성 후 실행하면 한국IP를 제외한 모든 해외IP가 차단됩니다.^^
제 블로그의 내용이 도움이 되셨나요?
▼▼▼▼▼▼▼▼▼▼▼
여러분의 공감과 댓글이 큰 힘이됩니다 :)