Только включите SRS при передаче для включения DMARC

Я настраиваю почтовый сервер на своем VPS и для предотвращения спама и отмечаемый как спам, который я включил SPF, DKIM и DMARC. Однако я не хочу размещать свой собственный почтовый ящик, таким образом, я пересылаю входящую почту во внешние почтовые учетные записи, например, Gmail. Проблема с передачей состоит в том, что она повреждает проверку SPF. Это может быть зафиксировано при помощи SRS, который переписывает адрес отправителей для соответствия почтовому серверу.

При отправке почты я настроил Gmail для отправки почты через мой почтовый сервер. В этом случае SPF, DKIM и DMARC передадут, но только если SRS отключен, иначе SRS заставит передающий домен адреса больше не соответствовать ОТ домена заголовка, который является требованием для DMARC для передачи.

Таким образом, мой вопрос, как я могу включить SRS при передаче, но препятствовать тому, чтобы он был включен при отправке?

Вот еще некоторый контекст. Почтовый сервер запускает Ubuntu 12.04 LTS и использует следующее программное обеспечение:

  • Постфикс 2.9.6
  • OpenDKIM 2.6.8
  • OpenDMARC 1.3.1
  • PostSRSD (последнее ведущее устройство от GitHub)

Поскольку я понял это, существуют почтовые клиенты там, которые требуют, чтобы PTR, MX, EHLO и почтовый баннер относились к тому же домену. И потому что я использую свой VPS для больше, чем просто почтовый сервер, я принял решение установить их на имя хоста моего VPS, скажем, vps.tld.

Для включения PostSRSD, необходимо добавить следующие строки к /etc/postfix/main.cf:

sender_canonical_maps = tcp:127.0.0.1:10001
sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:127.0.0.1:10002
recipient_canonical_classes = envelope_recipient, header_recipient

Но это включило бы SRS в общем случае, не только когда передача. Кажется, что это - случай общего использования почтового сервера, таким образом, я надеюсь, что существует решение для этого.

Править:

Вот вывод postconf -n согласно просьбе:

alias_maps = hash:/etc/postfix/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
milter_default_action = accept
mydestination = vps.tld, localhost
mydomain = vps.tld
myhostname = vps.tld
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
non_smtpd_milters = $smtpd_milters
recipient_canonical_classes = envelope_recipient, header_recipient
recipient_canonical_maps = tcp:127.0.0.1:10002
recipient_delimiter = +
sender_canonical_classes = envelope_sender
sender_canonical_maps = tcp:127.0.0.1:10001
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_loglevel = 1
smtp_tls_security_level = may
smtpd_milters = inet:127.0.0.1:8891, inet:127.0.0.1:8893
virtual_alias_domains = domain1.tld domain2.tld domain3.tld
virtual_alias_maps = hash:/etc/postfix/virtual
3
задан 17 July 2015 в 19:48
2 ответа

Mano problemos sprendimas yra tas, kad PostSRSD nustatyme SRS_EXCLUDE_DOMAINS būtų visi domenai, iš kurių siunčiu laiškus. Aš jau bandžiau tai anksčiau, net prieš paskelbdamas šį klausimą, tačiau apibrėžęs šį nustatymą „PostSRSD“ nebebus paleistas, todėl tikėjausi, kad yra kitas sprendimas. Akivaizdu, kad „PostSRSD“ turi klaidą dėl šio nustatymo, nes aukščiau pateiktame komentare aiškiai teigiama, kad domenus galima atskirti naudojant tarpus: Atskirkite kelis domenus tarpu arba kableliu. Bet tai padarius nepavyks pradėti. Vietas pakeičiant kableliais tai išsprendžiama.

Palieku šį klausimą neišspręsto, nes mane labai domina kiti sprendimai.

5
ответ дан 3 December 2019 в 05:24

Вместо (или в дополнение) SRS_EXCLUDE_DOMAINS можно динамически исключать домены, если пойти этим путем:

sender_canonical_maps = mysql:/etc/postfix/no-srs.cf,tcp:127.0.0.1:10001
recipient_canonical_maps = mysql:/etc/postfix/no-srs.cf, tcp:127.0.0.1:10002

Я нашел эту очень полезную информацию с более подробными деталями и примерами здесь: https://github.com/roehling/postsrsd/issues/42#issuecomment-149690471

1
ответ дан 3 December 2019 в 05:24

Теги

Похожие вопросы