При отправке электронной почты с Postfix, как я могу скрыть IP-адрес отправителя и имя пользователя в заголовке Received?


13

При отправке почты Postfix вставляет IP-адрес и имя пользователя , прошедшего проверку подлинности, в заголовок Received электронного письма. Хотя это полезно для отслеживания того, кто отправил конкретное электронное письмо, отправленное с вашего почтового сервера, оно также имеет последствия для конфиденциальности. В небольшой ситуации, когда я могу доверять всем пользователям, чтобы их учетные записи не были скомпрометированы и превращены в спам-зомби, я бы предпочел не транслировать IP-адреса и имена учетных записей, чтобы все могли их прочитать. Короче, как мне настроить Postfix, чтобы не отправлять это:

Получено: от [xxxx] (pc1.example.com [xxxx]) (с использованием TLSv1 с шифром DHE-RSA-AES256-SHA (256/256 бит)) (сертификат клиента не запрошен) (аутентифицированный отправитель: пользователь) по почте. example.com (Postfix) с идентификатором ESMTPSA 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, который будет содержать регулярное выражение, отфильтровывающее нарушающие строки заголовка Received. Какое регулярное выражение вы поместите в файл, зависит от того, smtpd_sasl_authenticated_headerустановлен ли он .

Если smtpd_sasl_authenticated_headerесть yes, то используйте:

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

В противном случае используйте:

/^Received:.*\(Postfix/ IGNORE

(Спасибо Dominic P и Bryan Drewery за то, что показали, как обращаться со вторым делом.)


Вам нужно позвонить postmap submission_header_checks?
— Митар

@Mitar не имеет ни малейшего понятия, но если вы узнаете, что вы делаете, не стесняйтесь редактировать ответ. Это старые инструкции для 10.04, но я, вероятно, обновлю их, когда выйдет 14.04.
— Майкл Кропат

Кажется, он работал без. :-)
— Mitar

1
+1, спасибо за очень полезный ответ. Прошло несколько лет, и мне пришлось немного подправить. Я использую Postfix 2.9.6. Я изменил регулярное выражение на: /^Received:.*\(Postfix/ IGNOREпотому что у меня не было части "Authenticated sender" в моих заголовках. Видите ли вы какие-либо риски, связанные с моим новым регулярным выражением?
— Доминик П

1
Этот ответ предполагает, что установлен smtpd_sasl_authenticated_header = yes. Без этого тогда потребуется модифицированное регулярное выражение Доминика.
— Брайан Дрюри

-1

Вы можете использовать

smtpd_sasl_authenticated_header = no

в postfix/main.cfцелях устранения заголовка информации в ваших исходящих письмах.


почему этот ответ намного проще, чем @ Michael's? это удаляет IP из всех заголовков, а не только из писем, полученных через порт отправки?
— knocte

2
@knocte smtpd_sasl_authenticated_headerпо умолчанию имеет значение «нет». Когда он включен, Postfix добавляет имя пользователя, которое использовалось для аутентификации SASL, к начальному заголовку «Received» - вот что добавляет часть «Authenticated sender: user», показанную в вопросе. @ Ответ Михаила удаляет не только пользовательскую часть, но и весь заголовок «Получено», включая IP-адрес клиента.
— n.st

@ n.st: вы говорите, что ответ Маркуса не удаляет IP и, следовательно, не так ли это вопрос?
— knocte

@ knocte Точно.
— 2016 г.

1
Мне нужно 125+, чтобы понизить голос. Я проверил его, и он удаляет только имя пользователя, а не IP.
— Джон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.