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
#auth_username_format = %Lu
Décommentez la ligne
!include auth-sql.conf.ext
pour que Dovecot puisse interroger la base SQL Commentez la ligne
!include auth-system.conf.ext
afin que les utilisateurs locaux, root par exemple, ne puisse pas envoyer de mail. 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