LINUX:Postfix et Dovecot-Configuration de Station de Travail autonome
→ retour au menu de concernant la messagerie
But
Quand on utilise une Station de Travail, les programmes en routines régulières renvoient leurs résultats ou alarmes sous forme de mails locaux. Ce cas va être abordé dans le cadre d'une Station de Travail équipée de Linux Mint 22.3.
Par exemple, si on active l'anti-virus ClamAv et la détection de RootKits, Rkhunter, on utilise le service Cron pour effectuer une vérification systématique journalière. Le service Cron génère par défaut un rapport sous forme de mail.
Cet article a pour objectif de pouvoir consulter ces messages grâce à une configuration locale et autonome.
Cette opération est composée de trois volets:
- Postfix : serveur de messagerie SMTP qui récupère les messages générés par les services d'alertes du système (service Cron par exemple)
- Dovecot : serveur de messagerie IMAP qui permet au client de messagerie de consulter ces messages
- Thunderbird : client de messagerie qui permet de lire les messages
Postfix
Ce service est activé localement sur la station de travail et n'a une activité que localement. On n'active pas le cryptage car le trafic est local et non nécessaire. Le port utilisé sera 25 (SMTP).
Installation
Normalement ce logiciel est installé. Mais on peut s'en assurer en exécutant la commande suivante adaptée pour Linux Mint:
apt install postfix
Configuration
Ce service nécessite trois fichiers:
- Contenu du fichier de configuration "/etc/postfix/main.cf". Les deux versions présentées diffèrent légèrement en fonction de la version et de la distribution sur base de la configuration de base.
- version sous Linux Mint:
# Configuration d'origine compatibility_level = 3.6 smtpd_banner = $myhostname ESMTP $mail_name (Mint) biff = no append_dot_mydomain = no mailbox_size_limit = 0 recipient_delimiter = + alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # Configuration spécifique myhostname = localhost mydestination = $myhostname, localhost.localdomain mynetworks = 127.0.0.1 inet_protocols = ipv4 inet_interfaces = loopback-only
- version sous Linux Fedora:
# Configuration d'origine
compatibility_level = 3.10
queue_directory = /var/spool/postfix
command_directory = /usr/bin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
meta_directory = /etc/postfix
shlib_directory = /usr/lib64/postfix
mail_owner = postfix
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/bin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mailbox_size_limit = 0
# Configuration spécifique
myhostname = localhost
mydestination = $myhostname, localhost.localdomain
mynetworks = 127.0.0.1
inet_interfaces = loopback-only
inet_protocols = ipv4
- Contenu du fichier de configuration "/etc/postfix/master.cf":
# ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (no) (never) (100) # ========================================================================== smtp inet n - y - - smtpd smtp unix - - y - - smtp local unix - n n - - local pickup unix n - y 60 1 pickup cleanup unix n - y - 0 cleanup qmgr unix n - n 300 1 qmgr tlsmgr unix - - y 1000? 1 tlsmgr rewrite unix - - y - - trivial-rewrite bounce unix - - y - 0 bounce defer unix - - y - 0 bounce trace unix - - y - 0 bounce verify unix - - y - 1 verify flush unix n - y 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap showq unix n - y - - showq error unix - - y - - error retry unix - - y - - error discard unix - - y - - discard anvil unix - - y - 1 anvil scache unix - - y - 1 scache postlog unix-dgram n - n - 1 postlogd
- Contenu du fichier de configuration "/etc/aliases" où on ajoute la ligne suivante. Il permet le transfert des messages destiné à l'utilisateur "root" vers l'utilisateur local de la station de travail, ici "ebertrand":
... root: ebertrand
Lancement
La première étape consiste à recréer la base de données "/etc/aliases.db" sur base du fichier "/etc/aliases":
newaliases
Ensuite on active et lance le service Postfix:
systemctl enable postfix.service systemctl start postfix.service
Test
On peut tester ce service par l'envoi d'un mail avec la commande "mail".
mail root
On répond aux questions comme expliqué dans un article connexe. A la suite de cette opération, le fichier "/var/mail/ebertrand" de type "MBOX", du nom de l'utilisateur local, contiendra ce mail.
Dovecot
Ce logiciel va être configuré pour ne travailler que localement et il lira les messages placés dans un type de fichier "MBOX" du nom de l'utilisateur, se trouvant dans le répertoire "/var/mail". La version de Dovecot sur Linux Mint 22.3 est 2.3.21 alors que sur Linux Fedora, elle est 2.4.2.
Installation
Sous Linux Mint, il est nécessaire d'installer ce logiciel. On se limite au protocole IMAP.
apt install dovecot-imapd
Sous Linux Fedora, l'installation est globale:
dnf install dovecot
Configuration - Linux Mint
Sous Linux Mint, on est en présence de Dovecot ancienne version 2.3.21. La configuration principale est contenue dans le fichier "/etc/dovecot/dovecot.conf"
protocols = imap listen = 127.0.0.1 !include conf.local.d/*.conf
Il se limite à la machine locale et au protocole IMAP.
Il va lire le reste de sa configuration dans les fichiers de type ".conf" placés dans le sous-répertoire "/etc/dovecot/conf.local.d". Il faut le créer.
Le reste de la configuration est constituée d'un ensemble de fichiers à la nomenclature classique.
Voici les différents fichiers:
- 10-master.conf : Il définit le port utilisé (143) non crypté.
service imap-login {
inet_listener imap {
port = 143
}
# inet_listener imaps {
# port = 0
# }
}
- 10-ssl.conf : Il spécifie que le cryptage est désactivé.
sl = no
- 10-auth.conf : Il définit le type d'authentification basé sur celle de Linux.
auth_mechanisms = plain !include auth-system.conf.ext
- auth-system.conf.ext : C'est le fichier dépendant du précédent et qui le complète.
passdb {
driver = pam
}
userdb {
driver = passwd
}
- 10-mail.conf : Il définit le type de fichiers contenant les mails qui sont disponibles. Pour pouvoir le gérer l'utilisateur local devra appartenir au groupe Linux "mail".
mail_location = mbox:~/mail:INBOX=/var/mail/%u
namespace inbox {
inbox = yes
}
mail_privileged_group = mail
- 10-mailboxes.conf : Il définit les différents autres dossiers IMAP se trouvant dans l'espace LINUX de l'utilisateur local.
namespace inbox {
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Trash {
special_use = \Trash
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
}
Les fichiers et dossiers définit juste ci-dessus se trouveront dans le répertoire de l'utilisateur dans le dossier "mail". Habituellement le dossier de l'utilisateur se trouve dans le répertoire "/home", selon notre exemple "/home/ebertrand/mail".
Configuration - Linux Fedora
Sous Linux Fedora, on est en présence de Dovecot nouvelle version 2.4.2. La configuration est semblable à la précédente avec quelques adaptations. La configuration a été rassemblée dans un seul fichier, le principal: "/etc/dovecot/dovecot.conf" mais la séparation en plusieurs fichiers comme ci-dessus est acceptée.
dovecot_config_version = 2.4.2
dovecot_storage_version = 2.4.2
protocols {
imap = yes
}
service imap-login {
inet_listener imap {
port = 143
}
# inet_listener imaps {
# port = 0
# }
}
listen = 127.0.0.1
mail_home = /home/%{user}
mail_driver = maildir
mail_path = ~/mail
first_valid_uid = 1000
ssl = no
auth_allow_cleartext = no
auth_mechanisms = plain
passdb pam {
}
userdb passwd {
}
mail_driver = mbox
mail_path = ~/mail
mailbox_list_utf8 = yes
mail_inbox_path = /var/mail/%{user}
mail_privileged_group = mail
namespace inbox {
inbox = yes
separator = /
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Trash {
special_use = \Trash
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
}
!include_try conf.d/*.conf
Droit de l'utilisateur
Il faut s'assurer maintenant que l'utilisateur qui va interroger et gérer sa boite mail de type MBOX appartient bien au groupe LINUX "mail".
On modifie la ligne correspondante dans le fichier "/etc/group". Dans notre exemple, on ajoute l'utilisateur "ebertrand":
... mail:x:8:ebertrand ...
Attention, le n° du groupe d'origine (ici 8) ne doit pas être modifié. Il dépend du processus d'installation. Si plusieurs utilisateurs doivent être ajoutés, on les sépare par une virgule.
Lancement
On active et lance le service Postfix:
systemctl enable dovecot.service systemctl start dovecot.service
Thunderbird
Le logiciel Thunderbird est un client de messagerie courant.
Installation
Normalement ce logiciel est installé. Mais on peut s'en assurer en exécutant la commande suivante adaptée pour Linux Mint:
apt install thunderbird
Type de stockage des messages
Par défaut, Thunderbird stocke tous ses messages dans un fichier par dossier (MBOX). Mais comme nous voulons analyser périodiquement nos messages par l'anti-virus ClamAV, il est préférable que chaque message soit individualisé dans un fichier propre. De cette façon, si un message contient un virus, il pourra facilement être mis en quarantaine ou supprimé.
Nous devons donc changer ce type de stockage par défaut et opter pour le type MAILDIR. Cette opération ne sera effective que pour tout nouveau compte créé. Il faut donc le faire tout au début. Notons que cette configuration et les messages associés se trouvent dans le répertoire de l'utilisateur, sous le répertoire ".thunderbird". Si on veut repartir d'une situation vierge, il suffit de détruire ce répertoire.
Au lancement initial de Thunderbird, il nous demande de configurer un nouveau compte de messagerie. Mais comme nous voulons effectuer au préalable un changement de paramètre, on la quitte. Nous obtenons l'écran suivant.

On clique sur l'icône en bas à gauche ayant la forme d'une roue dentée. Elle donne accès aux paramètres généraux.
Dans le menu de gauche, on active le premier "Général". Dans la partie droite, on va tout en bas et dans la partie "Indexation", à la seconde ligne, on choisit le type de stockage "Un fichier par message (maildir)". On sort de cet écran et on relance Thunderbird afin que l'écran de création d'un compte réapparaisse.

Configuration du compte local
Maintenant nous allons configurer le compte qui permet de gérer les messages du système local configuré lors des deux points précédents.
On remplit l'écran suivant. L'adresse mail commence par le nom de l'utilisateur LINUX de la machine locale suivie du nom de domaine local par défaut "@localhost". Le mot de passe est celui de cet utilisateur LINUX. On valide en cliquant sur le bouton "Continuer".

Thunderbird nous propose une configuration IMAP. Nous désirons effectuer quelques modifications optionnelles. On clique en bas sur le texte "Configuration manuelle".

Dans cet écran on change le nom des serveurs "imap.localhost" et "smtp.localhost" par "localhost". Et on clique sur le bouton "Retester". Si tout est bon, on clique sur le bouton "Terminé".

Un avertissement nous informe que les transferts ne seront pas chiffrés, ce qui est conforme avec notre configuration de Postfix et Dovecot. On confirme.

Un écran final nous informe que l'opération est bien terminée. On le quitte. On est à pied d'oeuvre. Si nous avons fait le test avec l'application "mail" en ligne de commande, nous pourrons lire ce message.
On peut dès lors ajouter d'autres comptes de messagerie classiques.
→ retour au menu de concernant la messagerie