Postfix スパム対策メモ

ここ1年、受信するスパムがとんでもない量になってきて限界を感じたので、いまさらながら研究室のメールサーバの設定を変更したのでメモ。もっと早く対応しておくべきだった。

環境

% cat /etc/debian_version 
10.5

% postconf | grep mail_version
mail_version = 3.4.14

SMTP AUTHも導入している

スパム対策関連設定

/etc/postfix/main.cf に記載する。

# HELOコマンド実行時の設定
smtpd_helo_required = yes
smtpd_helo_restrictions = 
        permit_mynetworks 
        reject_invalid_helo_hostname 
        reject_non_fqdn_helo_hostname

# 転送要求への対応。第3者からの転送依頼を拒否する設定
smtpd_relay_restrictions = 
        permit_mynetworks             #ローカルネットワークを許可
        permit_sasl_authenticated  # SASL認証による認証を通れば許可
       defer_unauth_destination     # サブネットかメールサーバ上のアドレス以外不許可

# RCPT TO コマンド実行時(メールの送り先)の設定。
smtpd_recipient_restrictions = 
	permit_mynetworks                #ローカルネットワークを許可
	permit_sasl_authenticated     # SASL認証による認証を通れば許可
	reject_unauth_destination      # サブネットかメールサーバ上のアドレス以外不許可
	reject_non_fqdn_recipient      #  送信先メールアドレスがRFC で要求されているようなFQDNではない場合に不許可
	reject_unknown_recipient_domain # 送信先メールアドレスのドメインが存在しない場合不許可
	reject_unverified_recipient                # 信先メールアドレスが不達やバウンスメールが帰ってくることがわかっている場合に不許可

# MAIL FROM コマンド実行時(メールの送り元)の設定。
smtpd_sender_restrictions =
	permit_mynetworks                #ローカルネットワークを許可
	check_sender_access hash:/etc/postfix/reject_sender     # 特定の送信メールアドレスを不許可にするフィルタ
	reject_unknown_sender_domain   # 送信元ドメインが存在しない場合に不許可
	reject_non_fqdn_sender                # 送信元メールアドレスがRFC で要求されているようなFQDNではない場合に不許可

# 
smtpd_client_restrictions =
	permit_mynetworks
	reject_unknown_reverse_client_hostname
	check_client_access pcre:/etc/postfix/client_access
	reject_unknown_client_hostname

smtpd_data_restrictions =
	permit_mynetworks
	reject_unauth_pipelining

ログによると上記を設定して4時間強で400件超のスパムメールをRejectしている。 smtpd_relay_restrictionsは昔からやっていたけど、その他はもっと早く試みるべきだった。

追記(対策実施前と実施後の違い)

logwatchの結果をみてみる。8/4 (対策実施前)

--------------------- Postfix Begin ------------------------ 

      943   SASL authentication failed                     943
      142   Miscellaneous warnings                         142
 
   14.840M  Bytes accepted                          15,561,083
   26.408M  Bytes sent via SMTP                     27,690,372
   32.532M  Bytes delivered                         34,112,589
   26.759M  Bytes forwarded                         28,058,426
 ========   ==================================================
 
      559   Accepted                                    86.94%
       84   Rejected                                    13.06%
 --------   --------------------------------------------------
      643   Total                                      100.00%
 ========   ==================================================
 
       71   5xx Reject relay denied                     84.52%
       13   5xx Reject unknown user                     15.48%
 --------   --------------------------------------------------
       84   Total 5xx Rejects                          100.00%
 ========   ==================================================

8/6(対策後)

 --------------------- Postfix Begin ------------------------ 

     1997   SASL authentication failed                   1,997
      120   Miscellaneous warnings                         120
 
   19.148M  Bytes accepted                          20,078,220
   13.604M  Bytes sent via SMTP                     14,265,131
   20.858M  Bytes delivered                         21,871,057
   15.200M  Bytes forwarded                         15,938,582
 ========   ==================================================
 
      173   Accepted                                    33.79%
      339   Rejected                                    66.21%
 --------   --------------------------------------------------
      512   Total                                      100.00%
 ========   ==================================================
 
       20   5xx Reject relay denied                      5.90%
        1   5xx Reject HELO/EHLO                         0.29%
      318   5xx Reject client host                      93.81%
 --------   --------------------------------------------------
      339   Total 5xx Rejects                          100.00%
 ========   ==================================================
 
       60   4xx Reject recipient address                 3.65%
        9   4xx Reject sender address                    0.55%
     1577   4xx Reject unknown reverse client host      95.81%
 --------   --------------------------------------------------
     1646   Total 4xx Rejects                          100.00%
 ========   ==================================================