Project

General

Profile

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