特定の国からのアクセスを拒否する設定

最近、某国からのアタックが増えてきた。

Fail2Banで、弾いてきたのだけど、それでもしつこくアタックしてくるのでIP自体を拒否する設定を追加した。

http://www.ipdeny.com/ipblocks/data/countries/
に各国で使用しているIPアドレスのリストがあるので、今回はこれを利用します。

本来は、iptablesを使用のだけれど、あまりにも量が多いので、ipsetを使用して拒否設定を行います。

まずは、

yum install ipset

で、インストール

次に、ipset_deny.shって感じのファイルを作って、

ZONE_FILE_URL="http://www.ipdeny.com/ipblocks/data/countries"
ipset -N DROPCOUNTRIES nethash
for IP in $(wget -O - ${ZONE_FILE_URL}/{cn,tw,kr,ru}.zone | grep -v "^#|^$" )
do
ipset -A DROPCOUNTRIES $IP
done
iptables -A INPUT -m set --match-set DROPCOUNTRIES src -j DROP

ZONE_FILE_URL="http://www.ipdeny.com/ipblocks/data/countries"
ipset create DROPCOUNTRIES hash:net
for IP in $(wget -O - ${ZONE_FILE_URL}/{cn,tw,kr,ru}.zone | grep -v "^#|^$" )
do
ipset add DROPCOUNTRIES $IP
done
iptables -A INPUT -m set --match-set DROPCOUNTRIES src -j DROP

ってかんじで書いて実行する。

ルールを破棄する場合は

ipset destroy DROPCOUNTRIES

を実行

特定の国からのアクセスを拒否する設定
Tagged on: