ateliers:serveurmail:dovecot
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
ateliers:serveurmail:dovecot [2017/05/07 16:15] – [Administration] tralala | ateliers:serveurmail:dovecot [2020/03/01 15:36] (Version actuelle) – Correction, mise en forme et ajout des configuration pour mailcrypt okhin | ||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
==== Installation ==== | ==== Installation ==== | ||
- | FIXME: A écrire | + | apt install dovecot-imapd dovecot-lmtpd |
- | ==== Configuration | + | ==== Administration |
- | FIXME: A écrire | + | __Redémarrer__ |
- | ==== Administration ==== | + | systemctl stop dovecot |
+ | systemctl start dovecot | ||
- | FIXME: A écrire, notamment redémarrer le service et autre | + | __Vérifier statut__ |
+ | systemctl status dovecot | ||
+ | |||
+ | |||
+ | ==== 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' | ||
- | On fait du triage via Sieve, sur la base des critères | + | == Dépendances nessaires == |
- | sieve: pour trier les messages sur la base des critères | + | apt install dovecot-sieve dovecot-managesieved dovecot-antispam |
- | Activer | + | = Configuration de sieve = |
- | Après l' | + | |
- | Donner des fichiers aux utilisateurs. | + | Pour activer sieve, il faut modifier le fichier 15-lda.conf: |
+ | <code|h / | ||
- | Exemple (les dossiers de destination doivent être créés avant l' | + | # Address to use when sending rejection mails. |
+ | # Default is postmaster@< | ||
+ | postmaster_address = postmaster@anarcha.pink | ||
- | require " | + | # Hostname to use in various parts of sent mails (e.g. in Message-Id) and |
+ | # in LMTP replies. Default is the system' | ||
+ | hostname = mail.anarcha.pink | ||
+ | protocol lda { | ||
+ | # Space separated list of plugins to load (default is global mail_plugins). | ||
+ | mail_plugins = $mail_plugins sieve | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | de même pour 20-lmtp.conf | ||
+ | |||
+ | <code|h / | ||
+ | protocol lda { | ||
+ | # Space separated list of plugins to load (default is global mail_plugins). | ||
+ | mail_plugins = $mail_plugins sieve | ||
+ | } | ||
+ | </ | ||
+ | Il faut ensuite donner des fichiers aux utilisateuxes, | ||
+ | |||
+ | <code|h ~/ | ||
+ | require " | ||
# SPAM Checks | # SPAM Checks | ||
- | if header :is " | + | if header :is " |
- | fileinto " | + | fileinto " |
stop; | stop; | ||
} | } | ||
- | if header :is " | + | if header :is " |
- | fileinto " | + | fileinto " |
- | stop; | + | stop; |
} | } | ||
- | if header :is " | + | if header :is " |
- | fileinto " | + | fileinto " |
- | stop; | + | stop; |
+ | }</ | ||
+ | |||
+ | = Dovecot antispam = | ||
+ | |||
+ | 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). | ||
+ | |||
+ | Pour le configurere, | ||
+ | |||
+ | <code|h / | ||
+ | ## | ||
+ | ## Plugin settings | ||
+ | ## | ||
+ | |||
+ | # All wanted plugins must be listed in mail_plugins setting before any of the | ||
+ | # settings take effect. See < | ||
+ | # their configuration. Note that %variable expansion is done for all values. | ||
+ | plugin { | ||
+ | antispam_signature = X-Spam | ||
+ | antispam_backend = pipe | ||
+ | antispam_spam | ||
+ | antispam_trash | ||
+ | antispam_mail_sendmail = / | ||
+ | antispam_mail_spam | ||
+ | antispam_mail_notspam | ||
+ | antispam_mail_sendmail_args = -h; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Puis on modifie le conf.d/ | ||
+ | |||
+ | <code|h / | ||
+ | |||
+ | protocol imap { | ||
+ | # Space separated list of plugins to load (default is global mail_plugins). | ||
+ | mail_plugins = $mail_plugins antispam | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | === Authentification d' | ||
+ | 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' | ||
+ | |||
+ | == Configuration de l'auth dovecot == | ||
+ | Il faut commencer par modifier les directives de configuration de dovecot et de choisir le mode d' | ||
+ | |||
+ | En particulier; | ||
+ | |||
+ | <file conf / | ||
+ | [...] | ||
+ | uris = ldapi:// | ||
+ | |||
+ | auth_bind = yes # Pour utiliser la méthode d'auth bind | ||
+ | |||
+ | base = dc=anarcha, | ||
+ | |||
+ | user_attrs = =home={%ldap: | ||
+ | # Nous mappons les attributs ldap (si ils existent) avec leurs équivalents dovecot. | ||
+ | # La syntaxe est dérivée de la [[https:// | ||
+ | # Cela nous permet de gérer des utilisateurs réeels (les admins, qui reçoivent aussi des mails) | ||
+ | # et virtuels, sans forcer l' | ||
+ | |||
+ | user_filter = (& | ||
+ | # Ceci est le filtre dlap utilisé pour trouver les utilisateurs dispoant d'une boite mail. | ||
+ | # On s' | ||
+ | # nom d' | ||
+ | # C'est la même syntaxe aue pour les filtres de ldapsearch. | ||
+ | |||
+ | pass_attrs = =user=%{ldap: | ||
+ | # Les arguments dont on a besoin pour vérifier le mot de passe de l' | ||
+ | # ces champs sont mappés avec les valeurs de l' | ||
+ | |||
+ | pass_filter = (& | ||
+ | # Même commentaires que pour user_filter | ||
+ | |||
+ | iterate_attrs = uid=user | ||
+ | iterate_filters = (objectClass=inetOrgPerson) | ||
+ | # Ces attributs et filtres sont utilisés pour lister tous les utilisateurs du système. | ||
+ | |||
+ | default_pass_scheme = CRYPT | ||
+ | # Les mots de passe que récupèrer dovecot sont, souvent, au format {SCHEME}bla. | ||
+ | # Si ce n'est pas le cas, alors on demande au système d' | ||
+ | # que pour /etc/shadow par exemple. Et la valeur pqr défaut de l' | ||
+ | </ | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Une fois ce fichier édité, il faut l' | ||
+ | |||
+ | <file config / | ||
+ | [...] | ||
+ | #!include auth-deny.conf.ext | ||
+ | #!include auth-master.conf.ext | ||
+ | |||
+ | !include auth-ldap.conf.ext | ||
+ | #!include auth-system.conf.ext | ||
+ | #!include auth-sql.conf.ext | ||
+ | #!include auth-passwdfile.conf.ext | ||
+ | #!include auth-checkpassword.conf.ext | ||
+ | #!include auth-vpopmail.conf.ext | ||
+ | #!include auth-static.conf.ext | ||
+ | </ | ||
+ | |||
+ | == Ajout de valeurs par défaut pour les comptes virtuels== | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Pour se faire;, il faut modifier les bases d'auth gérées par LDAP (userdb et passdb en l' | ||
+ | |||
+ | <file config / | ||
+ | passdb { | ||
+ | driver = ldap | ||
+ | |||
+ | # Path for LDAP configuration file, see example-config/ | ||
+ | args = / | ||
+ | } | ||
+ | [...] | ||
+ | </ | ||
+ | |||
+ | 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 / | ||
+ | [...] | ||
+ | userdb { | ||
+ | driver = ldap | ||
+ | |||
+ | # Path for LDAP configuration file, see example-config/ | ||
+ | args = / | ||
+ | default_fields = home=/ | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | De même pour la base récupérant les informations, | ||
+ | |||
+ | === 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:// | ||
+ | |||
+ | 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' | ||
+ | |||
+ | == Configuration de mail crypt == | ||
+ | |||
+ | On crée le fichier conf.d/ | ||
+ | |||
+ | <file config / | ||
+ | ## | ||
+ | ## Plugin settings | ||
+ | ## | ||
+ | |||
+ | # Configuration for the mail crypt plugin, according to | ||
+ | # the official documentation for the directory mode | ||
+ | # encryption : | ||
+ | # | ||
+ | # https:// | ||
+ | |||
+ | plugin { | ||
+ | mail_crypt_curve = secp521r1 | ||
+ | mail_crypt_save_version = 2 | ||
+ | mail_crypt_require_encrypted_user_key = yes | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 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 / | ||
+ | [...] | ||
+ | # Space separated list of plugins to load (default is global mail_plugins). | ||
+ | mail_plugins = $mail_plugins mail_crypt | ||
+ | |||
+ | mail_attribute_dict = file: | ||
+ | [...] | ||
+ | </ | ||
+ | |||
+ | == Générer les cles maîtres == | ||
+ | |||
+ | Pour chaque compte, il faut une clef maître. C'est l' | ||
- | managesieve: pour le futur. | + | Cette clef est générée par via doveadm, en root (via sudo donc) de la façon suivante |
- | 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). | + | $ sudo doveadm |
- | apt install dovecot-sieve dovecot-managesieved dovecot-antispam | + | L' |
ateliers/serveurmail/dovecot.1494166503.txt.gz · Dernière modification : 2017/05/07 16:15 de tralala