僅允許來自 mynetworks 的 SMTP 驗證

僅允許來自 mynetworks 的 SMTP 驗證

是否可以僅允許來自 mynetworks 中的 IP 的 SMTP 驗證?我測試了很多選項,但沒有一個有效。這是我的 main.cf 的實際狀態:

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mx1.domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mail.domain.com, localhost.domain.com, localhost
relayhost =
mynetworks = 172.20.1.0/24 172.18.1.0/24 192.168.0.0/24 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = no

smtpd_recipient_restrictions = 
    check_recipient_access mysql:/etc/postfix/blocked-recipients.cf,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    check_sender_access hash:/etc/postfix/sender_access

message_size_limit = 409600000

答案1

您可能想要使用smtpd_sasl_exceptions_networks

答案2

謝謝@84104。你的回答讓我發現這個話題這解決了我的問題。

smtpd_sasl_exceptions_networks沒有宣布支持 AUTH,但仍然允許來自任何 IP 的 AUTH。

捐贈此功能是為了防止某些網路用戶端在伺服器宣布 AUTH 支援但用戶端沒有登入資訊時出現混亂。有了smtpd_sasl_exceptions_networks,這些客戶端就不會嘗試進行身份驗證,一切都很好。

smtpd_sasl_exceptions_networks已被淘汰 smtpd_discard_ehlo_keywordssmtpd_discard_ehlo_keyword_address_maps。後兩者阻止 Postfix 接受 AUTH 指令。

smtpd_sasl_exceptions_networks可能應該被棄用並最終從文件中刪除。

相關內容