Postfix позволяет SASL-аутентифицированным пользователям отправлять с любого IP-адреса
Я понимаю, что мне нужен SMTP на порту 25 для получения электронной почты, но я не хочу, чтобы это был порт ретрансляции. Вместо этого я бы использовал порт 587, который будет использоваться зарегистрированными (аутентифицированными SASL) пользователями для пересылки электронной почты с любого IP-адреса, через мой сервер и на любой почтовый сервер (например, GMail, Yahoo).
Я настроил Postfix для получения электронной почты и аутентификации пользователей, но я совершенно сбит с толку разницей между портами 25 и 587 и тем, как использовать один для получения и один для ретрансляции.
Вот соответствующая часть моего main.cf
В настоящее время.
myhostname = mx.example.com
mydomain = example.com
#myorigin = $mydomain
mydestination = localhost localhost.localdomain
mynetworks_style = host
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_relay_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
# reject_unauth_destination is not needed here if the mail
# relay policy is specified under smtpd_relay_restrictions
# (available with Postfix 2.10 and later).
reject_unauth_destination
reject_rbl_client zen.spamhaus.org,
reject_rhsbl_reverse_client dbl.spamhaus.org,
reject_rhsbl_helo dbl.spamhaus.org,
reject_rhsbl_sender dbl.spamhaus.org
А также master.cf
,
smtp inet n - - - - smtpd
#smtp inet n - - - 1 postscreen
#smtpd pass - - - - - smtpd
#dnsblog unix - - - - 0 dnsblog
#tlsproxy unix - - - - 0 tlsproxy
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_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sender_restrictions=reject_sender_login_mismatch
К сожалению, я получаю эту ошибку при попытке отправки через порт 587 с моим почтовым клиентом с другого IP-адреса.
NOQUEUE: reject: RCPT from unknown[XXX.XXX.XXX.XXX]: 553 5.7.1 <test@example.com>: Sender address rejected: not owned by user test@example.com; from=<test@example.com> to=<test@domain.tld> proto=ESMTP helo=<[192.168.1.3]>
1 ответ
Конфигурация для каждого порта выполняется в master.cf
не main.cf
, Стандартные файлы конфигурации Postfix уже имеют хорошие примеры настроек, их просто нужно раскомментировать. Порт 587 помечен как submission
порт там (порт 25 конечно smtp
).
Ваши настройки могут быть несколько упрощены. В main.cf
укажите политику по умолчанию (для порта 25) только как recipient_restrictions
Ничего больше, чем это необходимо:
smtpd_recipient_restrictions = permit_mynetworks reject_unverified_recipient reject_rbl_client zen.spamhaus.org reject_rbl _...... permit_auth_destination отклонять
В master.cf
переопределите его, сняв ранее установленные ограничения и разрешив неограниченную ретрансляцию для аутентифицированных пользователей:
smtp inet n - n - - smtpd представление инет n - n - - smtpd -o syslog_name= постфикс / представление -o smtpd_tls_security_level= шифровать -o smtpd_sasl_auth_enable= да -o smtpd_reject_unlisted_recipient= нет -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions= allow_sasl_authenticated, отклонить -o milter_macro_daemon_name=ORIGINATING