Catégories
postfix

Comment chiffrer ses emails avec postfix

Ah, toi aussi, tu as vu depuis quelques temps apparaitre un petit cadenas rouge dans gmail ? C’est aussi mon cas sur un serveur avec Postfix installé.

Postfix ne chiffre pas mon domaine

et lorsque tu cliques sur la flèche, stupeur :

Domaine non chiffre message

Ca veut bien dire ce que ça veut, et ce que ça veut dire c’est que c’est pas bien. Tu as compris ? :v

On peut se moquer hun, mais et toi, postfix chiffre bien tes mails ? Me dit pas que tu envois les mots de passe en clair comme ça ? Bref, on oublie ça vite et on se penche sur l’installation d’un certificat sur notre postfix.

Et si comme pour l’installation du HTTPS au premier épisode de ce blog, on utilise letsencrypt pour signer les certificats ?

 

Création des certificats :

Pour commencer, on va stopper notre serveur web (apache ou nginx) :

sudo service nginx|apache stop

On va télécharger letsencrypt :

cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

Et générer les certificats qui vont bien :

./letsencrypt-auto certonly -d mail.vinvin.dev --rsa-key-size 4096

Dans mon cas, j’ai un sous-domaine « mail » qui est chargé de gérer le serveur mail, à adapter selon votre configuration.

 

Configuration de Postfix

 

On part du principe que votre postfix fonctionne déjà mais qu’il ne chiffre pas vos messages.

On va donc ajouter ces quelques directives (smtp et smtpd le demon) au fichier « /etc/postfix/main.cf »

# TLS parameters
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtpd_tls_key_file =  /etc/letsencrypt/live/mail.vinvin.dev/privkey.pem
smtpd_tls_cert_file =  /etc/letsencrypt/live/mail.vinvin.dev/fullchain.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.vinvin.dev/cert.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# on active TLS pour les connexions sortantes
smtp_tls_security_level = may
# NB sur un postfix antérieur à 2.3, c'est smtp_use_tls = yes
smtp_tls_key_file =  /etc/letsencrypt/live/mail.vinvin.dev/privkey.pem
smtp_tls_cert_file = /etc/letsencrypt/live/mail.vinvin.dev/fullchain.pem
smtp_tls_CAfile = /etc/letsencrypt/live/mail.vinvin.dev/cert.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_enforce_peername = no

Pense à adapter les différents chemin pour le certificat. On peut remarquer ici que letsencrypt nous génère 3 fichiers : la clé, le certificat et le Certificat Authority (CA) alors que dans le tuto précédent, tu as utilisé que la clé et le certificat.

On redémarre postfix :

sudo service postfix restart

Un petit test :

Voici venu le temps (ahaha tu as cru que c’était la chanson de Casimir), donc le temps de faire un petit test d’envoi :

mail -r contact@vinvin.dev adresseEmail@gmail.com

Success ! Plus de cadenas rouge et à nous le chiffrage TLS standard 😉

Tu peux aussi tester via le site : ssl-tools

SSL Tools résultat postfix

Dans un prochain épisode, mise en place du DKIM et SPF pour éviter d’être considéré comme spammeur.

Une réponse sur « Comment chiffrer ses emails avec postfix »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *