Щоб видалити IP-адресу відправника із заголовка Отримані для нових надсилань пошти, використовуйте header_checks
ключ замість smtp_header_checks
опції:
header_checks = regexp:/etc/postfix/header_checks_submission
Ця smtp_header_checks
опція застосовується лише до пошти, що надсилається з Postfix на зовнішні сервери, тоді як ця header_checks
опція стосується вхідної пошти, відправленої від вашого клієнта на Postfix.
Дивіться також, як Postfix отримує пошту за адресою http://www.postfix.org/OVERVIEW.html для огляду компонентів, пошта йде з smtpd -> очищення -> черги вхідних даних. smtpd
Процес отримує пошту і вводить Received
заголовок з IP - адресою відправника. Цей header_checks(5)
параметр обробляється cleanup(8)
компонентом, який захищає заголовки електронної пошти.
Він НЕ рекомендується встановлювати таку header_checks
опцію глобально в вашому main.cf , як це буде змінити заголовок Received в усіх електронних листах, навіть ті , отримані від зовнішніх серверів. Натомість ви повинні налаштувати свого клієнта для надсилання електронної пошти через спеціалізовану службу подання на порт 587 та настроїти Postfix для перезапису заголовків лише для цих автентифікованих подань.
В /etc/postfix/master.cf
, додайте наступні -o
рядки після submission
рядка:
submission inet n - y - - smtpd
# Require SASL authentication
-o smtpd_sasl_auth_enable=yes
# Require TLS transport security, do not leak your credentials in plaintext.
-o smtpd_tls_security_level=encrypt`
# Disallow unauthenticated users from sending mail through this port.
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# Use a different cleanup service (see below)
-o cleanup_service_name=ascleanup
Час для настройки очищення сервіс для через uthenticated s ubmissions. Я вибираю ім'я, ascleanup
щоб воно було коротким і вирівняним, але будь-яке ім'я працює. Для цього дублюйте рядок служби очищення в одному master.cf
файлі, але перейменуйте перше поле та додайте нову опцію для вибору файлу фільтра:
cleanup unix n - y - 0 cleanup
ascleanup unix n - y - 0 cleanup
-o header_checks=pcre:/etc/postfix/header_checks_submission
(Використання pcre
таблиці вимагає встановлення postfix-pcre
на Debian, що автоматично подбає про оновлення файлу dinamimaps.cf. Подальші зміни для цього не потрібні.)
Останній фрагмент - фактична конфігурація фільтра в /etc/postfix/header_checks_submission
. Ви потенційно можете використовувати щось на кшталт:
/^Received: .*/ IGNORE
який видалить повний отриманий рядок заголовка, але замість цього ви можете просто скинути from helo.host (reverse.host.name [192.0.2.1])
частину, зберігаючи іншу інформацію:
/^Received: from [^ ]+ \([^ ]+ \[[IPv0-9a-f:.]+\]\)\s+(.* \(Postfix\) with .+)$/ REPLACE Received: $1
Якщо ви змінили mail_name
параметр, змініть Postfix
слово відповідно до вашої конфігурації. (Ця модель є точною на основі вихідного коду Postfix, smtpd / smtpd.c .)
Я перевірив це за допомогою Postfix 3.4.7-0 + deb10u1 на Debian buster. Ще один чудовий опис з таким же підходом див. У розділі Під час надсилання електронної пошти за допомогою Postfix, як я можу приховати IP-адресу та ім’я користувача відправника у заголовку отриманих?
З вищезазначеною модифікацією перетворюється на наступне Received: by ...
:
Received: from debian (unknown [IPv6:fe80::b036:2ff:fe6e:73f4])
by mail.example.nl (Postfix) with ESMTPSA id 1571B910B
for <some@example.com>; Sun, 12 Jan 2020 02:23:15 +0000 (UTC)