При отправке электронной почты с 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целях устранения заголовка информации в ваших исходящих письмах.

Markus
источник
почему этот ответ намного проще, чем @ 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.
Джон