wordpressのコメントアタック対策 fail2ban

コメントアタックという用語で良いのか微妙だが、apacheのログを眺めていると、
wordpressに結構なPOSTリクエストを送ってくる奴がいる。

このブログにPOSTリクエストが送られるのは、
基本的に自分が記事を更新したときだけなので
(コメントなんてほとんどないですからね)
ほぼ、POSTリクエスト = アタックやいかがわしい行為のはず。

ということで、前々から知ってはいたが、全く手を出したことの無い
fail2banの設定をしてみた。

fail2banはログを見て、事前に定義したレシピに
ヒットするとactionを実行(iptablesでブロックとか)するすぐれもの。

wordpressだけでなく、どちらかというと認証が発生する系の
サーバでは設定しといた方がいいなと思う。
sshとか、pop3とか、その手のサービス。

まー。今回はwordpressの設定。

例によってインストールはapt-get一発
(ubuntu14.04)

 

 

 

/etc/fail2ban/jail.confに以下を追加

 

 

 

  • filterはこれから定義する
  • logpathは実際の環境にあったもの
  • actionは、これだとiptablesで、http,httpsをブロックする
  • findtimeは、検知する間隔
  • bantimeは、ブロックする時間
  • maxretryは、findtime中この回数だけヒットしたらブロックするって値

上で使うfilterを作る。

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

 

 

 

もう、単純に、/wp-comments-post.phpにPOSTしたリクエストを対象とする。

でサービス再起動

 

 

 

実際に定義した、filterがログファイルにヒットするかチェックするには、
fail2ban-regex コマンドを使う。ログファイルが大きいと結構時間がかかります。

 

 

14770行チェックして、121マッチとのこと。全くヒットしないとか、ヒットしすぎとかでは無いので
実運用して様子見します。