Назад | Перейти на главную страницу

Postfix - ограничить аутентифицированных отправителей их собственным адресом электронной почты в MAIL FROM

Как мне запретить моим (прошедшим проверку подлинности) пользователям отправлять сообщения электронной почты с неверными или полностью фальсифицированными адресами электронной почты с адресов?

Моя почтовая служба - postfix, и я уже установил ограничения для отправителя и получателя, например reject_unlisted account или reject non fqdn domains или имя хоста, но это не сработало!

Как я могу решить эту проблему в моих корпоративных почтовых службах?

    readme_directory = /usr/share/doc/postfix-2.11.5/README_FILES
virtual_mailbox_domains = $virtual_mailbox_maps, hash:/var/spool/postfix/plesk/virtual_domains
virtual_alias_maps = $virtual_maps, hash:/var/spool/postfix/plesk/virtual
virtual_mailbox_maps = , hash:/var/spool/postfix/plesk/vmailbox
transport_maps = , hash:/var/spool/postfix/plesk/transport
smtpd_tls_cert_file = /etc/postfix/postfix_default.pem
smtpd_tls_key_file = $smtpd_tls_cert_file
smtpd_tls_security_level = may
smtpd_use_tls = yes
smtp_tls_security_level = may
smtp_use_tls = no
smtpd_timeout = 3600s
smtpd_proxy_timeout = 3600s
disable_vrfy_command = yes
mynetworks = , hash:/var/spool/postfix/plesk-pop/poplock
smtpd_sender_restrictions = reject_unknown_sender_domain,reject_unauthenticated_sender_login_mismatch,reject_known_sender_login_mismatch,hash:/var/spool/postfix/plesk/blacklists, permit_sasl_authenticated, check_client_access, pcre:/var/spool/postfix/plesk/non_auth.re, check_sender_access hash:/var/spool/postfix/plesk/blacklists
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated
smtp_send_xforward_command = yes
smtpd_authorized_xforward_hosts = 127.0.0.0/8 [::1]/128
smtpd_sasl_auth_enable = yes
smtpd_relay_restrictions =permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination, reject_unlisted_sender
smtpd_recipient_restrictions = reject_unknown_sender_domain,reject_non_fqdn_sender,permit_mynetworks,permit_sasl_authenticated, reject_unauth_destination, reject_unauth_destination, defer_unauth_destination,reject_unverified_recipient,reject_unknown_recipient_domain
virtual_mailbox_base = /var/qmail/mailnames
virtual_uid_maps = static:30
virtual_gid_maps = static:31
smtpd_milters = , inet:127.0.0.1:12768
non_smtpd_milters =
sender_dependent_default_transport_maps = hash:/var/spool/postfix/plesk/sdd_transport_maps
virtual_transport = plesk_virtual
plesk_virtual_destination_recipient_limit = 1
mailman_destination_recipient_limit = 1
mailbox_size_limit = 0
virtual_mailbox_limit = 0
myhostname = host.com
smtpd_tls_mandatory_protocols = TLSv1 TLSv1.1 TLSv1.2
smtpd_tls_protocols = TLSv1 TLSv1.1 TLSv1.2
smtpd_tls_ciphers = medium
smtpd_tls_mandatory_ciphers = medium
tls_medium_cipherlist = HIGH:!aNULL:!MD5
message_size_limit = 102400000
smtpd_sasl_authenticated_header = yes
disable_vrfy_command = yes
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = no
smtpd_sasl_security_options = noanonymous

Когда я форматирую smtpd_sender_restrictions так он становится более читабельным:

smtpd_sender_restrictions = reject_unknown_sender_domain, 
                            reject_unauthenticated_sender_login_mismatch, 
                            reject_known_sender_login_mismatch, 
                            hash:/var/spool/postfix/plesk/blacklists, 
                            permit_sasl_authenticated, 
                            check_client_access, 
                            pcre:/var/spool/postfix/plesk/non_auth.re, 
                            check_sender_access  hash:/var/spool/postfix/plesk/blacklists

Ты видишь reject_unauthenticated_sender_login_mismatch вариант. Этот параметр только заставляет reject_sender_login_mismatch ограничение (для обеспечения того, чтобы аутентифицированный отправитель использовал определенный адрес MAIL FROM), но только для неаутентифицированных клиентов. При аутентификации вы все равно можете использовать любой адрес FROM, который хотите.

Для аутентифицированных клиентов становится актуальной следующая опция: reject_known_sender_login_mismatch
Этот вариант применяет reject_sender_login_mismatch но только на известные адреса в smtpd_sender_login_maps.

В вашей конфигурации не упоминается smtpd_sender_login_maps настолько эффективно, что ограничение не применяется ни к одному пользователю / адресу электронной почты.

Решение, чтобы иметь reject_sender_login_mismatch применяется для обеспечения того, чтобы аутентифицированный отправитель использовал определенный адрес MAIL FROM, вам нужно будет настроить smtpd_sender_login_maps с именами входа SASL, которым принадлежат адреса отправителя (MAIL FROM), для всех пользователей и адресов электронной почты, которые используются.

Проверять, выписываться этот вопрос и ответ для большего .