Як надіслати електронний лист за допомогою 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.