Вопрос или проблема
У меня есть Exim4, работающий на Debian, который я использую для транзакционных писем с моих других серверов, защищенных CloudFlare. Каждое транзакционное письмо, отправленное с него, имеет IP-адрес отправителя (1.2.3.4) и имя пользователя SMTP ([email protected]) в заголовках писем, и я хотел бы скрыть или заменить их:
Received: from CF-protected-domain.com ([1.2.3.4])
by mailserver.com with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
(envelope-from <[email protected]>) id 1kL3QG-0000Ew-9p for [email protected];
Wed, 23 Sep 2020 14:58:56 +0300
Date: Wed, 23 Sep 2020 07:58:54 -0400
From: "#Название сайта" <[email protected]>
Есть ли возможность удалить или заменить IP-адрес (1.2.3.4) на IP-адрес почтового сервера (например, 7.8.9.0)? И заменить envelope-from на адрес электронной почты в “From: ” ([email protected])? Вот так:
Received: from CF-protected-domain.com ([7.8.9.0])
by mailserver.com with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
(envelope-from <[email protected]>) id 1kL3QG-0000Ew-9p for [email protected];
Wed, 23 Sep 2020 14:58:56 +0300
Date: Wed, 23 Sep 2020 07:58:54 -0400
From: "#Название сайта" <[email protected]>
Мне удалось удалить заголовок Received
, добавив следующее в /etc/exim4/exim4.conf.localmacros
:
REMOTE_SMTP_TRANSPORTS_HEADERS_REMOVE = Received
С этой настройкой Exim4 больше не утечет мой IP-адрес получателям.
Удалите IP-адрес из заголовков почты Exim на Ubuntu:
sudo nano /etc/exim4/exim4.conf.template
Добавьте headers_remove = Received
под remote_smtp:
следующим образом:
# Начало конфигурации трансортов
begin transports
# Удаленный SMTP-отправитель, использующий IP из EXIM_DOMAINIPS по доменам
remote_smtp:
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = dkim
dkim_private_key = DKIM_PRIVATE_KEY
interface = <;${lookup{$sender_address_domain}lsearch{EXIM_DOMAINIPS}}
headers_remove = Received
sudo update-exim4.conf
sudo systemctl restart exim4
Ответ или решение
Удаление IP-адреса и имени пользователя из заголовков электронной почты Exim4 — это важный аспект настройки конфиденциальности, особенно если вы используете Exim4 для отправки транзакционных сообщений. Ниже приведены шаги, которые помогут вам скрыть или заменить IP-адрес и имя пользователя в заголовках.
1. Удаление IP-адреса из заголовков
Чтобы убрать IP-адрес отправителя из заголовков, вы можете изменить конфигурацию Exim4. Выполните следующие шаги:
-
Откройте файл конфигурации Exim4 для редактирования:
sudo nano /etc/exim4/exim4.conf.localmacros
-
Добавьте следующую строку в этот файл, чтобы удалить заголовок
Received
:REMOTE_SMTP_TRANSPORTS_HEADERS_REMOVE = Received
-
Для уверенности, что это изменение будет успешным, вы также можете добавить настройку в
exim4.conf.template
. Откройте файл конфигурации:sudo nano /etc/exim4/exim4.conf.template
-
Найдите секцию
remote_smtp:
и добавьте строкуheaders_remove = Received
, как показано ниже:# Start transports configuration begin transports # Remote SMTP sender using IP from EXIM_DOMAINIPS per domain remote_smtp: driver = smtp dkim_domain = DKIM_DOMAIN dkim_selector = dkim dkim_private_key = DKIM_PRIVATE_KEY interface = <${lookup{$sender_address_domain}lsearch{EXIM_DOMAINIPS}} headers_remove = Received
-
Сохраните изменения и выйдите из редактора.
-
Обновите конфигурацию Exim4:
sudo update-exim4.conf
-
Перезагрузите Exim4, чтобы изменения вступили в силу:
sudo systemctl restart exim4
2. Замена имени пользователя в заголовках
Чтобы заменить envelope-from
с использованием адреса в заголовке From
, вам нужно изменить настройки rewritting заголовков. Для этого выполните следующие шаги:
-
В том же файле конфигурации (
/etc/exim4/exim4.conf.localmacros
), добавьте следующую настройку:no_more_headers = envelope-from
-
Затем вам необходимо отредактировать секцию
routers
и добавить правило, которое будет изменятьenvelope-from
наFrom
. В тот же файл конфигурации (exim4.conf.template
), найдите секциюrouters:
и добавьте новое правило:# Ваша секция routers может выглядеть так begin routers # Измените envelope-from на From local_user: driver = accept no_more_headers = envelope-from = ${if exists{${lookup{$local_part}lsearch{exim4_user_db}}}{${if match{${local_part}}{^.*@.*}{ ${extract{1}{${lookup{$local_part}lsearch{exim4_user_db}}}}@${lookup{$local_part}lsearch{exim4_user_db}}} }
-
Сохраните и закройте файл.
-
Как и в предыдущем разделе, не забудьте обновить конфигурацию и перезагрузить Exim4:
sudo update-exim4.conf sudo systemctl restart exim4
Примечание
Возможны различные вариации конфигурации в зависимости от конкретных требований вашей системы. Убедитесь, что вы тщательно тестируете изменения на test-системе, прежде чем применять их в продакшн-среде. Удаление заголовков может повлиять на доставляемость писем и диагностику проблем, поэтому убедитесь в том, что это решение подходит для ваших нужд.