Я использую sasldb2 (без saslauthd) для аутентификации SMTP с Postfix. Чтобы создать нового пользователя, я запускаю saslpasswd2 -u example.com mail
который создает логин mail@example.com
. Однако, используя эти учетные данные, я могу успешно подключиться и отправить как other@example.com
. Как я могу ограничить пользователей отправкой сообщений только с их собственного почтового адреса?
Что я пробовал:
postfix-pcre
./etc/postfix/login_map
с содержанием /^(.*)$/ ${1}
.smtpd_sender_login_maps = pcre:/etc/postfix/login_map
.Почтовый сервер с радостью отправляет письма от имени других пользователей. В логах ничего особенного нет.
Как говорится в другом вопросе, есть две важные части, которые необходимо добавить к master.cf
под портом подачи
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
Это гарантирует, что отправку будут отправлять только люди, прошедшие проверку подлинности sasl.
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual
Это карта вашей пользовательской БД, измените ее на ту, которую вы используете
-o smtpd_sender_restrictions=reject_sender_login_mismatch
Это позволит убедиться, что адрес отправителя совпадает с идентификатором входа.