постфикс - запретить пользователям изменять имя пользователя электронной почты после входа в систему

У меня есть почтовый сервер с Postfix и Dovecot, и пользователи могут отправлять электронные письма, но (после входа в систему) они могут изменить адрес и отправить из другого (скрытого) примера (скрытый) логин на электронную почту через IMAP / SMTP, а затем он изменит адрес на (скрытый), и ему по-прежнему разрешено отправлять письма, выдавая себя за этого другого пользователя.

Как я могу отключить это? Я попробовал

smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch

, но затем user1 не может отправлять почту даже с (скрытого)

3
задан 7 May 2020 в 07:05
1 ответ

Для ограничения адресов, разрешенных в команде MAIL FROM на основе пользователя, Postfix должен знать, какой адрес (адреса) каким пользователям принадлежит. Поэтому вы должны использовать эти ограничения с smtpd_sender_login_maps.

smtpd_sender_restrictions

  • reject_authenticated_sender_login_mismatch

    Применяет ограничение reject_sender_login_mismatch для только аутентифицированные клиенты. Эта функция доступна в Postfix. версии 2.1 и выше.

  • reject_sender_login_mismatch

    Отклонить запрос, если $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.

1
ответ дан 7 May 2020 в 04:00

Теги

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