[critical/mail] Ajout de dovecot.md
parent
7fc7cdf447
commit
b00e91b0be
|
@ -0,0 +1,165 @@
|
|||
# Dovecot
|
||||
Dovecot est entre autre une implémentation de serveur IMAP, de serveur POP3 et
|
||||
de serveur d'authentification SASL. Les deux premiers protocoles permettent à un
|
||||
utilisateur de consulter ces mails (soit en les consultant sur le serveur pour
|
||||
IMAP, soit en les téléchargeant localement pour POP3) tandis que le dernier sert
|
||||
à authentifié l'utilisateur, authentification qui pourra être utilisé par
|
||||
d'autre logiciels comme par exemple postfix pour vérifier l'idendité d'une
|
||||
personne souhaitant envoyer un mail.
|
||||
|
||||
## Installation
|
||||
On tire les différents composants logiciels des repository debian : `sudo apt
|
||||
install dovecot-imapd dovecot-ldap dovecot-pop3d dovecot-sieve`
|
||||
|
||||
## Configuration
|
||||
La configuration initiale packagée par debian est morcellée en une série de
|
||||
fichier commentée dans `/etc/dovecot/conf.d` qui permette de segmenter la
|
||||
configuration en fonction des différents mécanismes du logiciel.
|
||||
|
||||
### 10-auth.conf
|
||||
Ce fichier contrôle l'authentification des utilisateurs au serveur. On configure
|
||||
dans le fichier directement les options de connexions puis en incluant des
|
||||
fichiers 'auth-{{ mecanisme }}.conf.ext' on précise les différents bas
|
||||
d'utilisateurs et de mot de passe à utiliser.
|
||||
```
|
||||
# On autorise les clients à utiliser une authentification en claire car on
|
||||
# configurera par la suite le fait que tous les échanges entre le client
|
||||
# et le serveur soient chiffrées par TLS.
|
||||
disable_plaintext_auth = no
|
||||
# On configure deux méthodes d'authentification pour le client plain et login.
|
||||
auth_mechanisms = plain login
|
||||
# On souhaite tirer les utilisateurs du ldap. On inclue donc le fichier de
|
||||
# backend ldap qui va définir les bases d'utilisateurs et de mot de passes.
|
||||
!include auth-ldap.conf.ext
|
||||
```
|
||||
|
||||
Le fichier `auth-ldap.conf.ext` va lui même inclure le fichier de configuration
|
||||
de connexion au ldap.
|
||||
```
|
||||
# Addresse du serveur ldap
|
||||
uris = ldap://172.16.10.157/
|
||||
# Nom d'utilisateur et mot de passe utilisés pour s'authentifer auprès du
|
||||
# serveurs
|
||||
dn = cn=Utilisateurs,dc=crans,dc=org
|
||||
dnpass = "erdnaxe_aime_debian"
|
||||
# Base de noms en dessous de laquelle se trouve les utilisateurs dans le ldap
|
||||
base = cn=Utilisateurs,dc=crans,dc=org
|
||||
# Les options de configurations user_filter et pass_filter permettent de filtrer
|
||||
# les ojets ldap à inclure dans les bases d'utilisateurs et de mot de passes.
|
||||
user_filter = (&(objectClass=posixAccount)(uid=%u))
|
||||
pass_filter = (&(objectClass=posixAccount)(uid=%u))
|
||||
# Les options de configurations user_attrs et pass_attrs permettent de savoir
|
||||
# quels champs récupérer de l'objet ldap et d'altérer certains pour qu'ils
|
||||
# correspondent mieux à l'installation de la machine.
|
||||
user_attrs = homeDirectory=home={{ dovecot.home_path }}/%u,uidNumber=uid,gidNumber=gid
|
||||
pass_attrs = uid=user,userPassword=password
|
||||
```
|
||||
|
||||
### 10-logging.conf
|
||||
C'est le fichier de configuration qui gère l'écriture des logs du daemon. Il
|
||||
permet de séléctionner quels événèments doivent être loggé et quels champs de
|
||||
l'objet doivent être inclus dans les logs.
|
||||
```
|
||||
plugin {
|
||||
mail_log_events = delete undelete expunge copy mailbox_delete mailbox_renam
|
||||
mail_log_fields = uid box msgid size
|
||||
}
|
||||
log_timestamp = "%Y-%m-%d %H:%M:%S "
|
||||
```
|
||||
|
||||
### 10-mail.conf
|
||||
Dans ce fichier de configuration on définit les boites mails avec lesquels
|
||||
deovecot va travailler.
|
||||
```
|
||||
# Emplacement des boites mails et des indexes de dovecot
|
||||
mail_location = maildir:~/Mail:INBOX=/var/mail/%u/:INDEX=/var/dovecot-indexes/%u
|
||||
# Structure initiale à donner à une boite mail
|
||||
namespace inbox {
|
||||
inbox = yes
|
||||
}
|
||||
# Nom du groupe gérant les boites mails
|
||||
mail_privileged_group = mail
|
||||
# Listes de plugins génériques à charger. On inclue mail_plugins pour ajouter
|
||||
# des plugins dans la liste et pas écraser le contenu actuel de la variable. Le
|
||||
# plugin notify est une dépendance du plugin mail_log qui a été configuré dans
|
||||
# le fichier 10-logging.conf
|
||||
mail_plugins = $mail_plugins mail_log notify
|
||||
# Limite le nombre de connections qu'un utilisateur peut réaliser au serveur
|
||||
mail_max_userip_connections = 15
|
||||
```
|
||||
TODO: documenter ce que font mail_log et notify; documenter la dernière ligne de
|
||||
la conf
|
||||
|
||||
### 10-master.conf
|
||||
C'est le fichier de configuration principal de dovecot. C'est ici qu'on va
|
||||
définir les différents services que proposeront notre installation. Au crans il
|
||||
s'agit d'un serveur IMAP(s), d'un serveur POP3(s) et d'un serveur SASL.
|
||||
|
||||
#### IMAP
|
||||
La configuration du service se décompose en deux partie : le service
|
||||
de connexion et d'authentification au daemon imap et la configuration imap.
|
||||
```
|
||||
service imap-login {
|
||||
# Notre service écoute en clair sur le port 143 seulement sur le réseaux
|
||||
# d'administration (pour les webmails) et il écoute en chiffré sur le 993 pour
|
||||
# le reste du monde.
|
||||
inet_listener imap {
|
||||
address = 127.0.0.1, [::1], 172.16.10.126, [fd00::10:0:ff:fe01:2610]
|
||||
port = 143
|
||||
}
|
||||
inet_listener imaps {
|
||||
address = *, [::]
|
||||
port = 993
|
||||
ssl = yes
|
||||
}
|
||||
service_count = 0
|
||||
process_min_avail = 6
|
||||
}
|
||||
service imap {
|
||||
process_limit = 16384
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
#### POP3
|
||||
Le service pop3 se configure de manière analogue.
|
||||
```
|
||||
service pop3-login {
|
||||
inet_listener pop3 {
|
||||
address = 127.0.0.1, [::1], 172.16.10.126, [fd00::10:0:ff:fe01:2610]
|
||||
port = 110
|
||||
}
|
||||
inet_listener pop3s {
|
||||
address = *, [::]
|
||||
port = 995
|
||||
ssl = yes
|
||||
}
|
||||
process_min_avail = 6
|
||||
service_count = 0
|
||||
}
|
||||
service pop3 {
|
||||
process_limit = 16384
|
||||
}
|
||||
```
|
||||
|
||||
#### SASL
|
||||
Pour le service d'authentification SASL, on souhaite qu'il ne soit accessible
|
||||
qu'en local et en clair. On ne définit donc qu'un seul bloc d'écoute en local
|
||||
sur le port `4242` (il n'y a pas de port réservé par l'IANA pour le protocole).
|
||||
```
|
||||
service auth {
|
||||
client_limit = 1024
|
||||
inet_listener {
|
||||
address = 127.0.0.1, [::1], {{ dovecot.inet_listener }}
|
||||
port = 4242
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 10-ssl.conf
|
||||
Dans ce fichier on se contente de dire à dovecot où trouver nos certificats pour
|
||||
les connextions chiffrées :
|
||||
```
|
||||
ssl_cert = </etc/letsencrypt/live/crans.org/fullchain.pem
|
||||
ssl_key = /etc/letsencrypt/live/crans.org/privkey.pem
|
||||
```
|
Loading…
Reference in New Issue