Outils pour utilisateurs

Outils du site


ateliers:serveurmail:dovecot

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
ateliers:serveurmail:dovecot [2019/10/28 19:42]
okhin Fix d'une typo sur un lien
ateliers:serveurmail:dovecot [2020/03/01 15:36] (Version actuelle)
okhin Correction, mise en forme et ajout des configuration pour mailcrypt
Ligne 25: Ligne 25:
 ==== Configuration ====  ==== Configuration ==== 
 === Triage des mails === === Triage des mails ===
 +On utilise le langage sieve pour permettre aux utilisateuxes de créer leurs propres règles de filtrage. On veut aussi s'en servir pour détecter automatiquement les nouveaux spams (quand l'​utilisateuxe déplace un mail dans le dossier Junk par exemple).
 +
 +== Dépendances nessaires ==
  
     apt install dovecot-sieve dovecot-managesieved dovecot-antispam policykit-1     apt install dovecot-sieve dovecot-managesieved dovecot-antispam policykit-1
  
-On fait du triage via Sieve, sur la base des critères  += Configuration ​de sieve =
- +
-sieve: pour trier les messages sur la base des critères antispam mis en place via rspamd. Un fichier sieve pour chaque utilisateur. Le fichier ​de configuration de base est suffisant pour nous. +
- +
-Activer sieve: modifier le fichier 15-lda.conf (depuis /​etc/​dovecot/​conf.d),​ dans la section sur les protocoles, activer les mail_plugins,​ ajouter ​sieve à la fin +
  
-ce qu'il faut modifier/ajouter dans cette configuration (le reste de la configuration par défaut est à garder) ​:+Pour activer sieve, ​il faut modifier le fichier 15-lda.conf:
 <code|h /​etc/​dovecot/​conf.d/​15-lda.conf>​ <code|h /​etc/​dovecot/​conf.d/​15-lda.conf>​
  
Ligne 52: Ligne 51:
 </​code>​ </​code>​
  
-et pareil ​pour 20-lmtp.conf.+de même pour 20-lmtp.conf
  
-ce qu'il faut modifier/​ajouter dans cette configuration (le reste de la configuration par défaut est à garder) : 
 <code|h /​etc/​dovecot/​conf.d/​20-lmtp.conf>​ <code|h /​etc/​dovecot/​conf.d/​20-lmtp.conf>​
 protocol lda { protocol lda {
Ligne 61: Ligne 59:
 } }
 </​code>​ </​code>​
 +Il faut ensuite donner des fichiers aux utilisateuxes,​ dans leur home dovecot (pas forcément la même chose que le home Unix).
  
-Après l'​activation dans les fichiers de conf, relancer le service (systemctl restart dovecot). +<code|h ~/​.dovecot.sieve>​ 
- +require "​fileinto";​
-Donner des fichiers aux utilisateurs. +
- +
-Exemple (les dossiers de destination doivent être créés avant l'​exécution de la règle): +
- +
-<code|h ~/​.dovecot.sieve>​require "​fileinto";​+
 # SPAM Checks # SPAM Checks
 if header :is "​X-Spam"​ "​Yes"​ { if header :is "​X-Spam"​ "​Yes"​ {
Ligne 83: Ligne 77:
 }</​code>​ }</​code>​
  
-managesieve:​ pour le futur.+= Dovecot antispam =
  
-dovecot-antispam: logiciel ​qui réagit aux actions IMAP (donc via client de messagerie). Si un message est mis dans le dossier Spam ou il en est retiré, il exécute une commande (ce sera pour dire à rspamd de prendre ces critères en compte).+dovecot-antispam ​est un module ​qui réagit aux actions IMAP (donc via client de messagerie). Si un message est mis dans le dossier Spam ou s'il en est retiré, il exécute une commande (ce sera pour dire à rspamd de prendre ces critères en compte).
  
-<code|h /​etc/​dovecot/​conf.d/​90-plugin.conf>+Pour le configurere,​ il faut créer le fichier conf.d/​90-antispam.conf (en copiant par exemple le conf.d/​90-plugin.conf qui est un bon modèle) 
 + 
 +<code|h /​etc/​dovecot/​conf.d/​90-antispam.conf>
 ## ##
 ## Plugin settings ## Plugin settings
Ligne 107: Ligne 103:
 </​code>​ </​code>​
  
-Puis on modifie le /​etc/​dovecot/​conf.d/​20-imap.conf+Puis on modifie le conf.d/​20-imap.conf
  
-décommente protocole ​imap + ajout antispam dans mail_plugins+<code|h /​etc/​dovecot/​conf.d/​20-imap.conf>
  
-Puis on relance dovecot ​(systemctl restart dovecot)+protocol imap { 
 +  # Space separated list of plugins to load (default is global mail_plugins)
 +  mail_plugins = $mail_plugins antispam 
 +
 + 
 +</​code>​
  
 === Authentification d'​utilisateurices virtuelles === === Authentification d'​utilisateurices virtuelles ===
-Afin de permettre de créer des comptes mails à des personnes sans leur créer un compte unix, il est nécessaire de gérer des utilisateurices virtuelles. Comme nous avons déjà un qrbre [[ldap]], autant l'​utiliser.+Afin de permettre de créer des comptes mails à des personnes sans leur créer un compte unix, il est nécessaire de gérer des utilisateurices virtuelles. Comme nous avons déjà un arbre [[ldap]], autant l'​utiliser.
  
 == Configuration de l'auth dovecot == == Configuration de l'auth dovecot ==
 Il faut commencer par modifier les directives de configuration de dovecot et de choisir le mode d'​identification que l'on veut. Par simplicité,​ et pour laisser au serveur ldap la gestion de l'​identification,​ on utilisera la technique de l'​[[https://​wiki.dovecot.org/​AuthDatabase/​LDAP/​AuthBinds|Authentification Bind]] telle que documentée sur le site du projet Dovecot. Il faut commencer par modifier les directives de configuration de dovecot et de choisir le mode d'​identification que l'on veut. Par simplicité,​ et pour laisser au serveur ldap la gestion de l'​identification,​ on utilisera la technique de l'​[[https://​wiki.dovecot.org/​AuthDatabase/​LDAP/​AuthBinds|Authentification Bind]] telle que documentée sur le site du projet Dovecot.
  
-En pqrticulier; il faut modifier le fichier '''/​etc/​dovecot/​dovecot-ldap.conf.ext'''​ afin de lui préciser les valeurs nécessaires au fonctionnement sur anarcha:+En particulier; il faut modifier le fichier '''/​etc/​dovecot/​dovecot-ldap.conf.ext'''​ afin de lui préciser les valeurs nécessaires au fonctionnement sur anarcha:
  
 <file conf /​etc/​dovecot/​dovecot-ldap.conf.ext>​ <file conf /​etc/​dovecot/​dovecot-ldap.conf.ext>​
Ligne 141: Ligne 142:
 # C'est la même syntaxe aue pour les filtres de ldapsearch. # C'est la même syntaxe aue pour les filtres de ldapsearch.
  
-pass_attrs = uid=user+pass_attrs = =user=%{ldap:​uid},​=password=%{ldapPassword},​=userdb_mail_crypt_private_password=%w
 # Les arguments dont on a besoin pour vérifier le mot de passe de l'​utilisateurice et comment # Les arguments dont on a besoin pour vérifier le mot de passe de l'​utilisateurice et comment
 # ces champs sont mappés avec les valeurs de l'​arbre ldap # ces champs sont mappés avec les valeurs de l'​arbre ldap
Ligne 157: Ligne 158:
 # que pour /etc/shadow par exemple. Et la valeur pqr défaut de l'​arbre LDAP. # que pour /etc/shadow par exemple. Et la valeur pqr défaut de l'​arbre LDAP.
 </​file>​ </​file>​
 +
 +A noter, dans less pass_attrs, on récupère un champ userdb_mail_crypt_private_password (auquel on donne l valeur du mot de passe saisi par l'​utilisateur),​ il nous servira pour la gestion des boites mails chiffrées.
  
 Une fois ce fichier édité, il faut l'​activer dans '''/​etc/​dovecot/​conf.d/​10-auth.conf''',​ et penser à désactiver la configuration par défaut afin de n'​utliser QUE la config ldap, en commentant et décommentant les bonnes lignes à la fin du fichier Une fois ce fichier édité, il faut l'​activer dans '''/​etc/​dovecot/​conf.d/​10-auth.conf''',​ et penser à désactiver la configuration par défaut afin de n'​utliser QUE la config ldap, en commentant et décommentant les bonnes lignes à la fin du fichier
Ligne 174: Ligne 177:
 </​file>​ </​file>​
  
-== Ajout de valeurs par défaut ==+== Ajout de valeurs par défaut ​pour les comptes virtuels==
  
-Comme nous utilison dovecot pour gérer des comptes ​virtuiels, il est nécessaire de fournir certaines valeurs par défaut, qui ne peuvent ​pqs être stockées dans l'​arbre LDAP, par exemple le numéro d'UID, ou le répertoire HOME.+Comme nous utilison dovecot pour gérer des comptes ​virtuels, il est nécessaire de fournir certaines valeurs par défaut, qui ne peuvent ​pas être stockées dans l'​arbre LDAP, par exemple le numéro d'UID, ou le répertoire HOME.
  
 Pour se faire;, il faut modifier les bases d'auth gérées par LDAP (userdb et passdb en l'​occurence) gérées dans le fichier '''/​etc/​dovecot/​conf.d/​auth-ldap.conf'''​ Pour se faire;, il faut modifier les bases d'auth gérées par LDAP (userdb et passdb en l'​occurence) gérées dans le fichier '''/​etc/​dovecot/​conf.d/​auth-ldap.conf'''​
Ligne 190: Ligne 193:
 </​file>​ </​file>​
  
-Rien de bien sorcier jusque là, on dit à dovecot que notre base pour vérifier les mots de passe est gérée par ldap, et aue la configuration de celui-ci est dans le fichier modifié plus haut.+Rien de bien sorcier jusque là, on dit à dovecot que notre base pour vérifier les mots de passe est gérée par ldap, et que la configuration de celui-ci est dans le fichier modifié plus haut.
  
 <file config /​etc/​dovecot/​conf.d/​auth-ldap.conf>​ <file config /​etc/​dovecot/​conf.d/​auth-ldap.conf>​
Ligne 203: Ligne 206:
 </​file>​ </​file>​
  
-De même pour la base récupérant les informations,​ on utilise ldap. A noter le champ '''​default_fields'''​ qui permet de fournir des valeurs cohérentes si l'​arbre LDAP ne contiens pas toutes les informations. Dans ce cas; on crée un répertoire par utilisateur dans /var/mail, et ce répertoire est géré avec les droits de l'​utilisateur '''​mail'''​ appartenant au groupe '''​mail''',​ et aui est l'​utilisateur utilisé par dovecot.+De même pour la base récupérant les informations,​ on utilise ldap. A noter le champ '''​default_fields'''​ qui permet de fournir des valeurs cohérentes si l'​arbre LDAP ne contiens pas toutes les informations. Dans ce cas; on crée un répertoire par utilisateur dans /var/mail, et ce répertoire est géré avec les droits de l'​utilisateur '''​mail'''​ appartenant au groupe '''​mail''',​ et qui est l'​utilisateur utilisé par dovecot. 
 + 
 +=== Chiffrement des mails en base === 
 +On est des gens bien, on essaye de faire en sorte de ne pas pouvoir lire la correspondance privées de nos utilisateuxes. Pour cela on active le plugon mailcrypt de dovecot, et on utilise son focntionnement par répertoire (et non au niveau global). La [documentation](https://​doc.dovecot.org/​plugin-settings/​mail-crypt-plugin/​) détaillée de dovecot explique les différences entre les deux modes. 
 + 
 +Cela nous permet de chiffrer les mails entre les écritures et lecture sur disque. Ils restent non chiffrées lors de leur parcours dans dovecot, notamment lors de l'​analyse antispam. Mais cela rend complexe la lecture en clair des mails par quelqu'​un ne disposant pas d'une clef. 
 + 
 +== Configuration de mail crypt == 
 + 
 +On crée le fichier conf.d/​90-mailcrypt.conf à partir de conf.d/​90-plugin.conf. 
 + 
 +<file config /​etc/​dovecot/​conf.d/​90-mailcrypt.conf>​ 
 +## 
 +## Plugin settings 
 +## 
 + 
 +# Configuration for the mail crypt plugin, according to 
 +# the official documentation for the directory mode 
 +# encryption : 
 +
 +# https://​doc.dovecot.org/​configuration_manual/​mail_crypt_plugin/​ 
 + 
 +plugin { 
 +  mail_crypt_curve = secp521r1 
 +  mail_crypt_save_version = 2 
 +  mail_crypt_require_encrypted_user_key = yes 
 +
 +</​file>​ 
 + 
 +Il faut ensuite activer le plugin mailcrypt dans la configuration de la gestion des mails, et dire dovecot de stocker certains attributs spéciaux directement dans le répertoire home du compte (cela permettra de stocker toutes les clefs symétriues chiffrées). 
 +<code|h /​etc/​dovecot/​conf.d/​10-mail.conf>​ 
 +[...] 
 +# Space separated list of plugins to load (default is global mail_plugins). 
 +mail_plugins = $mail_plugins mail_crypt 
 + 
 +mail_attribute_dict = file:​%h/​Maildir/​dovecot-attributes 
 +[...] 
 +</​code>​ 
 + 
 +== Générer les cles maîtres == 
 + 
 +Pour chaque compte, il faut une clef maître. C'est l'​attribut '''​userdb_mail_crypt_private_password'''​ dans les attributes passdb fournis par dovecot-ldap. Sans cette clef, il n'st pas possible de chiffrer/​déchiffrer les mails, générant alors des erreurs et rendant impossible pour l'​utilisateur de recevoir des mails. 
 + 
 +Cette clef est générée par via doveadm, en root (via sudo donc) de la façon suivante : 
 + 
 +    $ sudo doveadm -o plugin/​mail_crypt_private_password=<​password>​ mailbox cryptokey generate -u <​username>​
  
-Il suffit ensuite ​de redémarrer dovecot.+L'​option -o est nécessaire,​ car nous utilisons des clefs protégées par mot de passe et qu'il faut donc en fournir un. Il faudra ajouter cette commande à nos scripts ​de gestion des utilisateuxes.
ateliers/serveurmail/dovecot.1572288177.txt.gz · Dernière modification: 2019/10/28 19:42 par okhin