Postfixの設定ファイルを使用すると、サービス自体でスパムを減らすためのより詳細な設定が可能です。このガイドでは、PTRレコードがない送信者、不正な挨拶を送る送信者、そしてDNSBLリストに基づいてメールをブロックします。
1. 設定ファイルに以下の設定を追加し、(行をコメントアウトします):
nano /etc/postfix/main.cf
#smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
次に、以下の設定を追加します:
nano /etc/postfix/main.cf
smtpd_client_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_pipelining
permit
smtpd_helo_restrictions =
permit
smtpd_sender_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_non_fqdn_sender
reject_unknown_sender_domain
permit
smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
defer_unauth_destination
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_non_fqdn_recipient
reject_unauth_destination
reject_unknown_recipient_domain
reject_unverified_recipient
reject_unknown_client_hostname
reject_invalid_helo_hostname
reject_non_fqdn_helo_hostname
reject_unknown_helo_hostname
reject_rbl_client b.barracudacentral.org
reject_rbl_client dnsbl.abuse.ch
reject_rbl_client bl.spamcop.net
reject_rbl_client dul.ru
permit
smtpd_data_restrictions =
permit
smtpd_end_of_data_restrictions =
permit
設定を適用するためにPostfixを再起動します:
systemctl restart postfix
ルールを追加または削除することで、送信者に対する要件の厳しさを調整できます。例えば、一般的なメールサービスは、サーバーの挨拶が正しくなく、PTRレコードがMXにマッピングされていないメールを受け入れることがよくあります。以下は各設定の説明です:
- permit_mynetworks — mynetworksで指定されたすべてのアドレスを許可します。
- allow_sasl_authenticated — 認証に成功したすべてのクライアントからのリクエストを許可します。
- reject_unauth_pipelining — SMTPセッションの適切な順序をスキップして、事前に送信されたメールを拒否します。
- reject_non_fqdn_sender — 送信者のアドレスが正しくない場合に接続を拒否します。
- reject_unknown_sender_domain — 送信者のドメインがDNSのMXレコードまたはAレコードを持たない場合にリクエストを拒否します。
- reject_non_fqdn_recipient — 受信者のアドレスが正しくない場合に接続を拒否します。
- reject_unauth_destination — 認証なしでの接続を禁止します。
- reject_unknown_recipient_domain — 受信者ドメインがDNSのMXレコードまたはAレコードを持たない場合にリクエストを拒否します。
- reject_unverified_recipient — RCPT TOアドレスへのメールが拒否された場合、または受信者アドレスが利用できない場合にリクエストを拒否します。
- reject_unknown_client_hostname — 送信者のPTRレコードと、それに対応するAレコードが存在するかを確認します。
- reject_invalid_helo_hostname — HELO挨拶の構文を確認します。
- reject_non_fqdn_helo_hostname — HELO挨拶で正しいFQDN名を要求します。
- reject_unknown_helo_hostname — AレコードまたはMXレコードを持たない名前での挨拶を禁止します。
- reject_rbl_client — 送信者がブラックリストに登録されているかどうかを確認します。
- permit — 接続を許可します。各ブロックの最後に配置されており、禁止ルールに該当しないメールを配送します。