Иногда Email Security Appliance (ESA) может неверно определять IP адрес отправителя, когда письмо проходит через ретранслятор или цепочку ретрансляторов. Вместо IP адреса отправителя берётся адрес последнего ретранслятора. В результате письмо не получает верные баллы SenderBase Reputation Scores (SBRS) и отправляется в спам.
Рассмотрим простейший случай.
- Сервер с IP: 7.8.9.1 отправляет письмо.
- Письмо проходит через Firewall, попадает в ретранслятор с IP: 10.2.3.4.
- Ретранслятор пересылает письмо на ESA с IP: 10.2.3.5.
- ESA определяет IP адрес отправителя: 10.2.3.4.
Рассмотрим более сложные случаи.
Вариант A:
- Сервер с IP: 7.8.9.1 отправляет письмо.
- Письмо проходит через Firewall, попадает в ретранслятор с IP: 10.2.3.4 (Hop 2).
- Ретранслятор пересылает письмо на следующий ретранслятор с IP: 10.2.3.5 (Hop 1).
- Ретранслятор пересылает письмо на ESA с IP: 10.2.3.6.
- ESA определяет IP адрес отправителя: 10.2.3.5.
Вариант B:
- Сервер с IP: 7.8.9.1 отправляет письмо.
- Письмо попадает в балансировщик, у которого может быть несколько разных IP: 10.2.5.1-n (Hop 2).
- Балансировщик пересылает письмо на ретранслятор с IP: 10.2.6.1 (Hop 1).
- Ретранслятор пересылает письмо на ESA с IP: 10.2.3.6.
- ESA определяет IP адрес отправителя: 10.2.6.1.
о всех этих случаях ESA может определить верный IP отправителя, если ретрансляторы дописывают в заголовок IP адрес отправителя. Обычно это заголовок "Received" (может использоваться и другой заголовок), который выглядит так:
Received: from mail-pl1-f180.google.com ([209.85.214.180]) by mx1.example.com; Mon, 28 Feb 2022 19:30:10 +0000
Если ретрансляторов в цепочке несколько, то заголовков "Received" тоже несколько. Для верного определения IP адреса отправителя нужно знать, сколько ретрансляторов в цепочке, т.е. сколько хопов выполнять (Hop 1, Hop 2).
Включение Incoming Relay в ESA
Включим поддержку входящих релеев.
Network → Incoming Relays. Нажимаем Enable.
Применяем настройки. Commit Changes.
Добавление Incoming Relay в ESA
С помощью кнопки Add Relay... добавляем свои релеи. Указываем:
- Название релея.
- IP адрес релея. Это может быть IPv4, IPv6, диапазон 10.2.3.1-10 или подсеть 10.2.3.1/8.
- Заголовок релея: по умолчанию "Received" или какой-то другой.
- Количество хопов.
- Слово, после которого ESA будет искать первый IP адрес (в данном заголовке), по умолчанию "from".
В данном случае у меня только Hop 1, т.е. один релей в цепочке. Submit.
Добавляем ещё один релей.
Во втором случае у меня Hop 2, за релеем есть ещё один релей. IP адрес отправителя ищем после символа "[". Submit.
Применяем настройки. Commit Changes.
Если вы будете отслеживать сообщение через Message Tracking, то в качестве IP адреса отправителя отображается IP релея, реальный IP адрес отправителя можно найти ниже. Там же можно посмотреть SBRS.
Примечания
После релея все проверки SPF будут провалены, поскольку SPF в ESA проверяется до определения заголовков письма. Обходной путь: добавить на релее какой-нибудь заголовок, например, "Received-SPF", содержащий результат проверки SPF. А на ESA уже работать с этим заголовком в Content Filters.
Ещё может пригодиться:
ESA — разрешить IP с низким SBRS
ESA — настройка Directory Harvest Attack Prevention (DHAP)