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 <[email protected]>: Sender address rejected: not owned by user [email protected]; from=<[email protected]> to=<[email protected]> 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
Другие вопросы по тегам