Postfix 3.1.0: как запретить анонимным пользователям отправлять почту [закрыто]

  • ОС: Linux Ubuntu 16.04
  • Postfix версии 3.1.0
  • Dovecot версии 2.2.22

Ситуация

У нас почтовая система на базе Postfix + Dovecot на сервере под управлением Ubuntu 16.04. Система практически хорошо настроена и без проблем предоставляет следующие возможности:

  • Доставка почты (из любого места)
  • Отправка почты (в любое место)
  • Обеспечивает TLS шифрование для почты
  • Обеспечивает SASL аутентификацию пользователей через 465 порт с SSL (postfix smtpd_sasl_type = dovecot)

"в/из любого места" означает, что мы можем отправлять/получать почту на/от таких отправителей как gmail.com и т.д.

Также используем smtpd_sender_login_maps с reject_sender_login_mismatch для smtpd_sender_restrictions.

Но есть "маленькая" проблема: пользователи могут подключаться с помощью любого современного почтового приложения к нашему серверу через 25 порт без авторизации и отправлять письма кому угодно, используя в качестве "адреса отправителя" не существующий адрес.

Мы хотим разрешить отправку почты через наш сервер только для аутентифицированных пользователей и отклонять исходящую почту от анонимных пользователей. Возможно ли это?

postconf -n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
default_process_limit = 100
disable_vrfy_command = yes
header_size_limit = 51200
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
message_size_limit = 10485760
mydestination = $myhostname, localhost.$mydomain $mydomain
myhostname = ourdomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = ourdomain.com
queue_minfree = 20971520
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = AL Mail Service
smtpd_client_connection_count_limit = 10
smtpd_client_connection_rate_limit = 30
smtpd_command_filter = pcre:/usr/local/etc/postfix/command_filter
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_recipient_limit = 100
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
smtpd_relay_restrictions = permit_sasl_authenticated permit_mynetworks defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_login_maps = hash:/etc/postfix/mailsbase
smtpd_sender_restrictions = reject_unauth_destination reject_unknown_sender_domain reject_sender_login_mismatch
smtpd_tls_cert_file = /etc/postfix/certs/cert.pem
smtpd_tls_key_file = $smtpd_tls_cert_file
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
-3
задан 25 January 2018 в 21:14
1 ответ

Решение

Проблема решена путем добавления в main.cf compatibility_level = 2 Итак, этот параметр вместе с парой других (см. Вывод postconf -n из моего вопроса выше) полностью выполнили эту задачу. Кроме того, я внес небольшие изменения в main.cf, например smtpd_sender_restrictions последовательность, но это просто калибровка reject_sender_login_mismatch .

0
ответ дан 5 December 2019 в 22:02

Теги

Похожие вопросы