2013-09-08 3 views
2

Недавно я перешел из Courier в Dovecot. Основное руководство, которое я последовал для настройки Postfix + MySQL + Dovecot, было следующим: https://library.linode.com/email/postfix/postfix2.9.6-dovecot2.0.19-mysqlPostfix, отправляющий почту с несуществующих адресов электронной почты

Все работает отлично, но когда я меняю почтовый адрес в почтовом клиенте, оставляя правильный логин и пароль для серверов, электронной почты с этим фальшивым адресом электронной почты (и доменом), Postfix просто отправляет его, не проверяя, существует ли этот адрес электронной почты в базе данных и не проверяет, был ли этот адрес электронной почты даже моим.

Итак, что-то не так с моей конфигурацией SMTP. Это моя текущая конфигурация:

# Requirements for the sender details 
smtpd_reject_unlisted_sender = yes 
smtpd_reject_unlisted_recipient = yes 

smtpd_sender_restrictions = 
     warn_if_reject, 
     permit_mynetworks, 
     permit_sasl_authenticated, 
     reject_non_fqdn_sender, 
     reject_unknown_sender_domain, 
     reject_unauth_pipelining, 
     reject_unlisted_sender, 
     reject_unverified_sender, 
     permit 

# Requirements for the connecting server 
smtpd_client_restrictions = 
     reject_rbl_client zen.spamhaus.org, 
     reject_rbl_client blackholes.easynet.nl, 
     reject_rbl_client bl.spamcop.net, 
     permit 

# Requirement for the recipient address 
smtpd_recipient_restrictions = 
     permit_mynetworks, 
     permit_sasl_authenticated, 
     reject_unauth_pipelining, 
     reject_non_fqdn_recipient, 
     reject_unknown_recipient_domain, 
     reject_unauth_destination, 
     reject_unlisted_recipient, 
     reject_unverified_recipient, 
     check_policy_service inet:127.0.0.1:10023, 
     permit 

smtpd_data_restrictions = 
     reject_unauth_pipelining 

# require proper helo at connections 
smtpd_helo_required = yes 
# waste spammers time before rejecting them 
smtpd_delay_reject = yes 
isable_vrfy_command = yes 

Кто-нибудь?

ответ

2

reject_unlisted_sender ограничение, перечисленное в smtpd_sender_restrictions, указано после permit_mynetworks и permit_sasl_authenticated. Postfix перемещает список ограничений по порядку и заканчивается, когда он достигает первого разрешения/отклонения и, следовательно, никогда не достигает reject_unlisted_sender. Поскольку ваше сообщение не было отклонено reject_unauth_destination, оно, должно быть, было принято из-за permit_mynetworks или permit_sasl_authenticated.

Кроме того, если адрес отправителя вы использовали не была доменная часть, которая была на самом деле «принадлежит» Postfix (т.е. перечисленных в mydestination, virtual_mailbox_domains, virtual_alias_domains или relay_domains), он не может быть подтверждено и reject_unlisted_sender не будет работать , См. Подробности в postconf(5) man page.

Другие наблюдения:

  • warn_if_reject ограничение помещается перед permit_mynetworks. Поскольку последний никогда не отвергает ничего, ограничение warn_if_reject не имеет никакой цели.
  • Поскольку вы явно используете reject_unlisted_recipient и reject_unlisted_sender, установка smtpd_reject_unlisted_sender и smtpd_reject_unlisted_recipient не требуется.
  • Окончание permit в конце (почти) каждого списка неявно и может быть отброшено.
  • Если это не ошибка с копией/пастой, у вас с ошибкой disable_vrfy_command.
  • Я предлагаю вам объединить списки ограничений для клиентов и отправителей в smtpd_recipient_restrictions. При включенном smtpd_delay_reject все ограничения будут оцениваться на этапе получателя в любом случае, а один список обычно упрощает понимание конфигурации.
Смежные вопросы