Skip to content

Documentation du service MAIL

vbrichant edited this page Jun 8, 2022 · 11 revisions

Organisation des configurations

Les fichiers de configuration du service Mail se trouvent ici.

Ils sont répartis dans 4 dossiers comportant chacun le nom du service concerné. Ces 4 dossiers sont contenus dans le dossier "config"

Postfix:

nom du fichier Description du fichier
main.cf ficher de configuration principal de Postfix
master.cf ficher de configuration des processus utilisés par Postfix
generic fichier de configuration de l'adresse mail que prendra le serveur lorsqu'il enverra lui-même des emails(no-reply@l1-4.ephec-ti.be)
vmailbox fichier indiquant les chemins pour les mailbox des différentes adresses
mysql-virtual-mailbox-domains.cf fichier contenant les informations de connexion à la DB et la requête SQL pour récupérer le domaine virtuel utilisé
mysql-virtual-mailbox-maps.cf fichier contenant les informations de connexion à la db et la requête SLQ pour récupérer la maildir correspondant à une adresse spécifique

Dovecot:

nom du fichier Description du fichier
10-auth.conf fichier de configuration de l'authentification
10-mail.conf fichier de configuration des mailbox
10-ssl.conf fichier de configuration de ssl contenant les chemins de la clé et du certificat
20-lmtp.conf fichier d'activation du plugin Sieve dans Dovecot
10-master.conf fichier de configuration des protocoles utilisés et lien avec postfix pour l'authentification SMTP
10-logging.conf ficher de configuration des logs
auth-sql.conf.ext fichier permettant à Dovecot de savoir comment utiliser la DB
dovecot.conf fichier de configuration principale de Dovecot
dovecot-sql.conf.ext fichier contenant les informations de connexion à la DB ainsi que la requête pour vérifier les passwords lors de l'authentification
default.sieve fichier de configuration de Sieve

SQL:

nom du fichier Description du fichier
create-db.sql script permettant de créer la DB et les tables
create-table.sql script permettant de remplir les tables de la DB

Spamassassin:

nom du fichier Description du fichier
spamassassin fichier de configuration principal de spamassassin lui permettant d'être actif
local.cf ficher permettant de configurer le niveau de filtre

Maintenance

Procédure pour mettre à jour le(s) logiciel(s) serveur(s)

  1. Stopper le service en question service XXX stop

  2. Mettre à jour le service

Mettre à jour Postfix : sudo apt-get upgrade postfix postfix-mysql

Mettre à jour Dovecot : sudo apt-get upgrade dovecot-core dovecot-imapd dovecot-mysql dovecot-sieve dovecot-managesieved

Mettre à jour Mariadb : sudo apt-get upgrade mariadb-server

Mettre à jour Spamassassin : sudo apt-get upgrade spamassassin spamc

  1. redémarrer les différents services mis à jour service XXX start

Note : Si par exemple on ne veut mettre à jour que dovecot-imapd -> sudo apt-get upgrade dovecot-imapd

Procédure en cas d'ajout d'un nouvel utilisateur

  1. Connection à mysql : mysql -u mailUser -p
  2. Entrer le password de l'utilisateur mailUser
  3. utiliser la commande :
INSERT INTO `virtual_users`
(`domain_id`, `password` , `email`, `maildir`)
VALUES
('[domaine]', ENCRYPT('[password]', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[nom.prénom]@l1-4.ephec-ti.be', 'l1-4.ephec-ti.be/[nom.prénom]/');
  1. Ajouter le bloc de code suivant au fichier create_table.sql
INSERT INTO `mail`.`virtual_users`
(`id`, `domain_id`, `password` , `email`, `maildir`)
VALUES
('[id]', '[domaine]', ENCRYPT('[password]', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[nom.prénom]@l1-4.ephec-ti.be', 'l1-4.ephec-ti.be/[nom.prénom]/');

Note : les valeurs entre les crochets sont à remplacer par des valeurs adéquates

Procédure en cas de départ d'un employé

  1. Connection à mysql : mysql -u mailUser -p
  2. Entrer le password de l'utilisateur mailUser
  3. utiliser la commande :
Delete FROM `virtual_users` WHERE email='[nom.prenom]@l1-4.ephec-ti.be';
  1. Supprimer du serveur le dossier mailbox de l'employé :
rm -r var/mail/vhost/l1-4.ephec-ti.be/[nom.prénom]
  1. Modifier le fichier create_table.sql afin que l'adresse ne soit pas recréée en cas de recréation de la DB/table
  2. Modifier etc/postfix/vmailbox et retirer la ligne correspondant à l'employé

Note : les valeurs entre les crochets sont à remplacer par des valeurs adéquates

Procédure en cas de modification d'une adresse mail

  1. Connection à mysql : mysql -u mailUser -p
  2. Entrer le password de l'utilisateur mailUser
  3. utiliser les commandes :
UPDATE `virtual_users` SET email='[nouveau nom d'utilisateur]@l1-4.ephec-ti.be' WHERE email='[ancien nom d'utilisateur]@l1-4.ephec-ti.be';
UPDATE `virtual_users` SET maildir='l1-4.ephec-ti.be/[nouveau nom d'utilisateur]' WHERE email='[nouveau nom d'utilisateur]@l1-4.ephec-ti.be';
  1. Modifier le fichier create_table.sql afin que l'adresse ne soit pas recréée avec l'ancien nom d'utilisateur en cas de recréation de la DB/table
  2. Modifier etc/postfix/vmailbox et modifier la ligne correspondant à l'employé

Procédures pour obtenir un certificat SSL délivré par une autorité de certification(letsencrypt)

Note : il faut utiliser une adresse mail appartenant au domaine l1-4.ephec-ti.be

Dovecot

  1. Obtention du certificat pour Dovecot sudo certbot certonly --standalone -d mail.l1-4.ephec-ti.be
  2. Modifier le fichier /etc/dovecot/conf.d/10-ssl.conf

Postfix

  1. Obtention du certificat pour Postfix sudo certbot certonly --standalone -d smtp.l1-4.ephec-ti.be
  2. Modifier le fichier /etc/postfix/main.cf

Troubleshooting

Procédures et collecte d'informations

En cas de dysfonctionnement, voici les éléments à observer pour trouver des informations de debug :

  • Chemin pour accéder aux logs :

Postfix : var/log/postfix.log

Dovecot : var/log/dovecot.log var/log/dovecot-debug.log var/log/dovecot-info.log

Spamassassin : var/log/spamassassin/spamd.log

  • Procédure de test 1 : Vérifier le statut des services service [nom_du_service] status

  • Procédure de test 2 : Vérifier les records DNS correspondant au service mail

dig MX l1-4.ephec-ti.be Retour attendu : l1-4.ephec-ti.be. 0 IN MX 10 mail.l1-4.ephec-ti.be.

dig mail.l1-4.ephec-ti.be Retour attendu : mail.l1-4.ephec-ti.be. 0 IN A 176.96.231.164

dig smtp.l1-4.ephec-ti.be Retour attendu : smtp.l1-4.ephec-ti.be. 0 IN A 176.96.231.164

  • Procédure de test 3 : Vérifier que les ports 25 143 583 et 993 sont bien ouverts et écoutent netstat -nltp

  • Procédure de test 4 : Utiliser mxtoolbox pour tester notre serveur

  • Procédure de test 5 : Utiliser telnet pour tester la connexion au service

telnet localhost 143`
a1 LOGIN [nom.prénom]@l1-4.ephec-ti.be [password]
a2 LOGOUT
telnet localhost 25
EHLO mail.l1-4.ephec-ti.be

Erreurs fréquentes

  • Vérifier la bonne syntaxe à utiliser dans les fichiers (ainsi que l'orthographe)
  • Toujours redémarrer le service après avoir fait une modification dans la configuration d'un service (pour le Dockerfile)
  • Les fichiers de Dovecot se mettent à l'emplacement /etc/dovecot/conf.d/ et non à l'emplacement etc/dovecot/
  • Il faut modifier les fichiers main.cf(postfix) et 10-ssl.conf pour utiliser le bon certificat (letsencrypt et pas openssl)
  • Il faut activer spamassassin dans le fichier master.cf (postfix) pour qu'il soit pris en compte.
  • Il faut obtenir un certificat qui n'est pas auto-signé pour pouvoir contacter une adresse extérieure au domaine
  • Il faut vérifier si l'adresse IP utilisée n'est pas dans une blacklist (par exemple avec MXtoolbox), sinon les serveurs SMTP d'autres domaines rejettent automatiquement les emails envoyés.

Screenshot des différents logs

Postfix

  • var/log/postfix.log

image

Dovecot

  • var/log/dovecot.log

image

  • var/log/dovecot-info.log

image

Spamassassin

  • var/log/spamassassin/spamd.log

image

Clone this wiki locally