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

Автор: | 19.09.2016

Существует такая проблема (а может и не проблема для вас), что в заголовках писем от вашего 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 есть технология, называемая «брандмауэр заголовков», подробнее о которой можно почитать Microsoft Многие просто гуглят и находят решение в замечательной статье здесь, или на технете. Думаю, это решение к 2013/2016 версиям тоже подходит. Однако к моему Exchange 2013 эта статья не применима, так как этот элемент управления у меня «отсутствует».

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

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

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

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

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

Буду рад дополнениям и вопросам.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *