[iptables] iptables를 이용한 국가별(특히 중국) IP ban 방법

IPTABLES 명령어를 이용한 국가 ip 벤 방법


여러대의 서버를 사용하면서 well know 포트가 하나라도 열려있으면 미친듯하게 접속 시도가 들어온다. (특히 중국에서 ㅂㄷㅂㄷ)
이를 iptables를 통해 국가별 ip를 차단하자

GITHUB LINK
https://github.com/SilNex/SundryToolBox/blob/master/country-ip-ban.sh

#!/bin/bash
#China IP BAN using iptables

apt-get update && apt-get install wget unzip
wget http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
unzip GeoIPCountryCSV.zip

DATA=./GeoIPCountryWhois.csv

for IPRANGE in `egrep "CN" $DATA | cut -d, -f1,2 | sed -e 's/"//g' | sed -e 's/,/-/g'`
do
    echo $IPRANGE
    iptables -A INPUT -p all -m iprange --src-range $IPRANGE -j DROP
done

https://dev.maxmind.com/geoip/legacy/geolite/에서 지역별로 정리한 ip리스트 파일을 다운 받아,
10번째 줄에 “CN” 이란 지역명을 가진 ip를 모두 차단 한다.

만약 미국을 차단한다라고 하면 “US” 러시아는 “RU”로 바꿔주면 된다.

잘 적용 되었는지 확인하려면,
iptables -L를 통해서 볼 수 있으며,
iptables를 초기화 하고 싶다면 iptables -F를 통해 초기화 할 수 있다.

그외 자세한 사항은 iptables 설명서를 참고

글의 문제가 있다면 댓글을 달아 주세요.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.