2386
Commentaire: version initiale
|
3167
on range un peu... mise à niveau etch (on ne parle plus de sarge...)
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
Cette page présente une façon de configurer [:Postfix:] afin d'y activer le chiffrement des connexions via TLS. | Cette page présente une façon de configurer [:Postfix:] afin d'y activer le chiffrement (et accessoirement l'authentification) des connexions via TLS. |
Ligne 3: | Ligne 3: |
Note : [:JeanChristopheAndré:Je] présente ici l'installation sur une Debian ''Sarge'' ou ''Etch''. | == Création d'une clé privée et d'un certificat auto-signé pour le serveur == |
Ligne 5: | Ligne 5: |
== Installation des outils requis == | La création correcte d'un certificat n'étant pas le sujet de cette page, je vous indique simplement une façon d'en produire un rapidement : |
Ligne 7: | Ligne 7: |
La version de Postfix livrée avec ''Sarge'' nécessite d'installer un paquet supplémentaire : {{{ $ sudo aptitude install postfix-tls }}} En revanche avec ''Etch'' intègre TLS de base dans le paquet `postfix`. On aura aussi besoin des outils SSL pour créer un certificat pour le serveur : {{{ $ sudo aptitude install openssl |
{{{ $ cd ~ $ openssl req -new -x509 -nodes -days 1825 -text -out smtpd.pem -keyout smtpd.pem (...) Country Name (2 letter code) [AU]:SN State or Province Name (full name) [Some-State]:Region-de-Dakar Locality Name (eg, city) []:Dakar Organization Name (eg, company) [Internet Widgits Pty Ltd]:Agence universitaire de la Francophonie Organizational Unit Name (eg, section) []:BAO/CNFD Common Name (eg, YOUR name) []:smtp.sn.auf.org ### ATTENTION A METTRE LE NOM EXACT DU SERVEUR ICI Email Address []:ressources-informatiques@auf.org |
Ligne 18: | Ligne 20: |
== Création d'un certificat pour le serveur == | Note : le fichier smtpd.pem produit contient à la fois la clé privée (non protégée par un mot de passe) et le certificat public (auto-signé). |
Ligne 20: | Ligne 22: |
La création correcte d'un certificat n'étant pas le sujet de cette page, je vous indique simplement une façon d'en produire un rapidement. {{{ $ sudo mkdir /etc/postfix/ssl $ cd /etc/postfix/ssl $ sudo openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 365 $ sudo chmod 0600 smtpd.pem |
On place le fichier où il faut, en le protégeant : {{{ # mkdir /etc/postfix/ssl # cd /etc/postfix/ssl # mv ~/smtpd.pem . # chmod 0600 smtpd.pem <--- très important car il y a une clé privée non protégée dans ce fichier |
Ligne 30: | Ligne 31: |
On pourra utiliser l'extrait de configuration dans `main.cf` suivant : {{{ #===== TLS tls_random_source = dev:/dev/urandom #----- connexion entrante smtpd_tls_loglevel = 2 |
1. Pour les connexions entrantes, voici les lignes à placer dans `/etc/postfix/main.cf` : {{{# extrait de /etc/postfix/main.cf # on active TLS pour les connexions entrantes : |
Ligne 37: | Ligne 35: |
#smtpd_enforce_tls = yes # n'offrir la possibilité de s'authentifier *que* si on est sécurisé via TLS smtpd_tls_auth_only = yes smtpd_tls_ask_ccert = yes #smtpd_tls_req_ccert = yes |
|
Ligne 44: | Ligne 37: |
#smtpd_tls_CAfile = $config_directory/ssl/CA.pem | # on prépare l'avenir : les authentification ne seront possibles # QUE si TLS est activé sur le canal de communication : smtpd_tls_auth_only = yes }}} 2. Pour les connexion sortantes (quand le serveur envoie ces mails à un autre serveur qui connait TLS) : {{{# extrait de /etc/postfix/main.cf # on active TLS pour les connexions sortantes smtp_use_tls = yes smtp_tls_key_file = $config_directory/ssl/smtpd.pem smtp_tls_cert_file = $config_directory/ssl/smtpd.pem smtp_tls_note_starttls_offer = yes smtp_tls_enforce_peername = no # ne s'authentifier *que* si on est sécurisé via TLS smtp_tls_auth_only = yes }}} 3. Quelques autres options qui peuvent être utiles (voir `man 5 postconf` pour les détails) : {{{# quelques options possibles (voir man 5 postconf) # optimisation vias des cache de session TLS : smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # demander le certificat au client qui se connecte smtpd_tls_ask_ccert = yes # logs smtp_tls_loglevel = 2 smtpd_tls_loglevel = 2 # divers ... |
Ligne 47: | Ligne 67: |
#----- connexion sortante smtp_tls_loglevel = 2 #smtp_use_tls = yes smtp_tls_note_starttls_offer = yes # ne s'authentifier *que* si on est sécurisé via TLS smtp_tls_auth_only = yes smtp_tls_enforce_peername = no #smtp_tls_CAfile = $config_directory/ssl/CA.pem |
|
Ligne 59: | Ligne 71: |
$ sudo invoke-rc.d postfix restart | # invoke-rc.d postfix restart |
Ligne 64: | Ligne 76: |
== Discussions == ThomasNoël : Tu n'actives par le `smtps` dans `/etc/postfix/master.cf` ? JeanChristopheAndré : Ce n'est pas obligatoire vu que cette configuration propose d'utiliser TLS plutôt que SSL. |
Cette page présente une façon de configurer [:Postfix:] afin d'y activer le chiffrement (et accessoirement l'authentification) des connexions via TLS.
Création d'une clé privée et d'un certificat auto-signé pour le serveur
La création correcte d'un certificat n'étant pas le sujet de cette page, je vous indique simplement une façon d'en produire un rapidement :
$ cd ~ $ openssl req -new -x509 -nodes -days 1825 -text -out smtpd.pem -keyout smtpd.pem (...) Country Name (2 letter code) [AU]:SN State or Province Name (full name) [Some-State]:Region-de-Dakar Locality Name (eg, city) []:Dakar Organization Name (eg, company) [Internet Widgits Pty Ltd]:Agence universitaire de la Francophonie Organizational Unit Name (eg, section) []:BAO/CNFD Common Name (eg, YOUR name) []:smtp.sn.auf.org ### ATTENTION A METTRE LE NOM EXACT DU SERVEUR ICI Email Address []:ressources-informatiques@auf.org
Note : le fichier smtpd.pem produit contient à la fois la clé privée (non protégée par un mot de passe) et le certificat public (auto-signé).
On place le fichier où il faut, en le protégeant :
# mkdir /etc/postfix/ssl # cd /etc/postfix/ssl # mv ~/smtpd.pem . # chmod 0600 smtpd.pem <--- très important car il y a une clé privée non protégée dans ce fichier
Configuration de Postfix pour utiliser TLS
Pour les connexions entrantes, voici les lignes à placer dans /etc/postfix/main.cf :
- {{{# extrait de /etc/postfix/main.cf
# on active TLS pour les connexions entrantes : smtpd_use_tls = yes smtpd_tls_key_file = $config_directory/ssl/smtpd.pem smtpd_tls_cert_file = $config_directory/ssl/smtpd.pem # on prépare l'avenir : les authentification ne seront possibles # QUE si TLS est activé sur le canal de communication : smtpd_tls_auth_only = yes }}}
- Pour les connexion sortantes (quand le serveur envoie ces mails à un autre serveur qui connait TLS) :
- {{{# extrait de /etc/postfix/main.cf
# on active TLS pour les connexions sortantes smtp_use_tls = yes smtp_tls_key_file = $config_directory/ssl/smtpd.pem smtp_tls_cert_file = $config_directory/ssl/smtpd.pem smtp_tls_note_starttls_offer = yes smtp_tls_enforce_peername = no # ne s'authentifier *que* si on est sécurisé via TLS smtp_tls_auth_only = yes }}}
Quelques autres options qui peuvent être utiles (voir man 5 postconf pour les détails) :
- {{{# quelques options possibles (voir man 5 postconf)
# optimisation vias des cache de session TLS : smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # demander le certificat au client qui se connecte smtpd_tls_ask_ccert = yes # logs smtp_tls_loglevel = 2 smtpd_tls_loglevel = 2 # divers ... smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s }}}
Il faut bien évidement penser à redémarrer (et non recharger) Postfix :
# invoke-rc.d postfix restart
Documentations
[http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/doc/ A TLS extension for POSTFIX]