Serveur mail sous Slackware (2) Dovecot

Logo DovecotAprès notre premier article sur Postfix, voici le deuxième article sur la mise en place d’un serveur mail sur une Dedibox tournant sous Slackware Linux, qui traite de Dovecot. Dovecot est un serveur IMAP et POP3 pour les systèmes d’exploitation Unix et dérivés. Il est conçu avec la sécurité comme première préoccupation. Nous le configurons ici pour le seul protocole IMAP, et nous partons d’emblée sur une gestion multi-domaines.

Prérequis

Pour nos tests, on utilisera une adresse kikinovak@slackbox.fr, qu’on aura
configurée dans Postfix.

Dans le pare-feu, il faudra ouvrir le port 993 (IMAPS = IMAP over SSL) en TCP.

Dovecot utilise un certificat SSL/TLS, qu’il faudra générer au préalable. Pour les détails, voir l’article sur Certbot. Si l’on souhaite gérer les mails de plusieurs domaines, il faudra générer un certificat SAN multi-domaines.

Installation

Dovecot ne fait pas partie d’une installation standard de Slackware. On va donc le compiler à partir des sources, en utilisant le script de SlackBuilds.org.

Créer quelques utilisateurs et groupes système nécessaires pour Dovecot.

# groupadd -g 202 dovecot
# useradd -d /dev/null -s /bin/false -u 202 -g 202 dovecot
# groupadd -g 248 dovenull
# useradd -d /dev/null -s /bin/false -u 248 -g 248 dovenull

Au final, on doit avoir quelque chose comme ceci.

# grep dove /etc/passwd
dovecot:x:202:202::/dev/null:/bin/false
dovenull:x:248:248::/dev/null:/bin/false
# grep dove /etc/group
dovecot:x:202:
dovenull:x:248:

Lancer la compilation de Dovecot et installer le paquet résultant.

Là encore, comme pour Postfix, si l’on choisit le paquet MLES, la création des utilisateurs et des groupes système est gérée automatiquement par le script de post-installation.

Configuration initiale de Dovecot

Éditer /etc/dovecot/dovecot.conf.

# /etc/dovecot/dovecot.conf
protocols = imap 
listen = *
ssl_cert = </etc/letsencrypt/live/ ... /fullchain.pem
ssl_key = </etc/letsencrypt/live/ ... /privkey.pem
mail_location = maildir:~/Maildir
auth_mechanisms = plain
passdb {
 driver = shadow
 args =
}
passdb {
 driver = passwd
 args =
}
userdb {
 driver = passwd
 args =
}

Activer et démarrer Dovecot.

# chmod +x /etc/rc.d/rc.dovecot
# /etc/rc.d/rc.dovecot start

Se connecter avec Mutt, en local ou à distance.

$ mutt -f imaps://kikinovak@slackbox.fr

Ajouter l’authentification SMTP à Postfix

Postfix supporte certes le protocole SASL (Simple Authentication and Security Layer), mais ne peut pas gérer l’authentification par lui-même. En revanche, Dovecot peut le faire pour lui.

Dans un premier temps, on va ajouter la stance suivante à dovecot.conf, qui concerne l’authentification par le biais du fichier socket /var/spool/postfix/private/auth.

...
service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = postfix
    group = postfix
  }
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
  user = $default_internal_user
}

Ensuite, il faut ajouter le mécanisme d’authentification login comme ceci.

auth_mechanisms = plain login
...

Au total, notre fichier /etc/dovecot/dovecot.conf ressemble donc à ceci.

protocols = imap 
listen = *
ssl_cert = </etc/letsencrypt/live/ ... /fullchain.pem
ssl_key = </etc/letsencrypt/live/ ... /privkey.pem
mail_location = maildir:~/Maildir
auth_mechanisms = plain login
passdb {
  driver = shadow
  args   =
}
passdb {
  driver = passwd
  args   =
}
userdb {
  driver = passwd
  args   =
}
service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = postfix
    group = postfix
  }
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
  user = $default_internal_user
}

Ensuite, il faut ajouter quelques lignes à la fin du fichier de configuration de Postfix.

smtpd_tls_cert_file    = /etc/letsencrypt/live/ ... /fullchain.pem
smtpd_tls_key_file     = /etc/letsencrypt/live/ ... /privkey.pem
smtpd_tls_security_level        = may
smtpd_sasl_auth_enable          = yes
broken_sasl_auth_clients        = yes
smtpd_sasl_tls_security_options = $smtp_sasl_security_options
smtpd_sasl_type                 = dovecot
smtpd_sasl_path                 = /var/spool/postfix/private/auth
smtpd_recipient_restrictions    = permit_mynetworks,
                                  permit_sasl_authenticated,
                                  reject_unauth_destination

Et pour finir, prendre en compte la nouvelle configuration :

# /etc/rc.d/rc.dovecot restart
# /etc/rc.d/rc.postfix restart

Supprimer Dovecot

Arrêter le service :

# /etc/rc.d/rc.dovecot stop

Supprimer le paquet :

# removepkg dovecot

Supprimer les fichiers de configuration :

# rm -rf /etc/dovecot/

Supprimer le script de démarrage :

# rm -f /etc/rc.d/rc.dovecot

Supprimer les utilisateurs système correspondants.

# userdel -r dovecot 
# userdel -r dovenull 

Les groupes système sont également supprimés par les deux précédentes commandes.

Ce contenu a été publié dans Documentation Microlinux, Slackware, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

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