iptables で中・韓からのアクセスをブロック

December 5, 2014 – 11:02 am

我がPCサーバへの中・韓からのアクセスをブロックすることにした。
二つの国に割り当てられているIPアドレスからSSH、HTTP、Postfix(Dovecot)への不用(不法?)なアクセスが多かったことによる。

iptables設定のshell script のうち国別処理を行う部分について以下メモしておいた:

# 特定の国(日本国内)からのアクセスを許可する
if [ -s ./iplist ]; then
     iptables -N ACCEPT_JP_FILTER
     sed -n 's/^JP\t//p' ./iplist | while read address;
     do
          iptables -A ACCEPT_JP_FILTER -s $address -j ACCEPT
     done
fi

# 特定の国(中国、韓国)からのアクセスを拒否する
if [ -s ./iplist ]; then
     iptables -N DROP_COUNTRY_FILTER
     sed -n 's/^\(CN\|KR\)\t//p' ./iplist | while read address;
     do
          iptables -A DROP_COUNTRY_FILTER -s $address -j DROP
     done
     iptables -A INPUT -j DROP_COUNTRY_FILTER
fi

# For SSH(tcp 22) with hashlimit
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m hashlimit \
   --hashlimit-name ssh_limit --hashlimit 1/m --hashlimit-burst 5 \
   --hashlimit-mode srcip --hashlimit-htable-expire 360000 -j ACCEPT_JP_FILTER

# For HTTP(tcp 80)
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Other Services are followed


ここで、SSHについては日本国内からのみアクセスを許可する構成にしている。
またファイル iplist は国別のIPv4アドレスの割り当てが与えられている。

参考にしたサイト
OXY NOTES iptablesの設定ファイルをシェルスクリプトを利用して動的に作成
   


Post a Comment