fail2banでしつこい攻撃者だけ長期BANする方法

wrench-in-hands_sizeXS.jpg

サーバ運用をしていると、アタックを受ける事は日常茶飯事です。

ですから、例えばブルートフォース攻撃緩和には、一定回数ログインに失敗した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 ファイルに定義されています。

興味があれば見てみると良いかもしれません。

コメントを記入