Ограничить порт 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
делает..