Як надіслати електронний лист за допомогою Postfix, як я можу приховати IP-адресу та ім’я користувача відправника в заголовку Отримане?


13

Під час надсилання пошти Postfix вставляє аутентифікований IP-адресу користувача та ім'я користувача в заголовок Отримане повідомлення електронної пошти. Хоча це корисно для відстеження того, хто надіслав певний електронний лист, який був надісланий з вашого поштового сервера, він також має наслідки щодо конфіденційності. У невеликій ситуації, коли я можу довіряти всім користувачам не піддавати їхнім обліковим записам і не перетворюватися на зомбі-спаму, я б краще не транслював IP-адреси та імена облікових записів, щоб усі їх читали. Коротше кажучи, як налаштувати Postfix, щоб не надсилати це:

Отримано: від [xxxx] (pc1.example.com [xxxx]) (використовуючи TLSv1 з шифром DHE-RSA-AES256-SHA (256/256 біт)) (сертифікат клієнта не вимагається) (Автентифікований відправник: користувач) поштою. example.com (Postfix) з ESMTPSA id CC77010C148 для; Пт, 11 листопада 2011 04:55:18 +0000 (UTC)

Відповіді:


20

Стандартним рішенням є використання параметра header_checks . Це буде працювати, однак, якщо ми фільтрувати отримані лінії по всій пошті і вхідної та вихідної (як це буде робити), ми могли б потенційно втратити Received заголовків поштою послали до нас, що може бути важливо для усунення неполадок. Щоб обійти цю проблему, ми будемо застосовувати header_checksтільки до пошти , які не могли б бути спрямовані до нас поштою , який був відправлений у поданні порт (ви які з допомогою порту відправки , НЕ так чи? ).

У цій публікації пояснюється, як застосовуватись header_checksвиключно до порту подання. Що нам потрібно зробити , це пройти cleanup_service_name варіант в поданні служби , так що ми можемо створити нову послугу очищення «subcleanup.» Відповідний розділ /etc/postfix/master.cfможе виглядати приблизно так:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o cleanup_service_name=subcleanup

Тепер ми можемо передати цю header_checksопцію новій службі очищення. Ця частина /etc/postfix/master.cfможе виглядати приблизно так:

cleanup   unix  n       -       -       -       0       cleanup
subcleanup unix n       -       -       -       0       cleanup
  -o header_checks=regexp:/etc/postfix/submission_header_checks

Нарешті, нам потрібно створити файл /etc/postfix/submission_header_checks, який буде містити регулярний вираз, який фільтрує ображені рядки заголовка, що приймаються. Який регекс ви введете у файл, залежить від того, чи встановлено ви smtpd_sasl_authenticated_header.

Якщо smtpd_sasl_authenticated_headerє yes, то використовуйте:

/^Received:.*\(Authenticated sender:/ IGNORE

В іншому випадку використовуйте:

/^Received:.*\(Postfix/ IGNORE

(Дякую Домініку П та Брайану Дрюрі за те, що вони показали, як поводитися з другою справою.)


Вам потрібно дзвонити postmap submission_header_checks?
Мітар

@Mitar не має жодної підказки, але якщо ви виявите, що ви робите, сміливо відредагуйте відповідь. Це старі інструкції до 10.04, але я, мабуть, буду їх оновлювати, коли вийде 14.04.
Михайло Кропат

Здається, обійшлося без. :-)
Мітар

1
+1, дякую за дуже корисну відповідь. Це пройшло кілька років, і мені довелося зробити невеликий твіст. Я використовую Postfix 2.9.6. Я змінив регулярний вираз: /^Received:.*\(Postfix/ IGNOREоскільки я не отримав частину "Автентифікований відправник" у своїх заголовках. Чи бачите ви якісь ризики, пов'язані з моїм новим регексом?
Домінік П

1
Ця відповідь передбачає, що smtpd_sasl_authentication_header = так встановлено. Без нього тоді потрібен модифікований регекс Домініка.
Брайан Дрюрі

-1

Можна використовувати

smtpd_sasl_authenticated_header = no

в postfix/main.cfвиключити інформацію заголовка в ваших вихідних повідомлень.


чому ця відповідь набагато простіше, ніж @ Майкла? це видаляє IP-адресу з усіх заголовків, а не лише з листів, отриманих через порт подання?
knocte

2
За умовчанням @knocte smtpd_sasl_authenticated_headerвстановлено на "ні". Коли це ввімкнено, Postfix додає ім'я користувача, яке було використано для автентифікації SASL, до початкового заголовка "Отримано" - ось що додає частину "Автентифікований відправник: користувач", показану у запитанні. @ Відповідь Майкла видаляє не лише частину користувача, а й увесь заголовок "Отримано", включаючи IP-адресу клієнта.
n.st

@ n.st: Ви хочете сказати, що відповідь Маркуса не видаляє IP-адресу, а отже, це не так питання?
knocte

@knocte Рівно.
n.st

1
Мені потрібно 125+, щоб подати заявку. Я перевірив це, і він видаляє лише ім'я користувача, а не IP.
Іван
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.