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.confdrwxr-xr-x 2 root root 4096 2月 18 03:17 2017 fail2ban.ddrwxr-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.confdrwxr-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-saslStatus 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 destinationDROP all -- 103.231.139.146 anywhereDROP all -- 103.231.139.127 anywhereDROP all -- 103.231.139.79 anywhereDROP all -- 185.137.111.37 anywhereDROP all -- 185.137.111.162 anywhereDROP all -- 103.231.139.248 anywhereRETURN all -- anywhere anywhere
注意点
iptableの設定にf2b-recidiveってチェーンを付けて動作しています。
そのため、iptableを再起動、または再読込した場合、fail2banの設定が消えてしまいます。
この場合、fail2banも再起動するようにしてください。
