fail2ban

以前から気にはなっていたのだが、メールサーバに大量の不正アクセス(ブルートフォースアタック)がある。アドレスはまちまちでアカウント名をテキトーに変えてアクセスしてくる。ログインに成功したり不正なメールリレーしてしまったことは多分ないと思うし、特にサーバに負荷がかかっているとかいういこともないので放っておいたのだが、fail2banを使ってみた。

/etc/fail2ban/jail.conf にいろんなサービスの定義が書いてある。

jail.localというファイルを作って、監視したいサービスだけを書くと、その部分だけ設定を上書きしてくれる。
私は以下のようにした。(centos)

[DEFAULT]
ignoreip = xxx.xxx.xxx.xxx/32
bantime  = 1w
findtime  = 1h
maxretry = 3
backend = auto

filter = %(__name__)s

#
# ACTIONS
#
destemail = hoge@example.com
banaction = firewallcmd-ipset
banaction_allports = firewallcmd-allports
action = %(action_mwl)s
#
# JAILS
#
#
# SSH servers
#
[sshd]
enabled = true

[postfix-sasl]
enabled = true

[cyrus-imap]
enabled = true

[postfix]
enabled = true

ignoreipは、監視対象外とするIPアドレス
1時間以内に3回の不正アクセスがあると1週間バンする。

バンアクションのところは、ubuntuだったらufw、とかに書き換える。

バンが発生するとログが記録されるが、destemailに書いたアドレス宛にメールが送信される。
action_mwl というのは、アドレスと、whois情報と、ログ情報がメールに記載される。

私はwhoisをインストールしておらず、メールに「whoisがない」と書いてあったのでインストールしたらwhois情報が載るようになった。