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

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

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

Для достижения этого я установил в моем main.cf

smtpd_recipient_restriction=permit_mynetworks, reject_unauth_destination

то есть я удалил allow_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

1 ответ

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

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

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

представление инет 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 или что-то еще.

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

Другие вопросы по тегам