SASLへの辞書攻撃対策としてfail2banを導入

ここしばらくからメールサーバーに対しての辞書攻撃が激しくなってきました。

Apr 21 04:18:52 www11118ui postfix/smtpd[21283]: warning: unknown[103.231.139.127]: SASL LOGIN authentication failed: UGFzc3dvcmQ6

どうしたものかと調べていたら「fail2ban」を皆さん採用されているので、今回導入してみました。

インストール

いつものごとく

#yum install fais2ban

これで下記のファイルが展開されます。

# ls -al /etc/fail2ban/
drwxr-xr-x 2 root root 4096 4月 27 00:48 2019 action.d
-rw-r--r-- 1 root root 2313 2月 18 03:17 2017 fail2ban.conf
drwxr-xr-x 2 root root 4096 2月 18 03:17 2017 fail2ban.d
drwxr-xr-x 3 root root 4096 4月 27 00:29 2019 filter.d
-rw-r--r-- 1 root root 21280 2月 18 03:17 2017 jail.conf
drwxr-xr-x 2 root root 4096 4月 27 01:11 2019 jail.d
-rw-r--r-- 1 root root 2375 12月 9 23:36 2016 paths-common.conf
-rw-r--r-- 1 root root 642 12月 9 23:36 2016 paths-debian.conf
-rw-r--r-- 1 root root 769 2月 18 03:17 2017 paths-fedora.conf
-rw-r--r-- 1 root root 1174 12月 9 23:36 2016 paths-freebsd.conf
-rw-r--r-- 1 root root 975 12月 9 23:36 2016 paths-opensuse.conf
-rw-r--r-- 1 root root 290 12月 9 23:36 2016 paths-osx.conf

各設定情報はjail.confに入っていますので、必要な処理を有効にします。

※今回はpostfix-saslを有効にしました。

ただ、jail.confを直接編集するのでなく、下記のファイルを作成し差分の設定を上書きするようにします。

1)jail.localファイルを作成する

2)jail.d/local.confファイルを作成する

今回は2)のlocal.confファイルを作成していくことにしました。

設定を有効にしましょう

jail.d/local.confファイルを作成しました。

[postfix-sasl]
enabled = true   # 有効にする
maxretry = 3     # findtime内で3回検出したらBANする

jail.confにBAN時間(bantime:600秒)と検出期間(findtime:600秒)が設定されています。

[recidive]
enabled = true   # 有効にする
maxretry = 3     # 3回BANされたら一週間BANする

jail.confにBAN時間(bantime:604800秒)と検出期間(findtime:86400秒)が設定されています。

fail2banの出力ログですが、別にログを出力されてる例を見かけますが、今回はデフォルトのままで、syslog(/var/log/message)に出力しています。

必要でしたら、fail2ban.conにlogtargetを変更してください。

fail2banを起動しましょう

# /etc/rc.d/init.d/fail2ban start

動作状況はこんな感じで確認します。

# fail2ban-client status postfix-sasl
Status for the jail: postfix-sasl
|- Filter
| |- Currently failed: 3
| |- Total failed: 15
| `- File list: /var/log/maillog
`- Actions
|- Currently banned: 0
|- Total banned: 6
`- Banned IP list:

またiptableでも確認ができます。

Chain f2b-recidive (1 references)
target prot opt source destination
DROP all -- 103.231.139.146 anywhere
DROP all -- 103.231.139.127 anywhere
DROP all -- 103.231.139.79 anywhere
DROP all -- 185.137.111.37 anywhere
DROP all -- 185.137.111.162 anywhere
DROP all -- 103.231.139.248 anywhere
RETURN all -- anywhere anywhere

注意点

iptableの設定にf2b-recidiveってチェーンを付けて動作しています。

そのため、iptableを再起動、または再読込した場合、fail2banの設定が消えてしまいます。

この場合、fail2banも再起動するようにしてください。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です