あまりにも激しいコメントスパムが来たので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がずらずらと表示される。