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
ettutu@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 groupemail
. 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.