Postfixはすべての中継ドメインターゲットを拒否します(relay_domainsを除く)。

Postfixはすべての中継ドメインターゲットを拒否します(relay_domainsを除く)。

私はPostfix 3.5.17を含むDebian 11を実行しており、クライアントが(送信されたメールから)メールを中継できるドメインを制限するのに問題があります。

メールを中継したい特定のドメインにのみRelay_domainsを設定しましたが、domain.comにテストメッセージを送信すると、Relay_domainsにない場合でもログにそのドメインへの接続が表示されます。

今はRelay_domainsが実際に何も拒否していないようです。これを行うために必要な追加の設定オプションや制限はありますか?

セッション後 -n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
anvil_rate_time_unit = 60s
append_dot_mydomain = no
biff = no
compatibility_level = 2
default_destination_rate_delay = 5s
disable_vrfy_command = yes
inet_interfaces = all
inet_protocols = all
invalid_hostname_reject_code = 550
mailbox_size_limit = 0
maximal_backoff_time = 3h
minimal_backoff_time = 180s
mydestination = localhost
mydomain = localmail.com
myhostname = localmail.com
mynetworks = 127.0.0.0/8 172.20.0.0/16 10.10.0.0/16 192.168.0.0/16
myorigin = $mydomain
non_fqdn_reject_code = 550
readme_directory = no
recipient_delimiter = +
relay_domains = protonmail.com, protonmail.ch, mail.protonmail.ch, mailsec.protonmail.ch
relayhost =
smtp_always_send_ehlo = yes
smtp_helo_timeout = 15s
smtp_rcpt_timeout = 15s
smtp_tls_security_level = encrypt
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_message_rate_limit = 10
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated,
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname
smtpd_recipient_limit = 40
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_timeout = 30s
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/mailtls-selfsigned.crt
smtpd_tls_key_file = /etc/ssl/private/mailtls-selfsigned.key
smtpd_tls_security_level = encrypt
smtpd_use_tls = yes
strict_rfc821_envelopes = yes
unknown_address_reject_code = 550
unknown_client_reject_code = 550
unknown_hostname_reject_code = 550
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-email2email.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp

答え1

制限の順序が重要です。最初に一致するルールが優先されます。

他の制限がないため、permit_mynetworksローカルネットワーク上のホストはどこにでも中継できます。同様にpermit_sasl_authenticated、認証されたクライアントがすべてのドメインに中継できるようにする2番目の制限があります。

望まない場合は入れてくださいreject_unauth_destination 今後 permit_mynetworksそしてpermit_sasl_authenticated

からman 5 postconf

reject_unauth_destination

次のいずれかの条件が満たされない場合は、要求を拒否します。

  • Postfixはメールフォワーダです。解決されたRCPT TOドメインが一致する $relay_domainsか、そのサブドメインと一致し、送信者によって指定されたパス(user@elsewhere@domain)が含まれていません。

  • Postfixは最終的なターゲットです。解析されたRCPT TOドメインは$mydestination、、、またはと一致し $inet_interfaces、送信者によって指定されたパス(user@elsewhere@domain)を含みません。$proxy_interfaces$virtual_alias_domains$virtual_mailbox_domains

このrelay_domains_reject_codeパラメーターは、拒否された要求の応答コードを指定します(デフォルト:554)。

関連情報