Заголовок почты для нескольких доменов не персонализирован

У меня есть выделенный сервер (Ubuntu 14.04) с Postfix / Dovecot на IP 1.1.1.1

Я размещаю 4 домена: 2 на IP 1.1 .1.1, 1 на IP 1.1.1.2 и 1 на IP 1.1.1.3. Каждый из этих доменов получил запись DNS (A domain.com/mail.domain.com, запись MX, SPF и т. Д.), Указывающую на их собственный IP-адрес. .

Проблема в том, что всякий раз, когда я отправляю электронное письмо и проверяю его заголовок, я вижу:

> X-Spam-Last-External-IP: 1.1.1.1
> X-Spam-Last-External-HELO: server.hostname.com 
> X-Spam-Last-External-rDNS: Default Domain on 1.1.1.1
> Received: from server.hostname.com (Default Domain [1.1.1.1])
etc..

Разве невозможно каждый раз отображать информацию, связанную с доменом, вместо информации о сервере? Например, 1.1.1.2 IP и mail.domain2 . com имя хоста и т. д.?

0
задан 4 January 2017 в 03:50
2 ответа

Я не думаю, что возможно один постфиксный процесс прослушивания всех адресов, но для заголовков HELO используйте несколько имен хостов, потому что протокол SMTP не поддерживает никакой способ для клиента указать имя хоста.

Рассмотрим на мгновение виртуальный хостинг HTTP как похожий sceneairo, возможно, тот, о котором вы подумали. Клиент разрешает имя хоста, затем делает HTTP запрос , указывая имя хоста в заголовке Host . Именно этот заголовок делает возможным виртуальный хостинг.

Теперь рассмотрим HTTPS. До относительно недавнего времени не было возможности разместить несколько виртуальных хостов HTTPS на сервере, потому что заголовок Host был частью зашифрованной полезной нагрузки, и поэтому сеанс TLS должен был быть установлен до того, как будет отправлен заголовок хоста. Но поскольку сертификат, предоставляемый сервером, зависел от используемого имени Host, это означало, что IP адрес должен был быть выделен для каждого отдельного имени сервера HTTPS (или, точнее, для каждого общего имени сертификата https). Wildcards могли совпадать с кратными именами).

Относительно недавно SNI расширение было добавлено к HTTPS, чтобы решить эту проблему, поэтому теперь заголовок Host доступен для сервера до установления сеанса TLS.

OK, давайте вернемся к SMTP. SMTP клиент не указывает конкретное имя сервера при подключении. Сервер на самом деле идентифицирует себя до того, как хост спросит что-нибудь!

$ telnet  gmail-smtp-in.l.google.com. 25
Trying 74.125.29.27...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP 11si20717228qkl.61 - gsmtp

Есть, однако, кое-что, что вы можете сделать в вашей ситуации, но это довольно неудобно. Вы можете запустить несколько постфикс-серверов, каждый из которых будет прослушивать выделенный IP, и каждый из них будет настроен на ответ с соответствующим именем. На мой взгляд, это единственный способ достичь того, чего вы хотите, и аналогично запуску https-серверов на выделенных IP-адресах в дни, предшествующие SNI. Надеюсь, это поможет.

3
ответ дан 4 December 2019 в 11:26

Для этого вам понадобится настройка Postfix с использованием "нескольких экземпляров". Каждый экземпляр будет привязан к определённому IP (и только к этому IP), как для входящей, так и для исходящей почты.

http://www.postfix.org/MULTI_INSTANCE_README.html

Теоретически, в master.cf можно было бы определить выделенные "smtp" переносы (каждый из которых привязан к одному IP) - но не было бы простого способа сказать Postfix, какой IP использовать для исходящей почты.

.
2
ответ дан 4 December 2019 в 11:26

Теги

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