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

Постфикс / smtpd_relay_restrictions. Как разрешить ретрансляцию со стороннего SMTP-сервера на любые домены (но не открывать ретранслятор!)

По умолчанию мой Postfix разрешает ретрансляцию электронных писем, отправляемых в мой домен (domain1.com), или только для клиентов с аутентификацией по паролю, или для адресов 'myhostname'. Это обычная ситуация для большинства почтовых серверов.

Если я настраиваю коннектор в Exchange Online для отправки исходящих писем через мой постфикс, клиенты (например, Outlook) обычно отправляют электронную почту, используя учетные данные Exchange, а служба Exchange пересылает отправленные письма на мой постфикс.

main.cf:

relay_domains = domain1.com
...
smtpd_relay_restrictions =
        reject_non_fqdn_recipient,
        reject_non_fqdn_sender,
        reject_unknown_recipient_domain,
        reject_unknown_sender_domain,
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_destination,
        reject_invalid_hostname,
        reject_unverified_sender,
        reject_unknown_client_hostname,
        reject_unknown_helo_hostname,
        defer_unauth_destination

Postfix откажет с кодом «454 4.7.1 Relay access denied»:

Anonymous TLS connection established from mail-ve1eur122p0672.outbound.protection.outlook.com[213.199.154.150]: TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)
NOQUEUE: reject: RCPT from mail-ve1eur122p0672.outbound.protection.outlook.com[213.199.154.150]: 454 4.7.1 <external123@partner.org>: Relay access denied; from=<my@domain1.com> to=<external123@partner.org> proto=ESMTP helo=<EUR03-VE1-obe.outbound.protection.outlook.com>
disconnect from mail-ve1eur122p0672.outbound.protection.outlook.com[213.199.154.150]

Это нормально, потому что хост ve1eur122p0672.outbound.protection.outlook.com не указан в myhostname, и этот хост не использует smtp-auth.

Я попытался:

smtpd_relay_restrictions =
        reject_non_fqdn_recipient,
        reject_non_fqdn_sender,
        reject_unknown_recipient_domain,
        reject_unknown_sender_domain,
        permit_mynetworks,
        permit_sasl_authenticated,
        check_client_access hash:/etc/postfix/trusted_servers,
        reject_unauth_destination,
        reject_invalid_hostname,
        reject_unverified_sender,
        reject_unknown_client_hostname,
        reject_unknown_helo_hostname,
        defer_unauth_destination

И:

# less /etc/postfix/trusted_servers
.outbound.protection.outlook.com OK

# postmap /etc/postfix/trusted_servers

Но безрезультатно.

Можно ли разрешить postfix принимать почту с * .outbound.protection.outlook.com на любые домены, но для других разрешать только аутентификацию по паролю?

smtpd_client_restrictions = 
       check_client_access hash:/etc/postfix/trusted_servers

Не smtpd_relay_restrictions раздел. Пожалуйста прочти: http://www.postfix.org/postconf.5.html#check_client_access