리눅스 해외 IP 차단하기
우선은 아래 링크에서 국가별IP목록이 있는 파일을 받아줍니다.
최신버전 다운로드는 아래링크 클릭
Free updated GeoIP legacy databases
Free updated GeoIP legacy databases Here you can find regularly updated versions of the discontinued GeoIP legacy databases. Many distributions still use old GeoIP libraries, so you might find these useful. I use these on many systems myself, so consider t
mailfud.org
위 링크에서 GeoIP-legacy.csv.gz 파일을 받아 압축을 풀어 사용하면 됩니다,
쉘 스크립트 작성 (특정 국가 차단용)
파일을 받았으면 리눅스의 특정 폴더에 복사한 후 VI편집기를 이용해서 아래와 같이 쉘 스크립트를 작성 해줍니다.
1
2
3
4
5
6
7
8
9
10
|
#!/bin/bash
DATA=./GeoIPCountryWhois.csv
IPT=/sbin/iptables
// 차단할 국가 China
for IPRANGE in `egrep "China" $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 DROP
done
|
cs |
이렇게 작성 후 실행하면 중국IP가 차단됩니다.
하지만 이렇게 한국가씩 차단하기에는 만들어야 할 스크립트가 많지요.
그럴땐 아래의 코드를 사용하면 됩니다.
쉘 스크립트 작성 ( 해외IP 차단용)
역시 VI편집기를 이용해서 아래와 같이 쉘 스크립트를 작성 해줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/bin/sh
# iptables init
sudo iptables -P INPUT ACCEPT
sudo iptables -F
echo "IPTABLES INIT SUCCESS"
BLOCK_LIST_FILE=./GeoIPCountryWhois.csv
echo "BLOCK LIST FILE = $BLOCK_LIST_FILE"
# ADD BLOCK TARGET LIST
ALLOW_TARGET_COUNTRY="Korea"
# REGIST BLOCK IP FOR LOOP
for IP_BANDWIDTH in `egrep -v $ALLOW_TARGET_COUNTRY $BLOCK_LIST_FILE | awk -F, '{print $1, $2}' | awk -F\" '{print $2"-"$4}'`
do
echo "STARTING!!"
sudo iptables -I INPUT -p all -m iprange --src-range $IP_BANDWIDTH -j DROP
done
sudo iptables -L
|
cs |
이렇게 작성 후 실행하면 한국IP를 제외한 모든 해외IP가 차단됩니다.^^
제 블로그의 내용이 도움이 되셨나요?
여러분의 공감과 댓글이 큰 힘이됩니다 :)
▼▼▼▼▼▼▼▼▼▼▼