리눅스 특정 국가의 IP주소 일괄 차단하기
페이지 정보
작성자
본문
차단할 IP 주소들을 추리다보니 죄다 중국 IP들이었습니다. 이것들을 보일때마다 차단 등록 한다고 해도, 매번 다른 IP에서 공격이 들어올테니 부질 없는 헛짓일 것입니다.
잠시 명상(?)을 하며 스마트한 해결책을 찾다가 중국 IP대역을 모두 차단하기로 마음먹고 방법을 찾아 나섰습니다. 중국에서 이곳 서버로 접속하는 시도는 정보를 얻는 시도라기 보다는 악의적인 목적이 월등히 더 많을거라는 판단에서였습니다.
역시 구글신의 도움으로 쉽게 방법을 찾을 수가 있었습니다.
우선, IP 대역 DB 파일 얻기위해 다음 사이트에 접속해서 최신 버전의 GeoIPCountryCSV.zip을 다운받아 압축을 풀어둡니다.
http://dev.maxmind.com/geoip/legacy/geolite/
GeoIPCountryWhois.csv 파일이 나오는데, 이 파일이 각 국가의 IP 할당 정보가 들어 있는 DB 파일입니다.
그리고 다음과 같은 스크립트를 만들어 위 DB파일과 같은 디렉토리에 ipban.sh로 저장합니다.
여기서는 중국 IP 대역만 차단하기 위해 5번째 줄에 "China"라고 썼는데, 다른 국가를 차단하고 싶다면 이 부분을 해당 국가로 바꾸면 됩니다. 국가별 표기 방법은 csv파일을 열어서 찾아보면 알 수 있습니다.
#vi ipban.sh
#!/bin/sh
SRC=./GeoIPCountryWhois.csv
for BANIP in `egrep "China" $SRC | cut -d, -f1,2 | sed -e 's/"//g' | sed -e 's/,/-/g'`
do
/sbin/iptables -A INPUT -p all -m iprange --src-range $BANIP -j DROP
done
ipban.sh 파일에 실행 권한을 준 뒤, 터미널에서 실행하면 특정 IP 대역의 접속을 모조리 차단할 수 있습니다.
출처 : http://tuwlab.com/ece/8497
잠시 명상(?)을 하며 스마트한 해결책을 찾다가 중국 IP대역을 모두 차단하기로 마음먹고 방법을 찾아 나섰습니다. 중국에서 이곳 서버로 접속하는 시도는 정보를 얻는 시도라기 보다는 악의적인 목적이 월등히 더 많을거라는 판단에서였습니다.
역시 구글신의 도움으로 쉽게 방법을 찾을 수가 있었습니다.
우선, IP 대역 DB 파일 얻기위해 다음 사이트에 접속해서 최신 버전의 GeoIPCountryCSV.zip을 다운받아 압축을 풀어둡니다.
http://dev.maxmind.com/geoip/legacy/geolite/
GeoIPCountryWhois.csv 파일이 나오는데, 이 파일이 각 국가의 IP 할당 정보가 들어 있는 DB 파일입니다.
그리고 다음과 같은 스크립트를 만들어 위 DB파일과 같은 디렉토리에 ipban.sh로 저장합니다.
여기서는 중국 IP 대역만 차단하기 위해 5번째 줄에 "China"라고 썼는데, 다른 국가를 차단하고 싶다면 이 부분을 해당 국가로 바꾸면 됩니다. 국가별 표기 방법은 csv파일을 열어서 찾아보면 알 수 있습니다.
#vi ipban.sh
#!/bin/sh
SRC=./GeoIPCountryWhois.csv
for BANIP in `egrep "China" $SRC | cut -d, -f1,2 | sed -e 's/"//g' | sed -e 's/,/-/g'`
do
/sbin/iptables -A INPUT -p all -m iprange --src-range $BANIP -j DROP
done
ipban.sh 파일에 실행 권한을 준 뒤, 터미널에서 실행하면 특정 IP 대역의 접속을 모조리 차단할 수 있습니다.
출처 : http://tuwlab.com/ece/8497
댓글목록
등록된 댓글이 없습니다.