Quando invio e-mail con Postfix, come posso nascondere l'IP e il nome utente del mittente nell'intestazione Ricevuto?


13

Quando si invia la posta, Postfix inserisce l'IP e il nome utente dell'utente autenticato nell'intestazione Ricevuto nell'e-mail. Sebbene sia utile per rintracciare chi ha inviato una determinata e-mail che è stata inviata dal tuo server di posta, ha anche implicazioni sulla privacy. In una situazione su piccola scala in cui posso fidarmi di tutti gli utenti per non compromettere i loro account e trasformarli in zombie spam, preferirei non trasmettere indirizzi IP e nomi di account che tutti possano leggere. In breve, come posso impostare Postfix per non inviarlo:

Ricevuto: da [xxxx] (pc1.example.com [xxxx]) (utilizzando TLSv1 con codice DHE-RSA-AES256-SHA (256/256 bit)) (Nessun certificato client richiesto) (Mittente autenticato: utente) per posta. esempio.com (Postfix) con ID ESMTPSA CC77010C148 per; Ven 11 Nov 2011 04:55:18 +0000 (UTC)

Risposte:


20

La soluzione standard è utilizzare l' opzione header_checks . Questa volontà di lavoro, le intestazioni tuttavia, se abbiamo ricevuto filtro linee su tutta la posta sia in entrata che in uscita (come questo farà), potremmo potenzialmente perdere ricevuti sulla posta elettronica inviati a noi, che può essere importante per la risoluzione dei problemi. Per ovviare a questo problema, si applicherà il header_checkssolo per la posta che potrebbe forse non sono stati inviati a noi-mail che è stato inviato alla presentazione di porta (che si sta utilizzando la porta di presentazione , non è vero? ).

Questo post spiega come applicare header_checksesclusivamente alla porta di invio. Quello che dobbiamo fare è passare l' opzione cleanup_service_name al servizio di invio in modo che possiamo impostare un nuovo servizio di pulizia, "subcleanup". La sezione pertinente di /etc/postfix/master.cfpotrebbe apparire così:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o cleanup_service_name=subcleanup

Ora possiamo passare l' header_checksopzione al nuovo servizio di pulizia. Quella parte di /etc/postfix/master.cfpotrebbe assomigliare a questa:

cleanup   unix  n       -       -       -       0       cleanup
subcleanup unix n       -       -       -       0       cleanup
  -o header_checks=regexp:/etc/postfix/submission_header_checks

Infine, dobbiamo creare il file /etc/postfix/submission_header_checks, che conterrà la regex che filtra offendendo le righe di intestazione Ricevute. Quale regex hai inserito nel file dipende se hai smtpd_sasl_authenticated_headerimpostato.

Se smtpd_sasl_authenticated_headerè yes, quindi utilizzare:

/^Received:.*\(Authenticated sender:/ IGNORE

Altrimenti, utilizzare:

/^Received:.*\(Postfix/ IGNORE

(Grazie a Dominic P e Bryan Drewery per aver mostrato come gestire il secondo caso.)


Devi chiamare postmap submission_header_checks?
Mitar,

@Mitar nessun indizio, ma se lo scopri, sentiti libero di modificare la risposta. Queste sono le vecchie istruzioni per 10.04, ma probabilmente le aggiornerò quando uscirà 14.04.
Michael Kropat,

Sembra che abbia funzionato senza. :-)
Mitar

1
+1, grazie per la risposta molto utile. Sono passati alcuni anni e ho dovuto apportare una piccola modifica. Sto eseguendo Postfix 2.9.6. Ho cambiato regex in: /^Received:.*\(Postfix/ IGNOREperché non avevo la porzione "Mittente autenticato" nelle intestazioni. Vedi dei rischi associati al mio nuovo regex?
Dominic P,

1
Questa risposta presuppone che sia impostato smtpd_sasl_authenticated_header = yes. Senza di essa è quindi necessaria la regex modificata di Dominic.
Bryan Drewery,

-1

Puoi usare

smtpd_sasl_authenticated_header = no

in postfix/main.cfper eliminare le informazioni di intestazione nelle e-mail in uscita.


perché questa risposta è molto più semplice di quella di @ Michael? questo rimuove l'IP da tutte le intestazioni, anziché solo dalle e-mail ricevute attraverso la porta di invio?
Knocte,

2
Per smtpd_sasl_authenticated_headerimpostazione predefinita, @knocte è impostato su "no". Quando è abilitato, Postfix aggiunge il nome utente che è stato utilizzato per l'autenticazione SASL nell'intestazione "Ricevuto" iniziale - questo è ciò che aggiunge la parte "Mittente autenticato: utente" mostrata nella domanda. @La risposta di Michael rimuove non solo la parte utente, ma l'intera intestazione "Ricevuta", incluso l'IP del client.
n.

@ n.st: stai dicendo che la risposta di Markus non rimuove l'IP e quindi questa domanda SO?
Knocte,

@knocte Esatto.
n.

1
Ho bisogno di 125+ per votare. L'ho provato e rimuove solo il nome utente, non l'IP.
Giovanni
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.