セキュリティ対策 - fail2ban - postfix-milter


 クラウディア


1. 概要
2. 状況
3. 設定
4. 参考サイト

1. 概要

 メールサーバは、悪意のある者から、標的にされやすいのです。  用意されている、基本セットでは、間に合わないことがあります。

2. 状況

 ある日、メールが届いていないことに気づきます。  ログを見ると。

May 27 07:39:36 ns postfix/smtpd[73420]: connect from unknown[81.30.98.44]
May 27 07:39:36 ns postfix/smtpd[73420]: warning: milter inet:127.0.0.1:11332: can't read SMFIC_OPTNEG reply packet header: Broken pipe
May 27 07:39:36 ns postfix/smtpd[73420]: warning: milter inet:127.0.0.1:11332: read error in initial handshake
May 27 07:39:36 ns postfix/smtpd[73420]: NOQUEUE: milter-reject: CONNECT from unknown[81.30.98.44]: 451 4.7.1 Service unavailable - try again later; proto=SMTP
May 27 07:39:36 ns postfix/smtpd[73420]: NOQUEUE: milter-reject: EHLO from unknown[81.30.98.44]: 451 4.7.1 Service unavailable - try again later; proto=SMTP helo=<localhost>
May 27 07:39:37 ns postfix/smtpd[73420]: disconnect from unknown[81.30.98.44] ehlo=1 auth=0/1 rset=1 quit=1 commands=3/4
 てなログがわさわさあります。  メールサーバに関するプログラムを再起動して受信できるようになったのですが。  この「milter-reject」というのは、それ以降も出力されます。  こんなの。

May 21 16:49:13 ns postfix/cleanup[92369]: 73FA2156E44B: milter-reject: END-OF-MESSAGE from 34.56.196.181.static.anycast.cnt-grms.ec[181.196.56.34]: 5.7.1 SPF verification failed; from=<secret01@sing.ne.jp> to=<secret01@sing.ne.jp> proto=ESMTP helo=<34.56.196.181.static.anycast.cnt-grms.ec>
May 21 16:49:16 ns postfix/cleanup[92369]: E79F7156E44B: milter-reject: END-OF-MESSAGE from 34.56.196.181.static.anycast.cnt-grms.ec[181.196.56.34]: 5.7.1 SPF verification failed; from=<secret01@sing.ne.jp> to=<secret01@sing.ne.jp> proto=ESMTP helo=<34.56.196.181.static.anycast.cnt-grms.ec>
 これらをフィルタして、バンしちゃいます。

3. 設定

 標準のフィルタにはないので、新規に作成します。  以下、「root」ユーザ権限で。

sudo vi /usr/local/etc/fail2ban/filter.d/postfix-milter-reject.local
 下記を記述します。

[Definition]
failregex = milter-reject: CONNECT from unknown\[<HOST>\]: 451 4.7.1 Service unavailable
            milter-reject: EHLO from unknown\[<HOST>\]: 451 4.7.1 Service unavailable
            milter-reject: END-OF-MESSAGE from \S+\[<HOST>\]: (4|5)\.\d\.\d

ignoreregex =
 有効化します。

vi /usr/local/etc/fail2ban/jail.local
 下記を追記します。

[postfix-milter-reject]
enabled  = true
filter   = postfix-milter-reject
logpath  = /var/log/maillog
banaction = pf
findtime = 600
maxretry = 3
bantime  = 86400
 バンアクション時のふるまい、ログファイルのパス・ファイル名、検索周期、検出回数、バン期間は、適宜、環境に合わせます。  再起動します。

service fail2ban restart

4. 参考サイト

 本ページは、「Gemini」伍長を参考にさせていただきました。

audiobook.jp
AbemaTV 無料体験
健康サポート特集
U-NEXT
それがだいじWi-Fi
5G CONNECT
earthcar(アースカー)
薬屋の独り言
ハイスピードプラン
【usus ウズウズ】
ネットオークションの相場、統計、価格比較といえばオークファン
EaseUS
損保との違い
サウンドハウス
葬送のフリーレン Prime Video
アフィリエイトのアクセストレード
JETBOY
ベルリッツ
TikTok Shop 【リピート用プログラム】
EMEET 1
Amazonギフトカード