Usunąć / ukryć adres IP nadawcy klienta z Postfix?

16

Próbuję ukryć adres IP klienta przed wiadomościami e-mail wysłanymi z Postfix.

oto przykład tego, co mam na myśli:

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

Zwróć uwagę na tę linię (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])

Chcę usunąć tę linię z wiadomości e-mail.

Próbowałem to zrobić:

/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

Ale mój adres IP nadal znajduje się w otrzymanej części wiadomości e-mail. Jeśli lokalnie wyślę wiadomość e-mail z serwera smtp, adres IP stanie sięlocalhost.localdomain [127.0.0.1]

Jak mogę usunąć adresy IP klientów z nagłówka?

Kyle
źródło

Odpowiedzi:

12

W main.cf:

smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

W dynamicmaps.cf:

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

Powinieneś umieścić to w /etc/postfix/smtp_header_checks:

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

Następnie uruchomić

# /etc/init.d/postfix reload
Mike Pennington
źródło
Mój adres IP jest nadal wyświetlany. Doceniam wysiłki.
Kyle
Postfix-pcre nie jest konieczny. Regexp działa w ten sam sposób.
Kyle
W porządku. Upewniłem się, że PCre został zainstalowany w systemie. Zmieniłem się regexp:/etc/postfix/smtp_header_checksna pcre:/.... Następnie zrestartowałem Postfix i monitorowałem Maillog pod kątem błędów. Brak błędów. E-mail nadal wyświetla mój adres IP. XD Dzięki za wysiłki, Mike.
Kyle
Hmm ... dostaję błąd, ale znalazłem ten irbs.net/internet/postfix/0404/1097.html Przetestowałem wyrażenie regularne z tym postfix.org/pcre_table.5.html za pomocą argumentu: 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_checksa wynik był IGNOREtaki, że jest pracujący. Jednak nie wprowadza zmian w wiadomości e-mail ... Czy pole wewnątrz jest main.cfnieprawidłowe?
Kyle
1
Cholera. Właśnie zmarnowałem twój czas. To moja wina na samym początku. smtp_header_checksmiał być header_checks... To działa teraz. Przepraszam, że zmarnowałem twój czas. Doceniam twoje wysiłki. Dziękuję Ci. pcre też działa. Jestem na centos. Jeszcze raz dziękuję, stary.
Kyle
3

Otwórz /etc/postfix/master.cf i znajdź:

cleanup unix n - n - 0 cleanup

Dodaj poniżej tych linii i stań się:

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

Edytuj / etc / postfix / header_checks i dodaj poniższe kody:

/^Received:/ IGNORE

Teraz uruchom ponownie postfiks. Powiedzmy na CentOS:

service postfix restart

igtztorrero
źródło
1
Niestety spowoduje to również usunięcie Receivednagłówka z przychodzącej poczty.
0

Aby usunąć adres IP nadawcy z nagłówka Odebrane w celu przesłania nowej wiadomości, użyj header_checksklucza zamiast smtp_header_checksopcji:

header_checks = regexp:/etc/postfix/header_checks_submission

smtp_header_checksOpcja ma zastosowanie tylko do poczty, która jest wysyłana z Postfix do zewnętrznych serwerów natomiast header_checksopcja dotyczy przychodzącej poczty wysyłanej z klientem, aby Postfix.

Zobacz także, w jaki sposób Postfix odbiera pocztę na stronie http://www.postfix.org/OVERVIEW.html, aby uzyskać przegląd składników, poczta jest wysyłana z smtpd -> czyszczenie -> kolejka przychodząca. smtpdProces odbiera pocztę i wstrzykuje Receivednagłówek z adresem IP nadawcy. header_checks(5)Opcja jest przetwarzane przez cleanup(8)komponent, który dezynfekuje nagłówków e-mail.

To jest nie zaleca się ustawić taką header_checksopcję globalnie w main.cf jak byłoby to zmodyfikować nagłówek Received wszystkie e-maile, nawet te otrzymane z serwerów zewnętrznych. Zamiast tego należy skonfigurować klienta do wysyłania wiadomości e-mail za pośrednictwem dedykowanej usługi przesyłania na porcie 587 i skonfigurować Postfix, aby przepisał nagłówki tylko dla tych uwierzytelnionych przesyłek.

W /etc/postfix/master.cfdodaj następujące -owiersze po submissionwierszu:

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

Czas, aby skonfigurować oczyszczania usługi dla ciągu uthenticated s ubmissions. Wybieram nazwę, ascleanupaby była krótka i wyrównana, ale każda nazwa działa. Aby to zrobić, zduplikuj wiersz usługi czyszczenia w tym samym master.cfpliku, ale zmień nazwę pierwszego pola i dodaj nową opcję, aby wybrać plik filtru:

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

(Korzystanie z pcretabeli wymaga instalacji postfix-pcrena Debianie, który automatycznie zajmie się aktualizacją pliku dynamicmaps.cf. W tym celu nie są potrzebne dalsze zmiany).

Ostatnim elementem jest rzeczywista konfiguracja filtra w /etc/postfix/header_checks_submission. Możesz potencjalnie użyć czegoś takiego:

/^Received: .*/ IGNORE

co spowoduje usunięcie pełnej linii nagłówka Received, ale zamiast tego możesz po prostu upuścić from helo.host (reverse.host.name [192.0.2.1])część zachowując inne informacje:

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

Jeśli zmieniłeś mail_nameopcję, zmień Postfixsłowo tak, aby pasowało do konfiguracji. (Ten wzorzec jest dokładny w oparciu o kod źródłowy Postfix, smtpd / smtpd.c .)

Testowałem to z postfiksem 3.4.7-0 + deb10u1 na buster Debiana. Aby uzyskać kolejny świetny opis z tym samym podejściem, zobacz Wysyłając wiadomość e-mail za pomocą Postfix, w jaki sposób mogę ukryć adres IP i nazwę użytkownika nadawcy w otrzymanym nagłówku?

Dzięki powyższej modyfikacji następuje Received: by ...:

Received: from debian (unknown [IPv6:fe80::b036:2ff:fe6e:73f4])
        by mail.example.nl (Postfix) with ESMTPSA id 1571B910B
        for <[email protected]>; Sun, 12 Jan 2020 02:23:15 +0000 (UTC)
Lekensteyn
źródło
-1

Użyj tego:

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

używaj tylko jednego *na obu końcach

HiperKulet
źródło
A może bardziej? / ^ Otrzymano: od. * 127 \ .0 \ .0 \ .1. * / IGNORE
Jack B.