При отправке почты 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)
blockquote>
Вы можете использовать
smtpd_sasl_authenticated_header = no
в postfix/main.cf
для удаления информации заголовка в вашей исходящей почте.
Стандартным решением является использование опции 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
(Спасибо Доминику П и Брайану Дрюри за то, что показали, как обращаться с второй случай.)