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

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

У меня есть почтовый сервер с Postfix и Dovecot, и пользователи могут отправлять электронные письма, но (после входа в систему) они могут изменять адрес и отправлять с других username@example.com.

Например, user1@example.com войдите в электронную почту через IMAP / SMTP, а затем он изменит адрес на admin@example.com и все еще может отправлять письма, выдавая себя за другого пользователя.

Как я могу это отключить? Я попытался

smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch

но потом user1 не могу отправить почту даже с user1@example.com.

Чтобы ограничить адрес, разрешенный в 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) не вошел в систему как этот MAIL FROM владелец адреса; или когда клиент (SASL) вошел в систему, но имя входа клиента не владеет адресом MAIL FROM в соответствии с $smtpd_sender_login_maps.

Если вы используете virtual_alias_maps для сопоставления адресов локальным пользователям формат идентичен для smtpd_sender_login_maps, и вы можете просто использовать тот же файл. В этом примере я предполагаю, что hash: Berkeley DB в /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 = example.com
    virtual_alias_maps = hash:/etc/postfix/virtual
    
  • Для аутентифицированных подчинение (в порту 587) в master.cf (при условии TLS и Dovecot SASL):

    submission inet n - - - - smtpd
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_sasl_type=dovecot
      -o smtpd_sasl_path=private/auth
      -o smtpd_sasl_security_options=noanonymous
      -o smtpd_sasl_local_domain=$myhostname
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
      -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
      -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.