Как можно научить Postfix скрывать IP-адреса авторизованных пользователей?
Иными словами, чтобы вместо подобного:Received: from localhost (dyn.pool.example.net [172.31.64.88]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by mx.example.com (Postfix) with ESMTPSA id A2019508951 for <user@example.net>; Wed, 23 Jun 2010 17:34:29 +0900 (JST)Стало так:
Received: by mx.example.com (Postfix) with ESMTPSA id A2019508951 for <user@example.net>; Wed, 23 Jun 2010 17:34:29 +0900 (JST)
Адреса у меня в логах и так есть, а посторонним знать откуда ходят мои пользователи совершенно нет нужды.
Update: Как оказалось, очень просто.
- Нужно включить эту директиву чтобы Postfix добавлял нужный нам заголовок:
smtpd_sasl_authenticated_header = yes
- Включить smtp_header_checks, если они ещё не включены, которые работают только для исходящих писем:
smtp_header_checks = pcre:/etc/postfix/header_checks
- Добавить в /etc/postfix/header_checks две строки:
/^Received: from .*?([[:space:]]+\(Authenticated sender: [^)]+\).*by.*)/ REPLACE Received: from [127.0.0.1] (localhost [127.0.0.1])${1} - Правило легко доработать чтобы скрывалась и строка "Authenticated sender". Например, так:
/^Received: from .*?\(Authenticated sender: [^)]+\)[[:space:]]+(by.*)/ REPLACE Received: ${1}
postmap -h -q - pcre:/etc/postfix/header_checks < test_message
2010-06-24 12:28 am (UTC)
2010-06-24 12:29 am (UTC)
2010-06-24 12:38 am (UTC)
2011-04-20 07:02 am (UTC)
2012-03-23 02:10 am (UTC)
2012-03-26 01:13 pm (UTC)