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 설명서를 참고