カテゴリー
Linux

Fail2ban で不正アクセス防止 (postfix 編)

Fail2ban を、dovecothttpd (apache) へ適用してきましたが、今回は postfix へも適用することにしました。

Fail2ban の基本的な設定としては jail.conf とフィルター設定が対になっています。
今回は smtp への不正な認証を検出してアクセスを禁止する jail.conf とフィルター作成しました。

1. jail.conf の変更

jail.conf をエディターで開いて、以下の設定を追加します。

[postfix-sasl]
enabled = true
filter = postfix-sasl
action = iptables-multiport[name=postfix-sasl, port="smtp,smtps", protocol=tcp]
         sendmail-whois[name=postfix-sasl, dest=root, sender=fail2ban]
logpath = /var/log/maillog

– フィルター名に postfix-sasl、
– アクションには iptables で smtp, smtps のポート、tcp プロトコルをアクセス禁止にします。 そして、root 宛てにメールを送信します。
– スキャンするログファイルは postfix のログを指定します。

2. postfix-sasl.conf (フィルター) の作成

次にフィルターを作成します。フィルターとは、fail2ban にそのログからアクセスを禁止させたい失敗パターン(認証失敗など)を指定します。

/etc/fail2ban/filter.d/ の下に postfix-sasl.conf 名前でファイルを作成して以下の内容で保存します。

[Definition]
failregex = .*postfix/smtpd.*warning: .*[]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed
            (?i): warning: [-._w]+[]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(:.*)$

上記のフィルターで、以下のログがマッチしてアクセス元のIP アドレスからのアクセスを禁止します。

Mar  3 19:47:33 localhost postfix/smtpd[xxxx]: warning: unknown[XXX.39.146.163]: SASL LOGIN authentication failed: authentication failure

fail2ban が不正な認証を検出すると、以下のようなメールが送信されてきます。

~ 抜粋 ~
Hi,

The IP XXX.39.146.163 has just been banned by Fail2Ban after
2 attempts against postfix-sasl.


Here are more information about XXX.39.146.163:
~ 以下省略 ~

以上です。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください