fail2banでしつこい攻撃者だけ長期BANする方法
サーバ運用をしていると、アタックを受ける事は日常茶飯事です。
ですから、例えばブルートフォース攻撃緩和には、一定回数ログインに失敗したIPアドレスからの接続をBANする「fail2ban」なんかも使うわけですが、中には、BANが自動解除されると、しつこく攻撃を繰り返す輩もいたりします。
今回は、その手の再犯者に、他の人よりも長いBAN期間を設定する「fail2ban」の設定方法をメモしておきます。
いちおう、Cent OS 6.5 をまだ使っているので、その前提になります。
「fail2ban」の設定ファイルは、「/etc/fail2ban」以下にあります。
その中の「jail.conf」を見ると、[recidive](再犯)という設定があるので、これを「enabled = true」に書き換えてやれば良さそうです。
が、ファイルのヘッダ部分の警告を読むと、このファイルは将来のアップデートで上書きされる可能性があるから、「jail.local」や、「jail.d/customisation.local」というドロップインで上書きしろ、と書かれています。
という事で、
# cd /etc/fail2ban # touch ./jail.local # vi ./jail.local
として、次の様に書いて保存。
[recidive] enabled = true
最後に、
# service fail2ban reload
で fail2ban サービスに設定ファイルを再読み込みさせてやるのが良さそうです。
これだけで、再犯者向けに長期BANできるようになりました。
サービスのリロード後は、一応、/var/log/fail2ban.log を見て、’recidive’ の Jail が正しくスタートした事を確認しましょう。
なお、/etc/fail2ban/jail.conf を見たら、再犯者向け設定はこんな感じになっていました。
[recidive] enabled = false filter = recidive logpath = /var/log/fail2ban.log action = iptables-allports[name=recidive] sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log] bantime = 604800 ; 1 week findtime = 86400 ; 1 day maxretry = 5
つまり、1日5回 fail2ban でBANされたら、BAN期間が1週間に伸びる。という事ですね。
このあたりの期間などの設定も、先の jail.local ファイルで上書きできるので、好みに合わせて変更すると良いでしょう。
ちなみに、設定ファイルの「filter」の具体的な動作は、「/etc/fail2ban/filter.d」以下の.conf ファイルに定義されています。
興味があれば見てみると良いかもしれません。