Существует такая проблема (а может и не проблема для вас), что в заголовках писем от вашего 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:
Для удаления IP воспользуемся правилом транспорта, где укажем удаление данного заголовка:
А вот с «Message-ID», который хранит имя нашего сервера, все не так просто. Аналогичное правило удаления заголовка «Message-ID» попросту не работает. Оставим это на совести разработчиков. Забавно, что при этом, правило изменения значения заголовка работает замечательно. Можно подставить любое значение, но я решил его просто обнулить — подставим значение $null.
Ну вот и все: теперь вся исходящая почта с Exchange не содержит никакой информации об имени сервера и его реального адреса.
Буду рад дополнениям и вопросам.
Спасибо, то, что надо
не работает…..