relecture
This commit is contained in:
parent
91e62456ba
commit
4c5cb148b1
215
HowtoDovecot.md
215
HowtoDovecot.md
|
@ -5,59 +5,122 @@ title: Howto Dovecot
|
|||
|
||||
* Documentation : <http://wiki2.dovecot.org/>
|
||||
|
||||
[Dovecot](https://www.dovecot.org/) est un puissant serveur POP et IMAP et
|
||||
écrit en ayant comme but la sécurité. Les autres objectifs sont la légèreté et
|
||||
la rapidité ainsi que la facilité à le mettre en place ; la configuration de
|
||||
base, après installation, fournit un serveur POP/IMAP fonctionnel.
|
||||
[Dovecot](https://www.dovecot.org/) est un serveur permettant l'accès à des emails avec les protocoles [POP](https://fr.wikipedia.org/wiki/Post_Office_Protocol) et [IMAP](https://fr.wikipedia.org/wiki/Internet_Message_Access_Protocol). Il possède toutes les fonctionnalités indispensables pour nous : la couche [SSL/TLS](HowtoSSL) pour sécuriser les échanges réseau, l'intégration avec [Postfix](HowtoPostfix), la gestion de l'authentification avec [LDAP](HowtoLDAP), le support du format de stockage [Maildir](https://fr.wikipedia.org/wiki/Maildir) et les filtres [Sieve](https://fr.wikipedia.org/wiki/Sieve). Nous aimons sa légèreté et sa rapidité, nous l'avons définitivement adoptés sur nos serveurs de messagerie en remplacement de [Courier POP/IMAP](http://www.courier-mta.org/).
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
~~~
|
||||
# apt install dovecot-pop3d dovecot-imapd dovecot-sieve dovecot-ldap dovecot-managesieved
|
||||
|
||||
# dovecot --version
|
||||
2.2.27 (c0f36b0)
|
||||
|
||||
# systemctl status dovecot
|
||||
● dovecot.service - Dovecot IMAP/POP3 email server
|
||||
Loaded: loaded (/lib/systemd/system/dovecot.service; enabled; vendor preset: enabled)
|
||||
Active: active (running) since Wed 2017-10-11 02:37:57 CEST; 2 days ago
|
||||
Docs: man:dovecot(1)
|
||||
http://wiki2.dovecot.org/
|
||||
Main PID: 10102 (dovecot)
|
||||
Tasks: 6 (limit: 4915)
|
||||
CGroup: /system.slice/dovecot.service
|
||||
├─10102 /usr/sbin/dovecot
|
||||
├─10111 dovecot/anvil
|
||||
├─10112 dovecot/log
|
||||
├─13327 dovecot/config
|
||||
├─13329 dovecot/auth
|
||||
└─20212 dovecot/auth -w
|
||||
~~~
|
||||
|
||||
`dovecot-ldap` est à installer si l'authentification se fait sur un annuaire
|
||||
LDAP mais il est également possible d'utiliser une base MySQL ou PostgreSQL,
|
||||
avec le paquet adapté en conséquence.
|
||||
> * Note* : le paquet `dovecot-ldap` est utile uniquement pour gérer l'authentification avec un annuaire [LDAP](HowtoLDAP). Il est également possible de gérer l'authentification avec une base de données SQL, il faudra alors installer le paquet `dovecot-mysql` ou `dovecot-pgsql`.
|
||||
|
||||
|
||||
## Configuration
|
||||
|
||||
La configuration de Dovecot se trouve dans le répertoire `/etc/dovecot`. Le
|
||||
fichier principal est `dovecot.conf` mais la configuration se fait dans des
|
||||
fichiers séparés dans `/etc/dovecot/conf.d/`.
|
||||
|
||||
Les paramètres globaux se définissent notamment dans `10-mail.conf`. Dans le
|
||||
cas d'un compte Unix unique pour tous les comptes :
|
||||
Fichiers de configuration :
|
||||
|
||||
~~~
|
||||
mail_location = maildir:/home/vmail/%d/%n
|
||||
|
||||
mail_uid = 5000
|
||||
mail_gid = 5000
|
||||
/etc/dovecot/
|
||||
├── dovecot.conf
|
||||
├── conf.d/
|
||||
│ ├── 10-auth.conf
|
||||
│ ├── 10-director.conf
|
||||
│ ├── 10-logging.conf
|
||||
│ ├── 10-mail.conf
|
||||
│ ├── 10-master.conf
|
||||
│ ├── 10-ssl.conf
|
||||
│ ├── 10-tcpwrapper.conf
|
||||
│ ├── 15-lda.conf
|
||||
│ ├── 15-mailboxes.conf
|
||||
│ ├── 20-imap.conf
|
||||
│ ├── 20-managesieve.conf
|
||||
│ ├── 20-pop3.conf
|
||||
│ ├── 90-acl.conf
|
||||
│ ├── 90-plugin.conf
|
||||
│ ├── 90-quota.conf
|
||||
│ ├── 90-sieve.conf
|
||||
│ ├── 90-sieve-extprograms.conf
|
||||
│ ├── auth-checkpassword.conf.ext
|
||||
│ ├── auth-deny.conf.ext
|
||||
│ ├── auth-dict.conf.ext
|
||||
│ ├── auth-ldap.conf.ext
|
||||
│ ├── auth-master.conf.ext
|
||||
│ ├── auth-passwdfile.conf.ext
|
||||
│ ├── auth-sql.conf.ext
|
||||
│ ├── auth-static.conf.ext
|
||||
│ ├── auth-system.conf.ext
|
||||
│ ├── auth-vpopmail.conf.ext
|
||||
│ └── z-evolinux-defaults.conf
|
||||
├── dovecot-dict-auth.conf.ext
|
||||
├── dovecot-dict-sql.conf.ext
|
||||
├── dovecot-ldap.conf.ext
|
||||
├── dovecot-sql.conf.ext
|
||||
└── private/
|
||||
~~~
|
||||
|
||||
Pour utiliser LDAP comme backend d'authentification, ajouter ceci dans `10-auth.conf` :
|
||||
La configuration se trouve dans le fichier `/etc/dovecot/dovecot.conf` qui inclut de nombreux fichiers séparés dans `/etc/dovecot/conf.d/*.conf`.
|
||||
|
||||
Le fichier `/etc/dovecot/conf.d/z-evolinux-defaults.conf` contient notre configuration de base :
|
||||
|
||||
~~~
|
||||
# Autorise les mécanismes PLAIN/LOGIN même sans SSL/TLS
|
||||
disable_plaintext_auth = no
|
||||
auth_mechanisms = plain login
|
||||
|
||||
# Authentification LDAP + intégration avec Postfix pour l'auth SMTP
|
||||
!include auth-ldap.conf.ext
|
||||
service auth {
|
||||
unix_listener auth-userdb {
|
||||
mode = 0600
|
||||
user = vmail
|
||||
group = vmail
|
||||
}
|
||||
unix_listener auth-userdb {
|
||||
mode = 0600
|
||||
user = vmail
|
||||
group = vmail
|
||||
}
|
||||
unix_listener /var/spool/postfix/private/auth-client {
|
||||
mode = 0666
|
||||
user = postfix
|
||||
group = postfix
|
||||
}
|
||||
}
|
||||
|
||||
# Stockage des emails dans /home/mail avec UID/GID 5000/5000
|
||||
mail_location = maildir:/home/vmail/%d/%n
|
||||
mail_uid = 5000
|
||||
mail_gid = 5000
|
||||
|
||||
# Activation Sieve
|
||||
protocol lda {
|
||||
mail_plugins = sieve
|
||||
}
|
||||
~~~
|
||||
|
||||
Et commenter la ligne suivante si on utilise pas du tout l'authentification via
|
||||
PAM (important autrement PAM introduit un lag lors de l'authentification) :
|
||||
Il est également important de commenter la ligne suivante si on utilise pas du tout l'authentification via PAM car cela évite d'avoir plusieurs secondes de lag lors de l'authentification :
|
||||
|
||||
~~~
|
||||
#!include auth-system.conf.ext
|
||||
~~~
|
||||
|
||||
Les paramètres de connexion à LDAP ainsi que la correspondance des champs
|
||||
doivent être indiqués dans le fichier `/etc/dovecot/dovecot-ldap.conf.ext` :
|
||||
Les paramètres de connexion à LDAP ainsi que la correspondance des champs doivent être indiqués dans le fichier `/etc/dovecot/dovecot-ldap.conf.ext` :
|
||||
|
||||
~~~
|
||||
hosts = 127.0.0.1
|
||||
|
@ -71,13 +134,8 @@ pass_attrs = uid=user,userPassword=password
|
|||
|
||||
### Authentification SMTP sur Dovecot
|
||||
|
||||
Il est possible de déléguer l'authentification SMTP de Postfix à Dovecot, ce
|
||||
qui est pratique pour ne pas définir à 2 endroits différents les paramètres du
|
||||
backend d'authentification utilisé. Dans Dovecot, il s'agit de faire écouter
|
||||
Dovecot sur un socket Unix, sur lequel on pourra récupérer la liste des comptes
|
||||
et tester l'authentification.
|
||||
|
||||
Dans le fichier `10-master.conf`, décommenter/adapter les lignes suivantes :
|
||||
On conseille de déléguer l'authentification SMTP à Dovecot, ce qui est pratique pour ne pas définir à deux endroits différents les paramètres du
|
||||
backend d'authentification utilisé. Cela consiste à faire écouter Dovecot sur une socket Unix (comme utilisé dans notre notre configuration de base) :
|
||||
|
||||
~~~
|
||||
service auth {
|
||||
|
@ -92,31 +150,64 @@ service auth {
|
|||
}
|
||||
~~~
|
||||
|
||||
Puis indiquer le chemin vers le socket dans la configuration de Postfix, relatif à son chroot :
|
||||
puis indiquer le chemin vers la socket dans la configuration de Postfix :
|
||||
|
||||
~~~
|
||||
smtpd_sasl_type = dovecot
|
||||
smtpd_sasl_path = private/auth-client
|
||||
~~~
|
||||
|
||||
### Configuration TLS
|
||||
### Configuration SSL/TLS
|
||||
|
||||
La configuration se fait dans le fichier `10-ssl.conf` :
|
||||
Il est fortement recommandé d'activer la couche [SSL/TLS](HowtoSSL).
|
||||
Cela se fait ainsi :
|
||||
|
||||
~~~
|
||||
ssl = required
|
||||
ssl = yes
|
||||
ssl_cert = </etc/ssl/certs/example.com.crt
|
||||
ssl_key = </etc/ssl/private/example.com.key
|
||||
ssl_dh_parameters_length = 2048
|
||||
~~~
|
||||
|
||||
Avec `ssl = required`, toutes les connexions POP/IMAP doivent être chiffrées. Un exception est cependant faite pour localhost, où les connexions en clair restent possibles.
|
||||
> *Note* : la directive `ssl_cert` doit inclure le certificat du domaine ainsi que tous ceux de sa chaîne de certification.
|
||||
|
||||
La directive `ssl_cert` doit inclure le certificat du domaine ainsi que tous ceux de sa chaine de certification.
|
||||
À noter que si l'on veut forcer toutes les connexions POP/IMAP à utiliser SSL/TLS (sauf les connexions depuis *localhost*) , on utilise :
|
||||
|
||||
### Créer des boîtes IMAP automatiquement
|
||||
~~~
|
||||
ssl = required
|
||||
~~~
|
||||
|
||||
Voir <http://wiki2.dovecot.org/MailboxSettings>
|
||||
### Livraison avec Dovecot LDA
|
||||
|
||||
Dovecot fournit un agent de livraison (LDA) nommé `dovecot-lda` via la commande `deliver`.
|
||||
Il est notamment important de l'utiliser pour pouvoir utiliser les filtres Sieve.
|
||||
|
||||
Avec Postfix, on ajoutera la ligne suivante dans le fichier `/etc/postfix/master.cf` :
|
||||
|
||||
~~~
|
||||
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -a ${recipient} -d ${user}@${nexthop}
|
||||
~~~
|
||||
|
||||
et dans le fichier `/etc/postfix/main.cf` :
|
||||
|
||||
~~~
|
||||
virtual_transport = dovecot
|
||||
dovecot_destination_recipient_limit = 1
|
||||
~~~
|
||||
|
||||
> *Note* : cela suppose que tous les comptes sont gérés par un unique compte Unix _vmail_.
|
||||
|
||||
Il également possible d'utiliser le démon *dovecot-lmtp* via le package `dovecot-lmtp`.
|
||||
|
||||
|
||||
### Mailboxes Sent, Trash, Drafts, Junk
|
||||
|
||||
<http://wiki2.dovecot.org/MailboxSettings>
|
||||
|
||||
On peut créer automatiquement des sous-boîtes pour les clients IMAP.
|
||||
Les noms sont à peu près normalisés dans la [RFC 6154](https://tools.ietf.org/html/rfc6154).
|
||||
|
||||
Voici comment créer automatiquement Sent, Trash, Drafts et Junk :
|
||||
|
||||
~~~
|
||||
namespace inbox {
|
||||
|
@ -141,48 +232,16 @@ namespace inbox {
|
|||
}
|
||||
~~~
|
||||
|
||||
## Utiliser Dovecot comme LDA
|
||||
|
||||
Dovecot fournit un agent de livraison (LDA) nommé `dovecot-lda` via la commande
|
||||
`deliver`.
|
||||
## Sieve
|
||||
|
||||
Note : il est également possible d'utiliser le démon `dovecot-lmtp` (paquet _dovecot-lmtp_).
|
||||
Sieve est un langage permettant d'écrire des règles de tri d'emails, du même type que [procmail](https://fr.wikipedia.org/wiki/Procmail).
|
||||
Sieve est normalisé via la [RFC 5228](https://tools.ietf.org/html/rfc5228) et plusieurs clients email le supporte : *Mozilla Thundebird* via une [extension](http://sieve.mozdev.org/), [Roundcube](HowtoMail/Roundcube), [Ingo](https://www.horde.org/apps/ingo) etc.
|
||||
|
||||
Ajouter la ligne suivante dans le fichier `/etc/postfix/master.cf` :
|
||||
|
||||
~~~
|
||||
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
|
||||
~~~
|
||||
|
||||
Note : cela suppose que tous les comptes de courriels sont gérés par un unique compte unix _vmail_.
|
||||
|
||||
Puis dans `/etc/postfix/main.cf`, ajouter :
|
||||
|
||||
~~~
|
||||
virtual_transport = dovecot
|
||||
dovecot_destination_recipient_limit = 1
|
||||
~~~
|
||||
|
||||
### Support du + dans les adresses
|
||||
|
||||
Il faut modifier les options de `deliver` dans le fichier `master.cf` de Postfix ainsi :
|
||||
|
||||
~~~
|
||||
- flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
|
||||
+ flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -a ${recipient} -d ${user}@${nexthop}
|
||||
~~~
|
||||
|
||||
### Gestion de Sieve
|
||||
|
||||
Sieve est un langage permettant d'écrire des règles de tri de courriel, du même
|
||||
type que se que `procmail` offre. Il a cependant l'avantage d'être normalisé
|
||||
dans le RFC 5228 et donc supporté par plusieurs clients.
|
||||
|
||||
Pour utiliser sieve, il faut l'ajouter à la directive `mail_plugins` dans le fichier `15-lda.conf` :
|
||||
Pour activer Sieve, il faut utiliser Dovecot LDA et ajuster la directive *mail_plugins* (comme utilisé dans notre notre configuration de base) :
|
||||
|
||||
~~~
|
||||
protocol lda {
|
||||
# Space separated list of plugins to load (default is global mail_plugins).
|
||||
mail_plugins = sieve
|
||||
}
|
||||
~~~
|
||||
|
|
Loading…
Reference in a new issue