출처 : 설랑이의 공부 블러그 – http://srzero.tistory.com/104
중국의 짱개 / 이태리 양키 이런놈들이 자꾸 나의 서버를 침입한다.
이놈들을 막기 위해 방화벽을 설치 후 간단한 Script를 돌려 차단하였다.
iptables를 이용하면 간단하게 막을 수가 있다.
iptables를 이용하여 국가별 접속을 차단하는 방법에는 2가지가 있다.
(1) Kernel을 업데이트 한 후 iptables를 이용하는 방법
(2) Script를 이용하는 방법
나는 아직 Kernel Level에서 접근하는 법을 확실히 익히지 못하여 (2) 번 레벨에서 막도록 하겠다.
[1] 접속한 IP찾기
/var/log/auth.log를 뒤져 보면 아래와 같은 메시지가 뜬다.
1 18:Feb 13 13:14:03 xxxxx pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=200.27.62.186 2 22:Feb 13 13:14:07 xxxxx pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=200.27.62.186 3 25:Feb 13 13:14:09 xxxxx pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=200.27.62.186 |
위에서 얼핏보면 알겠지만 220.27.62.186 에서 자꾸 접속을 시도한다. 저놈이 도대체 어느나라 놈인지 알아보자.
대충 보아하나 칠레쪽 양키놈이다. 아~~~ 내서버에 뭔 볼일이 있다고 ㅠㅠㅠ 이제 저놈을
막도록 하자. 참고적으로 오늘부터 칠레 놈들이 싫어졌다.
[2] 국가별 Network 정보 Download하기
URL : http://geolite.maxmind.com/download/geoip/database/
위 URL로 가서 가장 최신으로 업데이트 된 Network 정보를 가져온다.
파일(GeoIPCountryWhois.csv) 을 열어보면 아래와 같다.
1 “1.0.0.0”,”1.7.255.255″,”16777216″,”17301503″,”AU”,”Australia” 2 “1.9.0.0”,”1.9.255.255″,”17367040″,”17432575″,”MY”,”Malaysia” 3 “1.10.10.0”,”1.10.10.255″,”17435136″,”17435391″,”AU”,”Australia” 4 “1.11.0.0”,”1.11.255.255″,”17498112″,”17563647″,”KR”,”Korea, Republic of” 5 “1.12.0.0”,”1.15.255.255″,”17563648″,”17825791″,”CN”,”China” 6 “1.16.0.0”,”1.19.255.255″,”17825792″,”18087935″,”KR”,”Korea, Republic of” 7 “1.21.0.0”,”1.21.255.255″,”18153472″,”18219007″,”JP”,”Japan” 8 “1.22.0.0”,”1.23.255.255″,”18219008″,”18350079″,”IN”,”India” 9 “1.24.0.0”,”1.31.255.255″,”18350080″,”18874367″,”CN”,”China” 10 “1.33.0.0”,”1.33.255.255″,”18939904″,”19005439″,”JP”,”Japan” 11 “1.34.0.0”,”1.35.255.255″,”19005440″,”19136511″,”TW”,”Taiwan” 12 “1.36.0.0”,”1.36.255.255″,”19136512″,”19202047″,”HK”,”Hong Kong” |
앞에껀 순번 | startNetwork | EndNetwork | ,,, | 국가 이런 순이다. 그럼 위 정보를 파싱하여
Script를 만들어 보도록 하자.
[3] Script 생성하기
#! /bin/bash BLOCK_LIST_FILE=./GeoIPCountryWhois.csv # ADD BLOCK TARGET LIST # REGIST BLOCK IP FOR LOOP do sudo iptables -L |
위 스크립트는 랑이가 짠것이다. awk를 이해 하고 있다면, 아주 쉽게 만들수 있다.
만약 허용국가만 포함하고 싶을때에는 egrep의 조건을 조금 바꾸어주면된다.
#! /bin/bash BLOCK_LIST_FILE=./GeoIPCountryWhois.csv # ADD BLOCK TARGET LIST do sudo iptables -L |
노란색으로 표현한 부분은 간단한 grep 명령이므로 별도로 설명안해도 될듯하다.
[4] Script 실행
########## IP BLOCK Script START ########### DROP all — anywhere anywhere source IP range 1.202.0.0-1.207.255.255 DROP all — anywhere anywhere source IP range 1.12.0.0-1.15.255.255 Chain FORWARD (policy ACCEPT) Chain OUTPUT (policy ACCEPT) |
다됐따 ㅋㅋㅋ 요렇게 하면 무사히 작업이 완료된다.
이 글을 쓰니 괜시리 애국심이 막 불타온다. 나도 언젠간 짱깨 / 양키 놈들 서버 들어가서 해집고 다니는 실력자가 되어야 겠다 .ㅋㅋㅋㅋ 이제 중국|프랑스|칠레 의 나쁜시키들이 안들어오겠지? 낼도 로그를 지켜봐야겠당 ㅋㅋ
– 2011.02.15 랑이씀 –