serveur_hebergement:serveur_mail:partie_2_dovecot

Ceci est une ancienne révision du document !


Partie 2 : Dovecot

Maintenant que nous avons notre serveur SMTP, Postfix, pour envoyer nos courriels, il nous faut un serveur IMAP/POP3 : Dovecot.

Pour installer Dovecot, ça va être rapide. lancez la commande suivante :

sudo aptitude install dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql dovecot-sieve dovecot-managesieved

Fin de l'installation.

Ouvrez fichier dovecot.conf avec la commande suivante :

sudo nano /etc/dovecot/dovecot.conf

Ajoutez la ligne

protocols = imap lmtp sieve

. Cette ligne active IMAP, LMTP et Sieve. LMTP (Local Mail Transfer Protocol ou protocole local de transfert de courrier en français) sert à envoyer des courriels en local (à l'utilisateur root par exemple) et Sieve va nous permette de mettre en place des filtres et des règles de filtrage. Si vous souhaitez utiliser le protocole POP3, ajoutez pop3. Il vous faudra également installer le paquet dovecot-pop3d.

Ajoutez l'utilisateur dovecot au groupe mail pour qu'il ait accès en lecture au répertoire /var/mail (là ou seront stockés les courriels) :

sudo adduser dovecot mail

Ouvrez le fichier 10-master.conf avec la commande suivante :

sudo nano /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'utiliser que les versions 1.2 ou supérieures du protocole TLS.

Redémarrez Dovecot

sudo systemctl restart dovecot.service

Concernant les fichiers SSL let's encrypt, il faut que les utilisateurs postfix, dovecot et www-data aient accès à /etc/letsencrypt/live/mondomaine.fr/ et /etc/letsencrypt/archive/mondomaine.fr/

Pour Sieve

sudo nano /etc/dovecot/conf.d/15-lda.conf

À la fin du fichier, décommenter la ligne mail_plugins et ajouter sieve :

protocol lda {
    # Space separated list of plugins to load (default is global mail_plugins).
    mail_plugins = $mail_plugins sieve
}
sudo nano /etc/dovecot/conf.d/20-lmtp.conf
protocol lmtp {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = quota sieve   
}

Pensez juste à ouvrir le port 993 pour pouvoir vous connecter à Dovecot depuis un client via le protocole IMAP. Si vous souhaitez utiliser le protocole POP, c'est le port 995 qu'il vous faudra ouvrir.

Source : https://www.linuxbabe.com/mail-server/build-email-server-from-scratch-debian-postfix-smtp

Vous pourriez laisser un commentaire si vous étiez connecté.
  • serveur_hebergement/serveur_mail/partie_2_dovecot.1667557710.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)