serveur_hebergement:serveur_mail:partie_2_dovecot

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

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