Щоб видалити 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)