Table des matières

1. Objectifs

Ce dernier TP va permettre de compléter la réalisation de la semaine dernière en ajoutant la consultation des messages au service de courrier électronique mis en place sur base de Postfix.   

A la fin de ce TP, vous devrez : 

  • Connaître les bases des protocoles IMAP et POP et leur rôle dans la récupération/consultation des emails. 
  • être capable de mettre en place un serveur Dovecot avec une configuration basique, et valider son fonctionnement par la consultation d’emails 
  • pouvoir interagir avec un serveur POP/ IMAP via l’utilitaire telnet
  • Pouvoir modifier le comportement du serveur Dovecot  sur base des fichiers de configuration
  • Utiliser les outils adéquat pour observer les transmissions/consultations d’email : netstat, Wireshark et les fichiers de logs des serveurs.

2. Configuration

Dovecot est un serveur Open Source capable de gérer la récupération d’email avec POP ou IMAP.  Nous allons l’installer et l’utiliser pour consulter les mails reçus par notre serveur postfix.  

Préalable

Afin de réaliser ce TP, vous devez disposer d’un labo GNS3 avec : 

  • Les services DNS et DHCP activés
  • Un serveur mail avec min. deux utilisateurs Unix configurés (par ex. toto et tutu)
  • Un serveur Postfix fonctionnel, à partir duquel il est possible d’envoyer des emails à toto@woodytoys.lab et tutu@woodytoys.lab.  Les emails doivent être consultables dans les fichiers mailbox /var/mail/toto et /var/mail/tutu.  Assurez vous que ces fichiers existent, et contiennent idéalement des emails.  Ils doivent appartenir aux utilisateurs correspondants, et permettre l’édition au groupe mail.  Vérifiez également l’existence des répertoire /home/toto et /home/tutu

1.  Fichiers de configuration

Sans surprise, vous trouverez les fichiers de configuration de dovecot dans /etc/dovecot. Ceux-ci sont organisés de manière”classique” : Un fichier principal dovecot.conf, lequel inclut des sous-fichiers de configuration dans le répertoire conf.d.  Ces sous-fichiers sont classés par “thème”. Vous pouvez les examiner, mais a priori, ces configurations sont trop complexes pour l’usage que nous ferons du serveur dovecot. Nous allons donc repartir d’un fichier vierge. 

Copiez donc le fichier de configuration actuelle dans un backup : 

cp dovecot.conf dovecot.conf_bck

puis effacez-en le contenu : 

echo "" > dovecot.conf

Editez à présent dovecot.conf avec nano, avec les directives suivantes : 

protocols = pop3 imap
#Utilisation des utilisateurs systèmes et des shadow password
passdb {
  driver = shadow
}
userdb {
  driver = passwd
}

#Dovecot doit faire partie du groupe mail pour avoir les permissions sur /var/mail
mail_privileged_group = mail
#Indiquer à dovecot où sendmail stocke les mails et où il peut créer ses INBOX
mail_location = mbox:~/mail:INBOX=/var/mail/%u
#Pas de ssl par facilité dans le cadre du TP
ssl=no
disable_plaintext_auth = no
#Configuration des logs : On veut un maximum d'information
log_path=/var/log/dovecot.log
auth_verbose = yes 
auth_verbose_passwords = yes
auth_debug = yes 
auth_debug_passwords = yes 
mail_debug = yes

Prenez le temps d’examiner cette configuration simplifiée : A quoi sert chacune des lignes? 

Remarquez notamment que nous utilisons les utilisateurs système du serveur comme utilisateurs du service mail.  Il s’agit de la gestion la plus basique des utilisateurs, d’autres formules sont évidemment possibles (utilisateurs virtuels, BDD, LDAP, …) mais nous ne les verrons pas ici.  

2. Démarrage et test du serveur

Démarrez à présent le serveur Dovecot avec la commande suivante : 

dovecot

Vérifiez avec ps et netstat qu’il tourne comme attendu.  Utilisez ensuite telnet sur les ports 110 et 143 pour consulter les emails de vos utilisateurs, en POP et en IMAP.  Vous trouverez des exemples de conversation avec ces protocoles  ici

3. Configuration d’un client POP/IMAP

A présent que les emails sont consultables en POP/IMAP, nous allons mettre en place un client mail sur les postes clients, afin que les employés puissent consulter leurs messages sur le serveur mail distant.  

Pour cela, nous allons utiliser mutt, qui est un client mail en console.  Il se configure sur base d’un fichier .muttrc, à placer dans le répertoire home de l’utilisateur.  

Nous allons configurer un compte pour l’utilisateur toto sur le poste de la direction.  Par facilité, créez un utilisateur toto sur ce poste.  Il n’est pas obligatoire que l’utilisateur unix du client soit le même que l’utilisateur sur le serveur mail, mais cela va nous faciliter la vie.  Créez également un utilisateur tutu sur le poste de l’atelier.

Loggez vous ensuite avec l’utilisateur toto sur le poste du directeur, et allez dans /home/toto pour créer un fichier .muttrc dans lequel vous indiquerez la configuration ci-dessous.  Celle-ci indique à mutt d’utiliser le serveur Dovecot pour la consultation d’email avec IMAP, et le serveur Postfix pour l’envoi.  

set from="toto@woodytoys.lab"
set ssl_starttls=no
set ssl_force_tls=no
set smtp_url = "smtp://mail.woodytoys.lab:25"

# Imap settings
set spoolfile="imap://toto@mail.woodytoys.lab/"
set imap_user = "toto@woodytoys.lab"
set imap_pass = "toto"
set folder = "imap://toto@mail.woodytoys.lab/"

set editor = "nano"

Faites la même configuration pour l’utilisateur tutu sur le poste de l’atelier.

Testez ensuite si vous pouvez consulter les emails de toto depuis le poste de la direction, ainsi qu’envoyer des emails à tutu, et recevoir des réponses de sa part.  N’oubliez pas d’allumer Wireshark pour observer ce qui passe sur le réseau.