CentOS6 fail2banでWordPressのコメントスパム対策

あまりにも激しいコメントスパムが来たのでiptableで海外のサイトをシャットアウトしてしばらく平穏な日々を過ごしていたけど、今度は検索サイトのロボットをことごとく遮断していたのでインデックスから干されてしまったwww

っで、別の対策を取ることにした。

今回はCentOS6で使える「fail2ban」というツールを導入してみた。

EPEL リポジトリを利用して、「yum」でインストールします。

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# yum -y install fail2ban

参考サイト

ニフティクラウド ユーザーブログ」様の
fail2banでサービスを死守せよ

※「fail2ban」はiptalbeを利用してブロック動作を行うのでiptableが設定済みで稼働していることが前提となる。

インストールが完了したら

#vi /etc/fail2ban/jail.conf

[apache-wpcm]
enabled = true
filter = apache-wpcm
action = iptables-multiport[name=apache-wpcm, port="http,https", protocol=tcp]
logpath = /var/log/httpd/access_log
findtime = 60
bantime = 166400
maxretry = 2

をapache関連の下あたりに追記

#vi /etc/fail2ban/filter.d/apache-wpcm.conf

[Definition]
failregex = <HOST>.*] "POST /wp-comments-post.php
ignoreregex =

として新しいファイルを作成

最初うまく動かなかったのはワードプレスをルートのサイトをしていれば上記の設定で問題ないのですが、サブフォルダ等にインストールしている場合は

failregex = <HOST>.*] "POST /ワードプレスのサブフォルダ/wp-comments-post.php

というような設定になるので要注意!これはPOSTしてきたときのapacheのログ(/var/log/httpd/access_log)を確認してパスを合わせてやることが必須。

「apache-wpcm.conf(wp-comments-post.phpにPOSTする)」の動作を
「apache-wpcm(60秒間で2回行ったら2日間バン)」という動きになる。

参考サイト
たけけんのサーバー勉強日記」様の
まさかそこが間違っていたとは

確認方法

#iptables -L

とするとバンされたipがずらずらと表示される。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)