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

Ограничьте порт 25 только для локальной доставки

Я настроил свой постфикс таким образом, чтобы пользователи моего сервера отправляли почту через порт 587, а порт 25 будет использоваться только для получения писем с почтовых серверов.

Я добился успеха до такой степени, что при подключении к порту 25 почта не разрешается за пределами почтового сервера, и он отклоняется как отказано в доступе к ретрансляции. тогда как на порту 587 клиенты могут отправлять почту на внешние почтовые серверы.

Для этого я установил в свой main.cf

smtpd_recipient_restriction=permit_mynetworks, reject_unauth_destination

то есть я удалил разрешение_sasl_authenticated.

если я добавлю это условие, почту можно будет отправлять за пределы сети, и если я удалю условие, любой может подключиться к порту 25, и, поскольку нет аутентификации, можно отправить любое количество писем локальным получателям.

как я могу использовать sasl-аутентификацию на порту 25, но не позволять ему ретранслировать почту за пределы моей сети.

настройка в main.cf:

smtpd_recipient_restrictions=
    reject_unauth_pipelining,permit_mynetworks,reject_unauth_destination,
    reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_recipient_domain,
    reject_non_fqdn_recipient,reject_unauth_destination,check_sender_access mysql:/etc
    /postfix/mysql-virtual_sender.cf,reject_non_fqdn_sender,
    reject_unknown_sender_domain,reject_unknown_recipient_domain,reject_rbl_client 
    cbl.abuseat.org,reject_rbl_client dul.dnsbl.sorbs.net,reject_rbl_client
    ix.dnsbl.manitu.net,check_recipient_access mysql:/etc/postfix/mysql-
    virtual_recipient.cf,permit

настройка в master.cf

submission inet  n       -       -       -       -       smtpd
   -o syslog_name=postfix/submission
   -o smtpd_tls_security_level=encrypt
   -o smtpd_sasl_auth_enable=yes
   -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

В master.cf вы можете добавить ограничения для каждого порта. Посмотрите внизу файла master.cf, вы увидите что-то вроде этого:

#submission inet n – n – – smtpd
или
#587 inet n - n - - smtpd

вы захотите раскомментировать его, а затем добавить (что-то вроде этого, прочтите, что делает каждое значение)

представление inet n - n - - smtpd
-o smtpd_tls_security_level = зашифровать
-o smtpd_sasl_auth_enable = да
-o smtpd_client_restrictions = allow_sasl_authenticated, отклонить
(здесь есть много вариантов, которые можно добавить)

По сути, -o означает переопределение того, что находится в main.cf для этого порта. Таким образом, вы можете настроить main.cf для приема почты на порт 25 так, как вы хотите, а затем настроить порт 587 (отправка), чтобы разрешить только sasl auth или что-то еще.

Вы хотите разрешить кому-либо (в пределах разумного) отправлять вам почту через порт 25, но не разрешать ретрансляцию через этот порт. Это то что reject_unauth_destination делает ..