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.