2011-09-21
_ CIDRを簡単に知りたい
先日からリファラ SPAM がひどくて,ひとまずリンク元の記録はしつつもリンク元表示はいったんやめている状態です.リンク元表示をやめたところで,リファラ SPAM が治まるわけではないので,一連のリファラ SPAM の送信元については接続を拒否するように,ファイアウォールでブロックすることにしました.頻繁にアクセスしてきているリファラ SPAM の送信元は,ほとんどが同じ ISP から送信されてきているので,根こそぎブロックします.
ufw を利用して,該当する IP アドレスの範囲をブロックするのですが,この IP アドレスの範囲を CIDR で指定します.この CIDR を簡単に求めるために ipcount というツールを利用すると簡単です.ipcount は Ubuntu では Perl の Net::IP ライブラリ(libnet-ip-perl)を導入すると利用できるようになります.ipcountは /usr/share/doc/libnet-ip-perl/examples/ipcount から利用できます.例えば CIDR を求めたい IP アドレスの範囲が,192.168.0.0 - 192.168.15.255 だったとすると以下のようにして求められます.
$ /usr/share/doc/libnet-ip-perl/examples/ipcount 192.168.0.0 - 192.168.15.255 192.168.0/20 192.168.0.0 - 192.168.15.255 [4096]
こんな感じで簡単に CIDR を求められます.
該当する ISP をブロックしたことで,最近,頻繁にきていた多くのリファラ SPAM については対応ができているようですが,しばらくは様子見.リンク元の記録については,Google Analytics にまかせちゃうかなぁ.それとも tDiary のリンク元記録については JavaScript で非同期に記録するようにするのがいいのかなぁ.