Installation d'un serveur de courrier

Je vais détailler l’installation d’un serveur Postfix / Dovecot sous Debian. Le serveur SMTP installé par défaut est Exim mais je l’ai remplacé par Postfix que je connais un peu (rien de personnel contre Exim qui fait sûrement très bien son travail). Je veux gérer mon courrier depuis Thunderbird et utiliser le protocole IMAP pour laisser les messages sur le serveur. D’abord on installe avec apt-get qui s’occupera de la désinstallation d’Exim.

apt-get install postfix dovecot

Mon gros souci est bien sûr la sécurité : se faire pirater son courrier n’est pas une pensée agréable mais envisager qu’on utilise son serveur de courrier pour spammer l’est encore moins. Il faut donc envisager une authentification SMTP, des mots de passe robustes et un cryptage des données SSL. On peut générer soi-même son certificat mais on aura des soucis avec les applications clientes car il ne sera pas authentifiée par une autorité reconnue. La plupart de ces autorités font payer ce service. Un compromis que j’ai jugé acceptable consiste à requérir les services de CAcert qui permet de signer des clefs que vous aurez générées, sous réserve de prouver que vous êtes détenteur du domaine (rien de méchant il suffit de confirmer un courrier sur une adresse de ce domaine).

Quand on reçoit le certificat on l’installe sous etc/ssl/certs/dovecot.pem et on installe la clef privée sous etc/ssl/private/dovecot.pem. Il faut ensuite adapter la configuration de Dovecot sous /etc/dovecot/dovecot.conf :

ssl_disable = no
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
disable_plaintext_auth = yes

auth default {
  mechanisms = cram-md5

  socket listen {
      client {
          # Assuming the default Postfix $queue_directory setting
          path = /var/spool/postfix/private/auth
          mode = 0660
          # Assuming the default Postfix user and group
          user = postfix
          group = postfix
      }
  }
  passdb passwd-file {
    args = /etc/dovecot/cram-md5.pwd
  }
}

L’authentification CRAM-MD5 peut-être préférée à LOGIN, elle permet de gérer les comptes indépendamment des comptes UNIX. Sa configuration est détaillée  ici.

Pour Postfix on se simplifie grandement la vie en s’appuyant sur Dovecot pour l’autentification. Voici les paramètres clés de /etc/postfix/main.cf :

smtpd_tls_cert_file=/etc/sl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.pem
smtpd_use_tls=yes
myhostname = "le nom DNS de mon serveur"
relayhost = "le serveur SMTP de mon fournisseur"
mynetworks = 192.0.0.0/8, 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
smtpd_sasl_type = dovecot
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination

Il ne faut pas oublier de mettre en place les règles NAT pour ouvrir le port 25 et 143 vers l’extérieur et de redémarrer les services :

/etc/init.d/dovecot restart
/etc/init.d/postfix restart
Votre commentaire
Le site Web est optionel
Le message peut être rédigé au format Markdown