特定の国からのアクセスを排除する

自宅でサーバを公開していたりすると,結構ポートスキャンなどを受けるとおもいます。
その場合集計してみると,中国や韓国などアジア諸国からのアクセスが多いことに気づいたりします。
企業等,世界中に情報を発信するという目的でなければ,
これらの国からのアクセスは排除してもいいはずですが,
DNSの逆引きができない場合などは困ってしまうかも知れません。
そこで,APNIC が国に割り当てたIPから排除してみることにします。
そのリストはAPNICのftpサーバからダウンロードできますが,ちょっと扱いにくいので,
Nakamura Minoruさんの不正アクセスの発信地の国別統計をとろう!というページで加工済みのデータを利用させていただきました。
ipaddr_to_cctld.txt という名前のファイルがあるのでそれをカレントディレクトリに保存します。
その状態で,
# grep 国コード country_assigned_ip.txt | awk '{FS=" "; printf("iptables -A INPUT -s %s:%s -j DROP\n" ,$2, $3)}'
とすると,
iptables -A INPUT -s IP:ADDRESS -j DROP
の様な出力が得られますので,それをスクリプトにでもしておけば良いでしょう。