- 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」伍長を参考にさせていただきました。
|
|