У меня есть почтовый сервер с Postfix и Dovecot, и пользователи могут отправлять электронные письма, но (после входа в систему) они могут изменить адрес и отправить из другого (скрытого) примера (скрытый) логин на электронную почту через IMAP / SMTP, а затем он изменит адрес на (скрытый), и ему по-прежнему разрешено отправлять письма, выдавая себя за этого другого пользователя.
Как я могу отключить это? Я попробовал
smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch
, но затем user1
не может отправлять почту даже с (скрытого)
Для ограничения адресов, разрешенных в команде MAIL FROM
на основе пользователя, Postfix должен знать, какой адрес (адреса) каким пользователям принадлежит. Поэтому вы должны использовать эти ограничения с smtpd_sender_login_maps
.
smtpd_sender_restrictions
reject_authenticated_sender_login_mismatch
Применяет ограничение
reject_sender_login_mismatch
для только аутентифицированные клиенты. Эта функция доступна в Postfix. версии 2.1 и выше.Отклонить запрос, если
$smtpd_sender_login_maps
указывает владельца для адресаMAIL FROM
, но клиент не зарегистрирован (SASL) как что владелец адресаПОЧТА ОТ
; или когда клиент (SASL) вошел в систему, но имя входа клиента не принадлежит адресу MAIL FROM согласно на$smtpd_sender_login_maps
.
Если вы используете virtual_alias_maps
для сопоставления адресов с локальными пользователями, формат идентичен для smtpd_sender_login_maps
, и вы можете просто использовать тот же файл. В этом примере я предполагаю хеш:
БД Беркли в /etc/postfix/virtual
(требуется postmap /etc/postfix/virtual
после изменений):
user1@example.com user1
joe.bloggs@example.com user1
user2@example.com user2
jane.doe@example.com user2
admin@example.com root
При этом можно использовать один и тот же файл для обеих целей, а изменения во входящих картах сразу же повлияют и на разрешенные исходящие адреса.
В main.cf
:
virtual_alias_domains = пример.ком
virtual_alias_maps = хеш:/etc/postfix/виртуальный
Для аутентифицированной отправки (на порту 587
) в master.cf
(при условии TLS и Dovecot SASL):
отправка inet n - - - - smtpd
-o smtpd_tls_security_level=шифровать
-o smtpd_sasl_auth_enable=да
-o smtpd_sasl_type=голубятня
-o smtpd_sasl_path=частный/авторизация
-o smtpd_sasl_security_options=без анонимности
-o smtpd_sasl_local_domain=$имя_хоста
-o smtpd_client_restrictions=permit_sasl_authenticated,отклонить
-o smtpd_sender_login_maps=хеш:/etc/postfix/виртуальный
-o smtpd_sender_restrictions=reject_sender_login_mismatch
Конечно, можно использовать
smtpd_sender_login_maps = hash:/etc/postfix/virtual
smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch
непосредственно в main.cf
, но я рекомендую использовать отдельную конфигурацию для отправки: это позволяет использовать другой набор ограничений и других настроек для аутентифицированных пользователей, чем для входящей почты , а также работает лучше, например с домашним интернет-соединением, которое ограничивает использование SMTP-порта 25
.