Ceci est une ancienne révision du document !
Partie 2 : Dovecot
Expliquer ce qu'est Dovecot.
Installer Dovecot :
sudo aptitude install dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
Ouvrez les ports 143 et 993.
Ouvrez fichier /etc/dovecot/dovecot.conf
Ajoutez la ligne protocols = imap lmtp. Si vous souhaitez également utiliser le protocole POP3, ajoutez également pop3. LMTP sert à envoyer des mails en local (à l'utilisateur root par exemple)
Ajoutez l'utilisateur dovecot au groupe mail pour qu'il est accès en lecture au répertoire /var/mail (là ou seront stockés les emails) : sudo adduser dovecot mail
Ouvrez le fichier /etc/dovecot/conf.d/10-master.conf
Modifiez la ligne service lmtp afin d'avoir comme suit :
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0660 user = postfix group = postfix } # Create inet listener only if you can't use the above UNIX socket #inet_listener lmtp { # Avoid making LMTP visible for the entire internet #address = #port = #} }
Ouvrez le fichier /etc/dovecot/conf.d/10-mail.conf et modifiez mail_location = mbox:~/mail:INBOX=/var/mail/%u par mail_location = maildir:~/Maildir et ajoutez la ligne mail_home = /var/vmail/%d/%n/ pour que les emails soient stockés dans le répertoire /var/vmail au lieu de /var/mail (nécessaire pour postfixadmin)
Ouvrez le fichier /etc/postfix/main.cf et ajoutez les lignes suivantes :
mailbox_transport = lmtp:unix:private/dovecot-lmtp smtputf8_enable = no
smtputf8 est une extension qui n'est pas supportée par dovecot-lmtp
Ouvrez le fichier /etc/dovecot/conf.d/10-auth.conf afin de configurer l'authentification. Désactivez l'authentification sans cryptage TLS en décommentant la ligne suivante :
disable_plaintext_auth = yes
Décommentez la ligne suivant
#auth_username_format = %Lu
Décommentez la ligne suivante pour que Dovecot puisse interroger la base SQL
!include auth-sql.conf.ext
Commentez la ligne suivante afin que les utilisateurs locaux, root par exemple, ne puisse pas envoyer de mail
!include auth-system.conf.ext
Vous pouvez également ajouter les lignes suivantes afin d'avoir plus de log dans /var/log/mail.log le temps de vérifier que les utilisateurs se connectent sans problème :
auth_debug = yes auth_debug_passwords = yes
Ouvrez le fichier /etc/dovecot/dovecot-sql.conf.ext et ajoutez ces lignes à la fin :
driver = mysql connect = host=localhost dbname=postfixadmin user=postfixadmin password=motdepassesqlpostfixadmin default_pass_scheme = ARGON2I password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active='1' user_query = SELECT maildir, 2000 AS uid, 2000 AS gid FROM mailbox WHERE username = '%u' AND active='1' iterate_query = SELECT username AS user FROM mailbox
Ouvrez maintenant le fichier /etc/dovecot/conf.d/10-master.conf. Modifiez les lignes service auth { et suivante afin d'avoir comme suit :
service auth { # auth_socket_path points to this userdb socket by default. It's typically # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have # full permissions to this socket are able to get a list of all usernames and # get the results of everyone's userdb lookups. # # The default 0666 mode allows anyone to connect to the socket, but the # userdb lookups will succeed only if the userdb returns an "uid" field that # matches the caller process's UID. Also if caller's uid or gid matches the # socket's uid or gid the lookup succeeds. Anything else causes a failure. # # To give the caller full permissions to lookup all users, set the mode to # something else than 0666 and Dovecot lets the kernel enforce the # permissions (e.g. 0777 allows everyone full permissions). unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } # Postfix smtp-auth #unix_listener /var/spool/postfix/private/auth { # mode = 0666 #} # Auth process is run as this user. #user = $default_internal_user }
Ajoutez également les lignes suivantes qui vont activer les statistiques de Dovecot, utilisées par Postfixadmin :
service stats { unix_listener stats-reader { user = www-data group = www-data mode = 0660 } unix_listener stats-writer { user = www-data group = www-data mode = 0660 } }
Ouvrez le fichier /etc/dovecot/conf.d/10-ssl.conf pour configurer la partie certificat TLS. Modifiez les lignes ssl_cert et ssl_key pour avoir comme suit (remplacez mondomaine.fr par votre domaine) :
ssl_cert = </etc/letsencrypt/live/mondomaine.fr/fullchain.pem ssl_key = </etc/letsencrypt/live/mondomaine.fr/privkey.pem
Trouvez la ligne #ssl_prefer_server_ciphers = no et remplacez-la par ssl_prefer_server_ciphers = yes afin de laisser le serveur décider des algorithmes de chiffrement à utiliser plutôt que le client Trouvez la ligne #ssl_min_protocol = TLSv1 et remplacez-la par ssl_min_protocol = TLSv1.2 afin de n'utilisez que les versions 1.2 ou supérieures du protocole TLS.
Redémarrez Dovecot
sudo systemctl restart dovecot.service
Source : https://www.linuxbabe.com/mail-server/build-email-server-from-scratch-debian-postfix-smtp