Modifications entre les versions 1 et 5 (s'étendant sur 4 versions)
Version 1 à la date du 2006-12-15 19:37:29
Taille: 2386
Commentaire: version initiale
Version 5 à la date du 2007-11-30 11:29:50
Taille: 3167
Éditeur: ThomasNoël
Commentaire: 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

  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 : 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 }}}

  1. 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 }}}

  1. 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

Postfix/Chiffrement (dernière édition le 2012-08-23 08:00:33 par TruongTungLam)