저번에는 중국 ip만 차단하는 방법을 알아봐따...이번엔 대한민국 ip 만 열어주고 외국ip는 모조리 막아보겠다.
우선 아래 사이트에가서 최신 ip대역 db를 받는다. 아래 사이트는 ip 자료가 자주 업데이트됩니다. 한번씩 업뎃 해주세용.
국가별 최신 IP대역 DB 받는 곳 :
http://geolite.maxmind.com/download/geoip/database/
GeoIPCountryCSV.zip 파일을 받아서
/root밑에 다운받는다 그리고 압축을 푼다.
압축을 풀면 /root/GeoIPCountryWhois.csv 파일이 보인다. 여기까지 확인.
그리고 아래파일을 생성한다.
# vi /root/only-Korea-IP-Allow.sh
-------------------------------------------------------------------------------------
#!/bin/bash
DATA=/root/GeoIPCountryWhois.csv
IPT=/sbin/iptables
for IPRANGE in `egrep "Korea" $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 ACCEPT
done
/sbin/iptables -P INPUT DROP
------------------------------------------------------------------------------------
스크립트 내용은 한국 ip대역을 모조리 열어주고 그리고 마지막에 INPUT 정책을 막아주는거다.
그리고 실행권한을 준다.
# chmod 700 /root/only-Korea-IP-Allow.sh
이 스크립트를 실행하기전에 반드시 iptables -F 를 해서 iptables 를 초기화한다.
그리고나서
# sh only-Korea-IP-Allow.sh 를 실행한다.
그리고나서 iptables -L 를 실행하면 상태가 보일것이다.
추가로 열어줄 외국아이피가있으면 스크립트에서
/sbin/iptables -P INPUT DROP 전에 ACCEPT로 넣어주면된다.
혹시나 해서 적습니다. 위에 iptables 설정 초기화 하실때
1. iptables -P INPUT ACCEPT
2. iptables -F
원격에서 iptables -F 만 하시다가 접속 팅깁니다. IDC들어가야 할지도...ㅋㅋㅋ
정지 스크립트.
# vi /root/only-Korea-IP-Allow-stop.sh
-------------------------------------------------------------------------------------
#!/bin/bash
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -F
------------------------------------------------------------------------------------
# sh only-Korea-IP-Allow-stop.sh 를 실행한다.
또 하나 참고로 yum -y update 할때 당연히 업데이트 안됩니다..
외국ip 모조리 막혀서 외국ip 작업할 일 있을때 만 열어주고 작업후 다시 닫아주세용.ㅋㅋㅋ
서버 최적화 설정후 이걸 적용해주시면 아주 유용하겠죠...