Serveur mail (CentOS 6.5) 2/6 : Installation et configuration de Dovecot

Dovecot est un serveur IMAP et POP3.

Installation de Dovecot

Pour installer Dovecot, nous allons taper la commande suivante :

1
# yum install dovecot

Configuration de Dovecot

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.ori

Nous allons activer le support IMAP et POP3 dans Dovecot. Pour cela on édite le fichier « dovecot.conf » via la commande suivante :

1
# vi /etc/dovecot/dovecot.conf

On décommente et on modifie la ligne 20 comme suit :

1
protocols = imap pop3

Nous allons configurer Dovecot pour qu’il n’écoute qu’en IPv4. Pour cela on décommente et on modifie la ligne 26 comme suit :

1
listen = *

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.ori

Nous allons paramétrer l’authentification sur Dovecot. Pour cela, on édite le fichier de configuration « 10-auth.conf » via la commande suivante :

1
# vi /etc/dovecot/conf.d/10-auth.conf

On décommente la ligne 9 :

1
disable_plaintext_auth = no

Comme le serveur va gérer plusieurs domaine, nous devons modifier le format de l’utilisateur lors de la connexion pour exiger que le domaine associé à l’utilisateur soit renseigné. Pour cela on modifie la ligne 50 comme suit :

1
auth_username_format = %Ln@%d

On modifie la ligne 97 comme suit :

1
auth_mechanisms = plain login

Comme nous n’allons pas utiliser le service Director, nous allons le désactiver via la commande suivante :

1
# mv /etc/dovecot/conf.d/10-director.conf /etc/dovecot/conf.d/10-director.conf.disabled

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/conf.d/10-logging.conf /etc/dovecot/conf.d/10-logging.conf.ori

Nous allons modifier le chemin et le nom des fichiers de log de Dovecot. Pour cela, nous allons éditer le fichier « 10-logging.conf » via la commande suivante :

1
# vi /etc/dovecot/conf.d/10-logging.conf

On décommente la ligne 7 et on la modifie comme suit pour modifier le chemin du fichier de log de Dovecot :

1
log_path = /var/log/dovecot/dovecot.log

Nous allons loguer les authentifications qui ont échouées. Pour cela, on décommente et modifie la ligne 24 comme suit :

1
auth_verbose = yes

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.ori

Nous allons modifier le chemin de stockage des mails pour que chaque domaine corresponde à un répertoire et pareil pour les utilisateurs du domaine. Pour cela, nous allons éditer le fichier « 10-mail.conf » via la commande suivante :

1
# vi /etc/dovecot/conf.d/10-mail.conf

Pour cela on décommente la ligne 30 et on la modifie comme suit :

1
mail_location = maildir:/var/vmail/%d/%n

On joute les lignes suivantes à la fin du fichier :

1
2
3
4
mail_access_groups = vmail
default_login_user = vmail
first_valid_uid = 2222
first_valid_gid = 2222

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.ori

On édite le fichier « 10-master.conf » via la commande suivante:

1
# vi /etc/dovecot/conf.d/10-master.conf

On décommente la ligne 32 et on la modifie comme suit :

1
process_min_avail = 1

On ajoute la ligne suivante après la ligne 32 :

1
user = vmail

On décommente les lignes 82, 83 et 84 et on les modifie comme suit :

1
2
3
mode = 0600
user = vmail
group = vmail

On ajoute les lignes suivantes après la ligne 85 :

1
2
3
4
5
6
7
8
service auth {
  unix_listener auth-client {
  group = postfix
  mode = 0660
  user = postfix
  }
  user = root
}

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.ori

Nous allons désactiver le support du SSL dans Dovecot. Pour cela, nous allons éditer le fichier « 10-ssl.conf » via la commande suivante :

1
# vi /etc/dovecot/conf.d/10-ssl.conf

On décommente la ligne 6 et on la modifie comme suit :

1
ssl = no

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/conf.d/20-imap.conf /etc/dovecot/conf.d/20-imap.conf.ori

Nous allons activer le support des plugins pour IMAP dans Dovecot. Pour cela, nous allons éditer le fichier « 20-imap.conf » via la commande suivante :

1
# vi /etc/dovecot/conf.d/20-imap.conf

On décommente la ligne 16 :

1
mail_plugins = $mail_plugins

Comme nous n’allons pas utiliser le service lmtp, nous allons le désactiver :

1
# mv /etc/dovecot/conf.d/20-lmtp.conf /etc/dovecot/conf.d/20-lmtp.conf.disabled

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/conf.d/20-pop3.conf /etc/dovecot/conf.d/20-pop3.conf.ori

Nous allons activer le support des plugins pour POP3 dans Dovecot. Pour cela, nous allons éditer le fichier « 20-imap.conf » via la commande suivante :

1
# vi /etc/dovecot/conf.d/20-pop3.conf

On décommente la ligne 75 :

1
mail_plugins = $mail_plugins

Comme nous n’allons pas utiliser le service ACL, nous allons le désactiver

1
# mv /etc/dovecot/conf.d/90-acl.conf /etc/dovecot/conf.d/90-acl.conf.disabled

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

1
# cp /etc/dovecot/conf.d/auth-system.conf.ext /etc/dovecot/conf.d/auth-system.conf.ext.ori

Nous allons désactiver les paramètres d’authentification par défaut de Dovecot. Pour cela, nous allons éditer le fichier « auth-system.conf.ext » via la commande suivante :

1
# vi /etc/dovecot/conf.d/auth-system.conf.ext

On commente les lignes 10, 11, 15, 49, 51, 54 :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Ligne 10
#passdb {
  Ligne 11
  driver = pam
  Ligne 15
#}
Ligne 49
#userdb {
  Ligne 51
  driver = passwd
  Ligne 54
#}

On indique à Dovecot les nouveaux paramètres d’authentification en ajoutant les lignes suivantes à la fin du fichier :

1
2
3
4
5
6
7
8
passdb {
  driver = passwd-file
  args = scheme=SHA1 /etc/dovecot/passwd
}
userdb {
  driver = static
  args = uid=2222 gid=2222 home=/var/vmail/%d/%n allow_all_users=yes
}

On créer le répertoire qui contiendra les logs ainsi que le fichier de log de Dovecot via les commandes suivantes :

1
2
# mkdir /var/log/dovecot/
# touch /var/log/dovecot/dovecot.log

On démarre Dovecot pour prendre en compte les changements via la commande suivante :

1
# service dovecot start

Le premier démarrage générer un message d’erreur indiquant qu’il va fixer les droits de « /var/run/dovecot ». Le second démarrage ne doit entraîner aucune erreur. On redémarre Postfix pour prendre en compte les modifications, via la commande suivante :

1
# service postfix restart

Dans un premier temps nous générer un mot de passe (password) SHA1via la commande suivante :

1
# doveadm pw -s sha1 | cut -d '}' -f2

Il faut copier hash du mot de passe ainsi généré. Maintenant, nous allons créer le fichier ce dans lequel sera stocké l’utilisateur et son mot de passe via la commande suivante :

1
# touch /etc/dovecot/passwd

Ensuite édite le fichier qui contiendra l’utilisateur et son mot de passe, via la commande suivante :

1
# vi /etc/dovecot/passwd

On y ajoute :

1
user@mon-domaine.fr:W6ph5Mm5Pz8GgiULbPgzG37mj9g=

Nous allons modifier le propriétaire du fichier « passwd » pour ne le rendre accessible qu’a l’utilisateur « root ». Pour cela, nous tapons les commandes suivantes :

1
2
# chown root: /etc/dovecot/passwd
# chmod 600 /etc/dovecot/passwd

Nous allons configurer Postfix et Dovecot pour qu’ils se lancent au démarrage du serveur via les commandes suivantes :

1
2
# chkconfig --level 23 postfix on
# chkconfig --level 23 dovecot on

Nous allons maintenant ajouter les règles « iptables » pour autoriser les protocoles SMTP, POP3 et IMAP via les commandes suivantes :

1
2
3
4
5
6
7
8
9
### Allows SMTP et SMPTPS
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 465 -j ACCEPT
### Allows POP3 et POP3S
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT
### Allows IMAP et IMAPS
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT

Maintenant que les règles « iptables » sont créés, il faut les sauvegarder. Pour cela, nous allons taper la commande suivante :

1
# service iptables save

Pour ajouter une nouvelle adresse :

1
2
3
4
5
6
# vi /etc/postfix/vmail_mailbox
...
user1@mon-domaine.fr user1@mon-domaine.fr
 
# postmap /etc/postfix/vmail_mailbox
# service postfix restart

Pour ajouter un nouvel alias :

1
2
3
4
5
6
# vi /etc/postfix/vmail_aliases
...
user1@mon-domaine.fr user1@mon-domaine.fr
 
# postmap /etc/postfix/vmail_aliases
# service postfix restart

Pour ajouter un domaine :

1
2
3
4
5
6
# vi /etc/postfix/vmail_domains
...
mon-domaine1.fr OK
 
# postmap /etc/postfix/vmail_domains
# service postfix restart

Génération du hash du mot de passe et ajout de l’utilisateur:mot_de_passe dans le fichier « passwd » :

1
2
3
4
# doveadm pw -s sha1 | cut -d '}' -f2
# vi /etc/dovecot/passwd
...
user1@mon-domaine.fr:W6ph5Mm5Pz8GgiULbPgzG37mj9g=