exim4
— отличный почтовый сервер для исходящей почты. По умолчанию он сохраняет заголовки полностью и добавляет ещё свои. В большинстве случаев эти заголвки делают письмо излишне информативным для получателя и этого желательно избежать.
Первое, что стоит сделать в типовой конфигурации сервера — скрыть внутреннюю структуру сети в отправляемых сообщениях, поскольку exim оставляет в заголовках оригинального отправителя. В типичном случае получатель увидит примерно следующее:
Received: from srv12 ([10.0.0.12]) by mymail.example.com with esmtp (Exim 4.84) (envelope-from) id 1cPEo3-0003N7-Jj for user@example.com; Thu, 05 Jan 2013 20:38:39 +0000
или следующее
x-originating-ip: [10.54.14.36]
Как видим, почтовый сервер раскрывает адрес отправителя. Этим отправителем может быть сервер во внутренней сети или обычный пользователь с почтовым клиентом. В любом случае эта информация излишняя для получателя: адрес и имя самого почтового сервера в заголовках вполне достаточно. Почистить историю до почтовика можно срезав заголовки Received на этапе получаения почтовиком письма.
Если письмо генерируется автоматически, некоторые интерпретаторы по умолчанию добавляют информацию о себе и о запускаемом скрипте. В частности, этим отличается PHP:
X-PHP-Originating-Script: 0:myscript.php
Поэтому, также вырезаем заголовок X-PHP-Originating-Script
.
Если же почтовый сервер обслуживает офис, то из заголовков можно узнать используемый почтовый клиент. Например,
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
или
X-Mailer: Microsoft Outlook 14.0
Обычно, эта информация вполне безопасна. Информацию о клиенте оставляют многие публичные почтовые сервисы. Однако, её тоже не всегда имеет смысл раскрывать. Особенно, если это веб-клиент или внутренняя CRM. Таким образом, можно ещё срезать заголовок User-Agent
.
Существуют ещё много вариантов, в которых желательно отсечь излишне информативные заголовки. Замечательно, что в exim
это сделать очень просто. Для этого необходимо в начале основной конфигурации сервера включить использоваие фильтра и указать файл конфигурации к нему
system_filter = /etc/exim4/filter
А в самом /etc/exim4/filter
прописать вырезаемые заголовки. Например:
headers remove X-PHP-Originating-Script headers remove Received
После этой доработки, количество заголовков заметно уменьшается и излишняя информация не раскрывается. Естественно, это происходит с сохранением DKIM-подписи (подписывает сервер), поскольку заголовки вырезаются до её формирования.
Заголовок Received: чаще всего единственный возможной способ понять как шло письмо в случае проблем с доставкой. Например письмо дошло спустя несколько часов или дней. Только по Received: можно понять, где оно застревало и насколько. Поэтому данный заголовок убирать нельзя!
Да, это так. Однако, путь письма внутри локальной сети знать человеку со стороны не нужно, вполне хватит адреса отсылающего гейта, который и остается в первом Received.