最近、Wordpressへのコメントスパムがもの凄い事になっている。
余りにSpamされるせいでか、httpdとmysqldがOut of memoryで、
killされてしまって、暫くWEBアクセスが出来ない状況が発生して
しまいました。
一番安いVPSのせいもあって、リソースはギリギリなので、
これは何かしなければ・・・ということで少し対策入れてみました。
■対策を練る。
元々 Akismet で殆どコメントとして投稿されない状況でしたが、
それでもDB側の負担が大きいので、WP-DenyHostを入れて
Akismetで弾いたコメント投稿元からのアクセスは、404/403を
返すようにしました。
これでも処理は、httpd自体がしなきゃイケナイ状況なので、
あんまり意味いか?
それなら・・・・サーバー側で止めてしまおう!
ということで、fail2ban の設定を入れて、
アクセス自体を iptables で止める事にしました。
fail2ban の設定は、「たけけんのサーバー勉強日記」の記事が
タイムリーで大変参考になりました。
たけけんのサーバー勉強日記-まさかそこが間違っていたとは
http://www.vincentina.net/?p=3736
そのままの設定だと findtime 60/maxretry = 2 と制限が
キツメなので、サイトによって値を変えたほうが良いかも
しれないです。
(うちはWP-DenyHostで弾いたコメントのみに適用させてます)
■インストール
・WP-DenyHost
WordPressで入れて設定するだけ。
・fail2ban
apt とかyumでは入ります。
入れた後の設定も、Google先生に聞くと大量に出てくるので、
説明は不要かと思います。
■設定結果
2013/11/24~11/25の24時間でfail2banによってこれだけbanとなりました。
これで不要なプロセスダウンが発生しなくなるといいな・・。
Chain fail2ban-apache-wpcm2 (1 references) target prot opt source destination REJECT all -- 120.37.235.69 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 120.33.220.150 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 27.153.228.129 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 27.159.253.46 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 27.153.230.18 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 142.54.174.186 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.149.242 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 27.159.213.193 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 204.12.239.234 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.152.146 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.187.97.114 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.145.250 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 142.54.174.162 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 142.54.183.146 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 173.208.136.34 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 142.54.174.178 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 142.54.174.170 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.152.106 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.152.122 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.151.202 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.187.112.42 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.147.62 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.187.99.66 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 204.12.239.210 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.152.138 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.187.106.210 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 142.54.168.202 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 198.204.230.130 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.151.152.90 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 173.208.129.250 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 142.54.186.122 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 192.187.106.242 0.0.0.0/0 reject-with icmp-port-unreachable REJECT all -- 142.54.186.250 0.0.0.0/0 reject-with icmp-port-unreachable RETURN all -- 0.0.0.0/0 0.0.0.0/0