Forzare la crittografia per SMTP in uscita con Postfix


23

Qualcuno sa come dire a Postfix di crittografare la posta in uscita?

L'ho configurato per utilizzare la crittografia alla ricezione, ma non riesco a farlo con la posta in uscita. Questo è il mio main.cffile:

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
transport_maps = hash:/etc/postfix/transport

# tls config
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/ssl/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Risposte:


30

smtp_tls_security_level = encrypt o smtp_enforce_tls = yes

Per destinazioni specifiche è possibile utilizzare smtp_tls_policy_maps

smtp_use_tls = yes e smtp_enforce_tls = yes sono obsoleti . Con Postfix 2.3 e versioni successive utilizzare invece smtp_tls_security_level .

Ricorda: l'applicazione della crittografia TLS potrebbe causare problemi di consegna della posta per l'host SMTP, che non ha TLS configurato. Se il server viene utilizzato per recapitare la posta solo al server interno con TLS configurato, non è un problema in quel caso. Ma se il server viene utilizzato per recapitare la posta ai server pubblici, non si può presumere che tutti i server dispongano del supporto TLS. In tal caso, utilizzare smtp_tls_security_level = may


1
Penso che voglia solo imporlo dal client di posta software al server di posta mittente. Non da mailserver a mailserver (vedi il suo commento pubblicato il 7 marzo 10 alle 23:26)
Cojones,

4

L'idea è di forzare gli utenti a configurare i propri client di posta elettronica con un server smtp in uscita crittografato. Con l'attuale conf, Thunderbird lascia loro la possibilità di comunicare con il server smtp in testo semplice ...

Non è possibile disabilitare l'opzione in Thunderbird senza ricompilare il codice sorgente, ma è possibile configurare il demone stmpd postfix (che riceve la posta dai client) per imporre la crittografia. Per fare ciò, usa smtpd_tls_security_level = encrypt , che è equivalente alle opzioni obsolete smtpd_use_tls = yes e smtp_enforce_tls = yes . smtpd_tls_security_level = encrypt e smtp_enforce_tls = yes implica smtpd_tls_auth_only = yes

Dalla documentazione postfix su smtpd_tls_security_level = encrypt

Crittografia TLS obbligatoria: annunciare il supporto STARTTLS ai client SMTP e richiedere che i client utilizzino la crittografia TLS. Secondo la RFC 2487, questo NON DEVE essere applicato nel caso di un server SMTP referenziato pubblicamente. Invece, questa opzione dovrebbe essere utilizzata solo su server dedicati.

Se si utilizza un server pubblico, non è possibile applicare la crittografia e-mail sulla porta 25 / tcp. La soluzione migliore è disabilitare la consegna della posta tramite la porta demone smtpd postfix 25 / tcp dai client e abilitare il demone di invio postfix (che è il demone smtpd postfix speciale usato solo per ricevere la posta dai client locali descritta in RFC 4409 in esecuzione sulla porta 587 / tcp) . Per fare ciò, impostare smtpd_tls_security_level = may e rimuovere permit_sasl_authenticatedda smtpd_recipient_rest restrizioni . Nella master.cfriga di commento sul demone di invio:

submission inet n       -       n       -       -   submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_resrictions=permit_sasl_authenticated,reject

1

Solo curioso, come stai dicendo che non sta usando TLS? Il valore predefinito per smtp_tls_loglevel (che è diverso da smtpd_tls_loglevel) è 0, quindi per impostazione predefinita non vedrai nulla sulla negoziazione TLS per la posta in uscita nei registri di Postfix.

Se si imposta smtp_tls_loglevel = 1 o versione successiva, quando si invia un messaggio dovresti vedere una riga come questa nel registro:

7 marzo 22:28:10 postfix rack / smtp [27400]: inizializzazione del motore TLS lato client

Ammetto di essere pigro, ma a parte questo (e le note di ms sopra) la configurazione mi sembra a colpo d'occhio.


1
Ho capito che Simon vuole imporre la crittografia di tutta la posta tramite TLS. smtp_use_tls = yes consente l'uso postfix di TLS, se il server remoto lo supporta (smtp_use_tls = yes è equivalente a smtp_tls_security_level = may). Il messaggio appropriato deve essere inserito nel maillog, se la posta in uscita è stata crittografata utilizzando TLS. Hai ragione sul fatto che le opzioni di smtp_ * sono per demoni Postfix diversi rispetto a smtpd_ * (smtpd_ * è per la ricezione di posta da server remoti, smtp_ * è per la consegna di posta a server remoti).
sumar,

In realtà penso che la domanda potrebbe essere un po 'ambigua. Almeno non posso dire se Simon vuole che Postfix richieda TLS o semplicemente lo usi se il server del destinatario lo supporta.
jlupolt

1
Grazie per le tue parole, probabilmente non mi ho spiegato bene. L'idea è di forzare gli utenti a configurare i propri client di posta elettronica con un server smtp in uscita crittografato. Con l'attuale conf, Thunderbird lascia loro la possibilità di comunicare con il server SMTP in testo semplice ... è possibile evitarlo? Grazie in anticipo, Simon.
Simon

Un modo semplice per identificare se TLS è attivo è guardare un messaggio non elaborato sul lato ricevente e cercare i risultati di autenticazione: domainkeys = neutral (no sig); Il che indica che non utilizza TLS
Scott Stensland il
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.