smtp認証の失敗に対する設定¶
saslへの辞書攻撃で発生するpostfixのsmtp認証の失敗に対する設定を行います。
設定¶
postfixのsmtp認証(sasl)への攻撃のログ監視設定はデフォルトで下記の場所にあります。
postfix、saslのログのパスやログ形式をカスタマイズしていなければ、そのまま利用することができると思います。
- /etc/fail2ban/filter.d/postfix-sasl.conf
特定の文字列を検出時にレコードを無視する場合、下記に設定を行う。ignoreregex = ↓ ignoreregex = .*(文字列1|文字列2)
次のアクセス制限の設定を行います。以下のファイルに追記していきます。
- /etc/fail2ban/filter.d/jail.local
[sasl-iptables] enabled = true filter = postfix-sasl backend = polling action = iptables[name=sasl, port=smtp, protocol=tcp] sendmail-whois[name=sasl, dest=root, sender=fail2ban@localhost, sendername="Fail2Ban-SASL"] logpath = /var/log/maillog bantime = 10800 maxretry = 3
ここでは「sasl-iptables」という名前で設定を作り有効化します。
フィルタは前述の「filter.d/postfix-sasl.conf」を使用します。
iptablesでポリシーを追加する際に使用する「名前、ポート、プロトコル」を指定します。
次の行では、banした際に送信するメールの名前、送り先、送信者アドレス、送信者名を指定します。
次に監視するログのパス、banする時間(10800=1時間)、banするまでの試行回数を指定します。
設定の有効化¶
fail2ban設定を再読み込みします。
# systemctl reload fail2ban
動作確認¶
iptablesにポリシーが追加されていることを確認します。
# iptables -L -n Chain f2b-sasl (1 references) target prot opt source destination REJECT all -- xxx.xxx.xxx.xxx 0.0.0.0/0 reject-with icmp-port-unreachable …… … RETURN all -- 0.0.0.0/0 0.0.0.0/0