Per rimuovere l'IP del mittente dall'intestazione Ricevuto per i nuovi invii di posta, utilizzare la header_checks
chiave anziché l' smtp_header_checks
opzione:
header_checks = regexp:/etc/postfix/header_checks_submission
L' smtp_header_checks
opzione si applica solo alla posta inviata da Postfix a server esterni, mentre l' header_checks
opzione 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 smtpd
processo riceve la posta e inietta l' Received
intestazione 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_checks
opzione 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 -o
righe dopo la submission
riga:
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 ascleanup
per mantenerlo breve e allineato, ma qualsiasi nome funziona. Per fare ciò, duplica la linea del servizio di pulizia nello stesso master.cf
file, 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 pcre
tabella richiede l'installazione postfix-pcre
su 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_name
opzione, modifica la Postfix
parola 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)