ある日メールボックスを開くととあるサーバーのfail2banからBanしたという通知メールが頻繁に届いていました。どこからか攻撃されているのだと思ったのですが、その本文を見ていくと、なぜか同じIPから立て続けに不正アクセスが来ていました。fail2banの設定では10分以内に5回以上ログインに失敗すると24時間iptablesによりブロックするよう定義していたはずでした。これはおかしいと思いサーバーへログインし、sylogをチェックすると、下記のようなログが残されていました。
ERROR iptables -w -N f2b-HTTP#012iptables -w -A f2b-HTTP -j RETURN#012iptables -w -I INPUT -p tcp -m multiport --dports 80,443 -j f2b-HTTP -- returned
どうやらiptablesにより正しくブロックされていないようでした。このログを見るとiptablesに-wというオプションを渡しています。私のしる限りこのオプションは見たことがなかったのでmanコマンドで調べて見ました。するとそこには-wオプションについて何も記載がありません。インターネットで検索して調べてみると、どうやら最近実装された新しいオプションのようです。CentOS6.7の最新のiptablesのバージョンはこの時点で1.4.7でした。
とりあえず/etc/fail2ban/action.d/iptables-common.confに記述されている下記の設定を空欄に修正することで動くようにはなりました。
# in iptables 1.4.20, so might be absent on older systems # See https://github.com/fail2ban/fail2ban/issues/1122 # Values: STRING -lockingopt = -w +lockingopt =
ちなみにコメントすると正しく動作しませんでした。lockingoptを空欄に修正した方が良さそうです。
これで一応動きましたが、この方法が正しい気がしません。参考リンクであれこれ議論されていますが、私は英語が得意でないのでいまいち読めませんでした。今回は時間がなかったのでここまでにしますが、後で時間があるときにじっくり読んで何が問題でどう対処すべきなのか理解していきたい所です。
参考リンク