fbpx

 

Installer et  configurer Dovecot

dovecot postfix pour la messagerie

Chapitre

En premier lieu nous installons Dovecot pour poursuivre l’installation du serveur postfix puis nous utilisons la commande suivante :

# apt install dovecot dovecot-pop3d dovecot-imapd dovecot-managesieved dovecot-mysql

Ainsi Sieve permet de placer les mails automatiquement dans des dossiers.

Configuration de Dovecot

Pour commencer nous devons ouvrir le fichier /etc/dovecot/dovecot.conf.

Ainsi nous allons activer le protocole Imap pour la récupération des mails.
Puis nous ajoutons le protocole Lmtp pour l’acheminement des mails entre Postfix et Dovecot.
D’où nous pouvons dé-commenter la ligne !include conf.d/*.conf.

!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp listen = *
# Assurez-vous que cette ligne est bien dé-commentée :
!include conf.d/*.conf

Effectivement nous allons modifier les six fichiers qui sont très important pour la configuration de Dovecot /etc/dovecot/conf.d.

  • dovecot-sql.conf.ext
  • 10-mail.conf
  • 10-auth.conf
  • 10-master.conf
  • 10-ssl.conf
    20-imap.conf
    20-lmtp.conf
  • 15-mailboxes.conf
  • 90-quota.conf
  • dovecot-dict-sql.conf.ext
  • quotas-warning.sh

En premier vous modifiez le fichier /etc/dovecot/dovecot-sql.conf.ext :

mysql

# Paramètres de connexion
driver = mysql
connect = host=127.0.0.1
dbname=postfix
user=postfix
password=MOT DE PASSE# Permet de définir l’algorithme de hachage.
# Pour plus d’information: http://wiki2.dovecot.org/Authentication/PasswordSchemes# /!\ ATTENTION : ne pas oublier de modifier le paramètre $CONF[‘encrypt’] de PostfixAdmin
default_pass_scheme = MD5-CRYPT

iterate_query = SELECT username AS user FROM mailbox
user_query = SELECT CONCAT(‘/var/mail/vmail/’,maildir) AS home, \
CONCAT(‘maildir:/var/mail/vmail/’,maildir) AS mail, \
5000 AS uid, 5000 AS gid, CONCAT(‘*:bytes=’,quota) AS quota_rule \
FROM mailbox WHERE username = ‘%u’ AND active = 1

# Requête de récupération du mot de passe du compte utilisateur
password_query = SELECT username AS user,password FROM mailbox \
WHERE username = ‘%u’ AND active=’1′

En outre vous devez modifier les permissions sur le répertoire /etc/dovecot :

chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot

Vous devez modifier le fichier /etc/dovecot/conf.d/10-mail.conf  où se trouve tous nos mails.

# Le contenur local est organisé de cette manière :
# /var/mail/vhosts/domain.com/utilisateur
mail_location = maildir:/var/mail/vhosts/%d/%n/mail
maildir_stat_dirs=yes
namespace inbox {
inbox = yes
}
mail_uid = 5000 ou vmail
mail_gid = 5000 ou vmail
first_valid_uid = 5000
last_valid_uid = 5000
mail_privileged_group = vmail
mail_plugin = quota
 

En deuxième lieu vous éditez le fichier /etc/dovecot/conf.d/10-auth.conf . Ainsi vous pouvez modifier les lignes suivantes :

disable_plaintext_auth = yes
auth_mechanisms = plain login
# décommenter cette ligne
!include auth-sql.conf.ext

De plus Dovecot nous interroge sur la manière que les utilisateurs se connectent :

  • soit par la base de donnée
  • où par local

De surcroît vous éditer le fichier /etc/dovecot/conf.d/10-master.conf  pour activer le port 143 et 993 du protocole Imap.

service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}

service imap {
}

service lmtp {

# On autorise Postfix à transférer les emails dans le spooler de Dovecot via LMTP
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}

service auth {

# On autorise Postfix à se connecter à Dovecot via LMTP
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}

# On indique à Dovecot les permissions du conteneur local

unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}

user = dovecot
}

service auth-worker {
user = vmail
}

Activer le SSL/TLS dans /etc/dovecot/conf/10-ssl.conf

ssl = yes

ssl_cert = </etc/letsencrypt/live/mail.domaine.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.domaine.com/privkey.pem
ssl_dh = </etc/ssl/certs/dhparam.pem
ssl_cipher_list = ALL:!aNULL:!eNULL:!LOW:!MEDIUM:!EXP:!RC2:!RC4:!DES:!3DES:!MD5:!PSK:!SRP:!DSS:!AECDH:!ADH:@STRENGTH
ssl_prefer_server_ciphers = yes

Pour paramétrer le DH utiliser cette commande :Diffie-Hellman

Pour avoir plus d’information merci de lire https://linuxize.com/post/secure-nginx-with-let-s-encrypt-on-ubuntu-16-04/

openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Avtiver le plugin des quota /etc/dovecot/conf.d/20-imap.conf

protocol imap {
mail_plugins = $mail_plugins imap_quota
}

/etc/dovecot/conf.d/20-lmtp.conf

protoco lmtp {
postamaster_address = postmaster@domaine.com
mail_plugins = $mail_plugins
}

/etc/dovecot/conf.d/15-mailboxes.conf

namespace inbox {
# These mailboxes are widely used and could perhaps be created automatically:
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Trash {
special_use = \Trash
}

# For \Sent mailboxes there are two widely used names. We’ll mark both of
# them as \Sent. User typically deletes one of them if duplicates are created.
mailbox Sent {
special_use = \Sent
}
mailbox “Sent Messages” {
special_use = \Sent
}

Nous avons de type de quotas différent :

  • l’ensemble du domaine
  • chaque boîte utilisateur

Nous allons demander à Dovecote une limite de quota.
Afin qu’il exécute un script qui envoie un courrier à l’utilisateur lorsque le quota de l’utilisateur dépasse une limite spécifiée.
Pour ce faire, ouvrez le fichier /etc/dovecot/conf.d/90-quota.conf et modifiez-le comme suit :

plugin {
quota = dict:User quota::proxy::sqlquota
quota_rule = *:storage=5GB
quota_rule2 = Trash:storage=+100M
quota_grace = 10%%
quota_exceeded_message = Votre Quota dépassé, veuillez contacter votre administrateur système.
quota_warning = storage=100%% quota-warning 100 %u
quota_warning2 = storage=95%% quota-warning 95 %u
quota_warning3 = storage=90%% quota-warning 90 %u
quota_warning4 = storage=85%% quota-warning 85 %u
}
service quota-warning {
executable = script /usr/local/bin/quota-warning.sh
user = vmail

unix_listener quota-warning {
group = vmail
mode = 0660
user = vmail
}
}

dict {
sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}

Comment Dovecot doit accéder au dictionnaire SQL des quotas.

Ouvrez le fichier /etc/dovecot/dovecot-dict-sql.conf.ext et éditez les lignes suivantes :

connect = host=127.0.0.1
dbname=postfixadmin
user=postfix
password=postfix

map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}

# map {
# pattern = shared/expire/$user/$mailbox
# table = expires
# value_field = expire_stamp
#
# fields {
# username = $user
# mailbox = $mailbox
# }
# }

Envoyer automatiquement une alerte de courrier électronique à l’utilisateur avec un script.

Si son quota dépasse une limite spécifiée :

#!/bin/sh
PERCENT=$1
USER=$2
cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o “plugin/quota=dict:User quota::noenforcing:proxy::sqlquota”
From: postmaster@domaine.com
Subject: Avertissement sur les quotas

Votre boîte aux lettres est maintenant $PERCENT% pleine.
EOF

Rendre le script exécutable :

chmod +x /etc/dovecot/alerte_quota.sh

Pour cette raison sous devons redémarrer Postfix ainsi que Dovecot pour la prise en compte des changements.

systemctl restart postfix.service
systemctl restart dovecot.service

Par conséquent votre serveur est configurer pour envoyer et recevoir des mails. Partant de ce fait, il nous reste à tester la configuration.

C’est pourquoi nous avons fait un article pour vérifier le serveur de mail.

En outre vous pouvez continuer avec le lien suivant : postfix installer configurer serveur de messagerie partie 7/8[/vc_column_text][/vc_column][/vc_row]

%d blogueurs aiment cette page :