Видалити / приховати ip відправника клієнта з Postfix?


16

Я намагаюся приховати IP-адресу клієнта від електронних листів, надісланих з поштового індексу.

ось приклад того, що я маю на увазі:

Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])
    (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
    (No client certificate requested)
    by mail.[removed].com (Postfix) with ESMTP id D50C7BF185DD
    for <[removed]@gmail.com>; Thu,  2 Aug 2012 16:14:21 +0900 (JST)
Date: Thu, 02 Aug 2012 07:14:08 +0000

Помітьте цей рядок (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])

Я хочу видалити цей рядок з електронної пошти.

Я спробував це зробити:

/etc/postfix/main.cf:

smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

smtp_header_checks:

/^((.*) [(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])])/    IGNORE

Але моя IP-адреса все ще знаходиться в межах отриманої частини електронного листа. Якщо я надішлю електронну пошту з smtp-сервера локально, IP-адреса стаєlocalhost.localdomain [127.0.0.1]

Як я можу видалити IP-адреси клієнта із заголовка?

Відповіді:


12

В main.cf:

smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

В dynamicmaps.cf:

# Use your real path to dict_pcre.so, below
pcre    /usr/lib/postfix/dict_pcre.so           dict_pcre_open

Ви повинні вказати це у своєму /etc/postfix/smtp_header_checks:

/^Received: .*/     IGNORE
/^X-Originating-IP:/    IGNORE

Потім бігайте

# /etc/init.d/postfix reload

Моя ip-адреса все ще відображається. Я ціную зусилля.
Кайл

Не обов’язково мати postfix-pcre. Regexp працює аналогічно.
Кайл

Добре. Я переконався, що pcre було встановлено в системі. Я змінився regexp:/etc/postfix/smtp_header_checksна pcre:/.... Потім я перезапустив постфікс і відстежував поштовий журнал на предмет будь-яких помилок. Помилки не відображалися В електронній пошті все ще відображається моя ip. XD Дякую за зусилля, Майку.
Кайл

Хм ... я отримую помилку, але я знайшов це irbs.net/internet/postfix/0404/1097.html Я тестував регекс із цим postfix.org/pcre_table.5.html за допомогою аргументу: postmap -q "Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])" pcre:/etc/postfix/smtp_header_checksі вихід був IGNOREтаким робочий. Однак це не вносить змін до електронної пошти ... Чи main.cfнеправильне поле всередині ?
Кайл

1
Лайна людина. Я просто витратив твій час. Я сама винна на самому початку. smtp_header_checksмав бути header_checks... Це працює зараз. Мені так шкода, що я витратив твій час. Я ціную ваші зусилля. Дякую. pcre також працює. Я на центосах. Ще раз дякую, брате.
Кайл

3

Відкрийте /etc/postfix/master.cf і знайдіть:

cleanup unix n - n - 0 cleanup

Додайте нижче цього рядка і станьте:

cleanup unix n - n - 0 cleanup -o header_checks=pcre:/etc/postfix/header_checks

Відредагуйте / etc / postfix / header_checks та додайте нижче коди:

/^Received:/ IGNORE

Тепер перезапустіть постфікс. Скажімо на CentOS:

service postfix restart


1
На жаль, це також зніме Receivedзаголовок на вхідній пошті.

0

Щоб видалити IP-адресу відправника із заголовка Отримані для нових надсилань пошти, використовуйте header_checksключ замість smtp_header_checksопції:

header_checks = regexp:/etc/postfix/header_checks_submission

Ця smtp_header_checksопція застосовується лише до пошти, що надсилається з Postfix на зовнішні сервери, тоді як ця header_checksопція стосується вхідної пошти, відправленої від вашого клієнта на Postfix.

Дивіться також, як Postfix отримує пошту за адресою http://www.postfix.org/OVERVIEW.html для огляду компонентів, пошта йде з smtpd -> очищення -> черги вхідних даних. smtpdПроцес отримує пошту і вводить Receivedзаголовок з IP - адресою відправника. Цей header_checks(5)параметр обробляється cleanup(8)компонентом, який захищає заголовки електронної пошти.

Він НЕ рекомендується встановлювати таку header_checksопцію глобально в вашому main.cf , як це буде змінити заголовок Received в усіх електронних листах, навіть ті , отримані від зовнішніх серверів. Натомість ви повинні налаштувати свого клієнта для надсилання електронної пошти через спеціалізовану службу подання на порт 587 та настроїти Postfix для перезапису заголовків лише для цих автентифікованих подань.

В /etc/postfix/master.cf, додайте наступні -oрядки після submissionрядка:

submission inet n       -       y       -       -       smtpd
  # Require SASL authentication
  -o smtpd_sasl_auth_enable=yes
  # Require TLS transport security, do not leak your credentials in plaintext.
  -o smtpd_tls_security_level=encrypt`
  # Disallow unauthenticated users from sending mail through this port.
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  # Use a different cleanup service (see below)
  -o cleanup_service_name=ascleanup

Час для настройки очищення сервіс для через uthenticated s ubmissions. Я вибираю ім'я, ascleanupщоб воно було коротким і вирівняним, але будь-яке ім'я працює. Для цього дублюйте рядок служби очищення в одному master.cfфайлі, але перейменуйте перше поле та додайте нову опцію для вибору файлу фільтра:

cleanup   unix  n       -       y       -       0       cleanup
ascleanup unix  n       -       y       -       0       cleanup
  -o header_checks=pcre:/etc/postfix/header_checks_submission

(Використання pcreтаблиці вимагає встановлення postfix-pcreна Debian, що автоматично подбає про оновлення файлу dinamimaps.cf. Подальші зміни для цього не потрібні.)

Останній фрагмент - фактична конфігурація фільтра в /etc/postfix/header_checks_submission. Ви потенційно можете використовувати щось на кшталт:

/^Received: .*/ IGNORE

який видалить повний отриманий рядок заголовка, але замість цього ви можете просто скинути from helo.host (reverse.host.name [192.0.2.1])частину, зберігаючи іншу інформацію:

/^Received: from [^ ]+ \([^ ]+ \[[IPv0-9a-f:.]+\]\)\s+(.* \(Postfix\) with .+)$/ REPLACE Received: $1

Якщо ви змінили mail_nameпараметр, змініть Postfixслово відповідно до вашої конфігурації. (Ця модель є точною на основі вихідного коду Postfix, smtpd / smtpd.c .)

Я перевірив це за допомогою Postfix 3.4.7-0 + deb10u1 на Debian buster. Ще один чудовий опис з таким же підходом див. У розділі Під час надсилання електронної пошти за допомогою Postfix, як я можу приховати IP-адресу та ім’я користувача відправника у заголовку отриманих?

З вищезазначеною модифікацією перетворюється на наступне Received: by ...:

Received: from debian (unknown [IPv6:fe80::b036:2ff:fe6e:73f4])
        by mail.example.nl (Postfix) with ESMTPSA id 1571B910B
        for <some@example.com>; Sun, 12 Jan 2020 02:23:15 +0000 (UTC)

-1

використовуй це:

/^Received: from .*127.0.0.1**/ IGNORE

використовувати тільки одинарний *в обох кінцях


Або більше подобається? / ^ Отримано: від. * 127 \ .0 \ .0 \ .1. * / IGNORE
Jack B.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.