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

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

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

8
задан 11 November 2011 в 11:42

2 ответа

Стандартное решение - использовать параметр header_checks. Однако это будет работать, если мы будем фильтровать полученные строки по всей почте как входящие, так и исходящие (как это будет делать), мы могли бы потерять полученные заголовки по почте, отправленной нам, что может быть важно для устранения неполадок. Чтобы обойти эту проблему, мы применим header_checks только к почте, которая не могла быть отправлена ​​нам-почте, отправленной в порт представления (вы используете порт представления, не так ли?).

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 - yes, то используйте:

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

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

/^Received:.*\(Postfix/ IGNORE

(Спасибо Dominic P и Bryan Drewery за то, что вы показали, как обрабатывать второй случай.)

15
ответ дан 25 May 2018 в 16:59
  • 1
    Вам нужно позвонить postmap submission_header_checks? – Mitar 25 March 2014 в 05:29
  • 2
    @Mitar нет подсказки, но если вы узнаете, что вы делаете, не стесняйтесь редактировать ответ. Это старые инструкции для 10.04, но я, вероятно, буду их обновлять, когда выйдет 14.04. – Michael Kropat 25 March 2014 в 06:53
  • 3
    Кажется, это сработало без. :-) – Mitar 25 March 2014 в 10:16
  • 4
    +1, спасибо за очень полезный ответ. Это было несколько лет спустя, и мне пришлось сделать небольшую настройку. Я запускаю Postfix 2.9.6. Я изменил регулярное выражение на: /^Received:.*\(Postfix/ IGNORE, потому что я не получал " Аутентифицированный отправитель " в моих заголовках. Вы видите какие-либо риски, связанные с моим новым регулярным выражением? – Dominic P 24 April 2014 в 02:07
  • 5
    Этот ответ предполагает, что установлено smtpd_sasl_authenticated_header = yes. Без него требуется модифицированное регулярное выражение Доминика. – Bryan Drewery 29 May 2015 в 19:05

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

smtpd_sasl_authenticated_header = no

в postfix/main.cf, чтобы исключить информацию заголовка в исходящих письмах.

0
ответ дан 25 May 2018 в 16:59
  • 1
    почему этот ответ намного проще, чем @ Майкл? это удаляет IP из всех заголовков, а не только из писем, полученных через порт представления? – knocte 19 March 2016 в 14:49
  • 2
    @knocte smtpd_sasl_authenticated_header установлен в положение "no" по умолчанию в любом случае. Когда он включен, Postfix добавляет имя пользователя, которое использовалось для аутентификации SASL, в исходный " Received " заголовок - вот что добавляет «Прошедший проверку отправитель: пользователь». часть, показанная в вопросе. @ Ответ Майкла удаляет не только пользовательскую часть, но и весь «Полученный» заголовок, включая IP-адрес клиента. – n.st 30 March 2016 в 01:09
  • 3
    @ n.st: вы говорите, что ответ Маркуса не удаляет IP, и, следовательно, это не S.O. вопрос? – knocte 30 March 2016 в 14:29
  • 4
    @knocte Точно. – n.st 30 March 2016 в 14:37
  • 5
    хорошо, и почему бы нам тогда не опустить его? – knocte 30 March 2016 в 18:43

Другие вопросы по тегам:

Похожие вопросы: