Pogoplug

iptables를 이용하여 국가별 IP 차단하는 방법

관련 링크를 참조하여 작성합니다.

 

iptables의 경우 geoip와 연계하여 나라이름만 지정하면 바로 차단하는 방법이 제일 쉽습니다.

 

다만 그 방법 쉽지않고 그나마 있는 방법도 외국 친구들이 작성한 것이 대부분이기 때문에

 

포고플러그에서 잘 되는 방법은 찾기어렵더라구요.

 

몇가지 시도해봤는데 모두 실패했습니다.

 

그래서 더 찾아보니 그냥 차단하고 싶은 나라별로 IP를 차단하는 방법을 올려놓은 블로그가 있어

 

관련 링크로 올렸습니다.

 

1. 나라별 IP주소가 담긴 파일을 다운 받기

 

http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip

 

위 링크를 클릭하면 자동으로 받아집니다.

 

압축을 풀고 포고플러그 내에 적당한 곳에 저장합니다.

 

저의 경우 포고에

 

/etc/geo/GeoIPCountryWhois.csv

 

이런 경로로 저장했습니다.

 

그리고 첨부된 GeoIPCountryWhois_nation.csv 파일을 보시면 각 나라별 정확한 이름이 나옵니다.

 

그리고 cfcr.sh 첨부된 파일을 다운 받아서 열면

 

# ADD BLOCK TARGET LIST

BLOCK_TARGET_COUNTRY="CN|FR|CL|RU"

 

위와 같이 빨간 부분에 추가 및 뺄 수 있습니다.

 

나라 이름은 위와 같이 적어도 되고 아니면 풀네임 적어도 되는데

 

띄어쓰기 되어 있는 나라들은 풀네임이 안되더군요. 러시아의 경우 그렇습니다.

 

그리고 관련 링크를 보시면 차단하는 방법 뿐만 아니라 허용만 하는 방법도 있으니 참고 바랍니다.

 

 

2. 그리고 cfcr.sh파일과 GeoIPCountryWhois.csv 파일을 같은 곳에 넣고

 

그 해당 폴더에 가서 (저의 경우 /etc/geo)

 

sh cfcr.sh

 

를 하면 실행되는데

 

 

########## IP BLOCK Script START ###########

IPTABLES INIT SUCCESS

BLOCK LIST FILE = ./GeoIPCountryWhois.csv

 

위와 같이 나오고 좀 오래걸립니다. 1-2분 정도 멈춰있는데 포고가 멈춘게 아니고 

 

cvs 파일이 6메가 가까이 돼서 읽는데 오래걸리는 겁니다.

 

그리고 좀 기다리면 스크롤이 쫙~~~~ 되면서 

 

DROP       all  --  anywhere             anywhere            source IP range 1.12.0.0-1.15.255.255

 

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

################## IP BLOCK Script END #############

 

이런 식으로 나옵니다.

 

그러면 된거고요

 

혹시 fail2ban 실행하고 있었다면

 

iptable이 초기화되면서 그 규칙들이 다 없어집니다.

 

그 때 

 

service fail2ban restart

 

하시고 

 

iptable -nvL

 

하면 스크롤 쫙~~~ 되면서 fail2ban에 정해둔 규칙이 추가가 된걸 볼 수 있습니다.

 

그리고 재부팅하면 적용한 것이 다 사라지니 참고해주세요.

 


# 근데 이걸 적용하고 나니 포고가 좀 힘들어하는군요..(느려지네요)

 

왠만하면 그냥 fail2ban + 외부포트번호 변경으로도 괜찮으니 그렇게 해야겠습니다.

3 Comments
AARON 2014.12.14 17:28  
우성군님 안녕하세요!
강좌 항상 잘 보고 있습니다.
혹시 위의 방법을 WD My Cloud 에 적용할 수 있는 방법은 없을까요?
우성군 2014.12.14 21:06  
fail2ban 설치 후 같은 방법으로 하면 될 것 같은데...

제가 예전에 마클에 fail2ban 설치에 실패하여 잘 될진 모르겠습니다.

순정 데비안을 설치한 마클에는 잘 될거예요.

그런데 부하가 커서 추천드리고 싶진 않습니다.
우성군 2014.12.14 21:11  
http://quri.org/?m=bbs&p=2&uid=8

위와 같은 방법으로 될 것 같긴한데...

iptable이 깔려있으면 좋은 방법이지만... 아니라면 힘들 것 같습니다.