Pull to refresh

Удаляем заголовки локального сервера Exchange 2013

imageСуществует такая проблема (а может и не проблема для вас), что в заголовках писем от вашего Exchange сервера вы видите два поля «Received:» с разными значениями.

1) «Received: from »внешнее_DNS_имя_сервера" (внешний_IP_адрес_сервера)"
2) «Received: from »внутреннее_DNS_имя_сервера" (внутренний_IP_адрес_сервера)"

В подавляющем большинстве случаев, сервера Exchange имеют имя, похожее на «mail.my-company-name.local», серый IP и находятся за NAT. Для получателя вне организации эта информация совершенно ни к чему, однако в каждом письме (при настройках по умолчанию) мы упорно эту информацию отправляем с каждым сообщением.

Приведу пример реальных заголовков:

Received: from maingate.company_name.ru (maingate.company_name.ru [195.19.32.хх]) by mxfront25.mail.yandex.net (nwsmtp/Yandex) with ESMTP id xN3K9ZVW-xN3ST31H;

Received: from e-mail.company_name.loc (192.168.4.45) by ex10.company_name.loc (192.168.4.88) with Microsoft SMTP Server id 14.1.355.2;

Received: from APZ002 ([192.168.5.43]) by e-mail.company_name.loc with Microsoft SMTPSVC(6.0.3790.3959)

Из заголовков понятно, что у отправителя установлен Exchange Server 2010 SP1 с Update Rollup 6, клиент отправивший письмо — APZ002 с адресом 192.168.5.43. Судя по наличию двух IP адресов внутренних серверов, можно предположить, что они используют DAG, т.к. смысла во внутреннем релее нет.

Эту ситуацию нужно исправить.

Для решения этих задач у Microsoft есть технология, называемая «брандмауэр заголовков», подробнее о которой можно почитать На сайте компании. Многие просто гуглят и находят решение в  замечательной статье здесь, или на технете. Думаю, это решение к 2013/2016 версиям тоже подходит. Однако к моему Exchange 2013 эта статья не применима, так как этот элемент управления у меня «отсутствует».

PS-exchange-ms-Exch-Send-Headers-Routing

Тут на помощь приходит старый ADSI. Находим в конфигурации коннектор отправки, в свойствах выбираем «NT AUTHORITY\Anonymous Logon» — в данном примере «Анонимный вход» — и убираем все права на чтение заголовков отправки.

adsi-exchange-send-connector

После этого из заголовков писем пропадает значение «Received: from» с локальным именем и IP сервера. Но при этом остается значение «Message-ID», где после @ указано локальное имя сервера. Вот, например, заголовок письма от компании Microsoft: «Message-ID: <ebde38b5-6e95-4516-b108-76f2f2e99843@xtinmta1135.xt.local>» — прекрасно видно, что имя формирующего сервера «xtinmta1135.xt.local». Также остается значение IP клиента — x-originating-ip — что тоже не очень приятно.

Для удаления IP воспользуемся правилом транспорта, где укажем удаление данного заголовка:

message-ip-remover

А вот с «Message-ID», который хранит имя нашего сервера, все не так просто. Аналогичное правило удаления заголовка «Message-ID» попросту не работает. Оставим это на совести разработчиков. Забавно, что при этом, правило изменения значения заголовка работает замечательно. Можно подставить любое значение, но я решил его просто обнулить — подставим значение $null.

message-id-remover

Ну вот и все: теперь вся исходящая почта с Exchange не содержит никакой информации об имени сервера и его реального адреса.

Буду рад дополнениям и вопросам.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.