LINUX:Postfix et Dovecot-Configuration de Station de Travail autonome

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

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