Rimuovere / nascondere l'ip del mittente del client da postfix?


16

Sto cercando di nascondere l'IP client dalle e-mail inviate da Postfix.

ecco un esempio di cosa intendo:

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

Nota questa riga (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])

Voglio rimuovere quella linea dall'e-mail.

Ho provato a fare questo:

/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

Ma il mio indirizzo IP è ancora all'interno della parte ricevuta dell'e-mail. Se invio e-mail dal server smtp localmente l'indirizzo IP diventalocalhost.localdomain [127.0.0.1]

Come posso rimuovere gli IP client dall'intestazione?

Risposte:


12

In main.cf:

smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

In dynamicmaps.cf:

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

Dovresti metterlo nel tuo /etc/postfix/smtp_header_checks:

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

Quindi corri

# /etc/init.d/postfix reload

Il mio indirizzo IP è ancora visualizzato. Apprezzo gli sforzi.
Kyle il

Non è necessario avere postfix-pcre. Regexp funziona allo stesso modo.
Kyle il

Tutto a posto. Mi sono assicurato che pcre fosse installato sul sistema. Ho cambiato regexp:/etc/postfix/smtp_header_checksin pcre:/.... Ho quindi riavviato Postfix e monitorato maillog per eventuali errori. Non sono stati visualizzati errori. L'email mostra ancora il mio IP. XD Grazie per gli sforzi, Mike.
Kyle il

Hmm ... Ricevo un errore ma ho trovato questo irbs.net/internet/postfix/0404/1097.html Ho provato il regex con questo postfix.org/pcre_table.5.html usando l'argomento: 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_checkse l'output è stato IGNOREcosì è Lavorando. Tuttavia non sta apportando modifiche nell'e-mail ... Il campo all'interno è main.cfsbagliato?
Kyle il

1
Merda. Ho appena perso il tuo tempo. È colpa mia all'inizio. smtp_header_checksdoveva essere header_checks... Funziona ora. Mi dispiace tanto di aver perso tempo. Apprezzo i tuoi sforzi. Grazie. Anche pcre funziona. Sono a centos. Grazie ancora, fratello.
Kyle il

3

Apri /etc/postfix/master.cf e trova:

cleanup unix n - n - 0 cleanup

Aggiungi sotto quelle righe e diventa:

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

Modifica / etc / postfix / header_checks e aggiungi i seguenti codici:

/^Received:/ IGNORE

Ora riavvia postfix. Diciamo su CentOS:

service postfix restart


1
Sfortunatamente, questo eliminerà anche l' Receivedintestazione sulla posta in arrivo.

0

Per rimuovere l'IP del mittente dall'intestazione Ricevuto per i nuovi invii di posta, utilizzare la header_checkschiave anziché l' smtp_header_checksopzione:

header_checks = regexp:/etc/postfix/header_checks_submission

L' smtp_header_checksopzione si applica solo alla posta inviata da Postfix a server esterni, mentre l' header_checksopzione si applica alla posta in arrivo inviata dal tuo client a Postfix.

Vedi anche come Postfix riceve la posta all'indirizzo http://www.postfix.org/OVERVIEW.html per una panoramica dei componenti, la posta passa da smtpd -> cleanup -> coda in entrata. Il smtpdprocesso riceve la posta e inietta l' Receivedintestazione con l'indirizzo IP del mittente. L' header_checks(5)opzione viene elaborata dal cleanup(8)componente che disinfetta le intestazioni delle e-mail.

Si Non consigliabile impostare tale header_checksopzione a livello globale nel vostro main.cf in quanto ciò modificare l'intestazione Ricevuto in tutti i messaggi di posta elettronica, anche quelli ricevuti da server esterni. Invece, dovresti configurare il tuo client per inviare e-mail tramite un servizio di invio dedicato sulla porta 587 e configurare Postfix per riscrivere le intestazioni solo per questi invii autenticati.

In /etc/postfix/master.cf, aggiungi le seguenti -orighe dopo la submissionriga:

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

È ora di configurare il cleanup servizio per un uthenticated s Submission. Scelgo il nome ascleanupper mantenerlo breve e allineato, ma qualsiasi nome funziona. Per fare ciò, duplica la linea del servizio di pulizia nello stesso master.cffile, ma rinomina il primo campo e aggiungi una nuova opzione per selezionare il file filtro:

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

(L'uso della pcretabella richiede l'installazione postfix-pcresu Debian, che si occuperà automaticamente dell'aggiornamento del file dynamicmaps.cf. Per questo non sono necessarie ulteriori modifiche.)

Il pezzo finale è l'attuale configurazione del filtro in /etc/postfix/header_checks_submission. Potresti potenzialmente usare qualcosa come:

/^Received: .*/ IGNORE

che rimuoverà l'intera riga di intestazione Ricevuta, ma invece puoi anche semplicemente rilasciare la from helo.host (reverse.host.name [192.0.2.1])parte preservando altre informazioni:

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

Se hai modificato l' mail_nameopzione, modifica la Postfixparola in modo che corrisponda alla tua configurazione. (Questo modello è accurato in base al codice sorgente Postfix, smtpd / smtpd.c .)

Ho provato questo con Postfix 3.4.7-0 + deb10u1 su Debian buster. Per un'altra ottima descrizione con lo stesso approccio, vedi Quando invio e-mail con Postfix, come posso nascondere l'IP e il nome utente del mittente nell'intestazione Ricevuto?

Con la modifica sopra, si trasforma in 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

Usa questo:

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

usa solo single *su entrambe le estremità


O più piace? / ^ Ricevuto: da. * 127 \ .0 \ .0 \ .1. * / IGNORE
Jack B.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.