MAIL - a-kalin0/Admin-Projet-CAA GitHub Wiki

Mail

Notre conteneur mail va permettre à nos users de s'envoyer des mails dans l'intranet. Les fichiers de configuration du service sont les suivants : Dockerfile, dovecot.conf et main.cf.


Dockerfile

FROM ubuntu:latest

MAINTAINER 2TL1-1

RUN apt update
RUN apt install dovecot-imapd dovecot-pop3d -y
RUN apt install postfix -y

COPY dovecot.conf /etc/dovecot/
COPY main.cf /etc/postfix/

RUN adduser arthur && echo "arthur:arthur" | chpasswd
RUN adduser anthony && echo "anthony:anthony" | chpasswd

EXPOSE 25 143 110

CMD service postfix start && service dovecot start && tail -f /dev/null

Explication :

Ce Dockerfile créer une image basée sur la dernière version d'Ubuntu.

Le mainteneur de cette image est identifié comme étant le groupe 2TL1.

Ensuite, il y a plusieurs commandes RUN qui sont exécutées pour installer les services de messagerie Dovecot et Postfix sur l'image Ubuntu.

Les fichiers de configuration dovecot.conf et main.cf sont ensuite copiés depuis le répertoire local vers le répertoire correspondant dans l'image.

La commande EXPOSE est utilisée pour spécifier les ports qui doivent être exposés pour que les conteneurs puissent y accéder depuis l'extérieur. Dans notre cas, les ports 25, 143 et 110 sont exposés pour la communication SMTP, IMAP et POP3, respectivement.

Les commandes RUN permettent d'ajouter les users dont on a besoin pour le mail.

Enfin, la commande CMD spécifie les commandes à exécuter lorsque le conteneur est lancé. Dans notre cas, le service Postfix et le service Dovecot sont démarrés, puis la commande tail -f /dev/null est exécutée pour maintenir le conteneur en cours d'exécution sans rien faire.


Dovecot.conf

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/m>
mail_privileged_group = mail
#Indiquer        dovecot o       sendmail stocke les mails et o       il peut c>
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

Explication :

  • Les protocoles POP3 et IMAP sont activés.
  • Les utilisateurs sont stockés dans la base de données des mots de passe système (shadow) et dans la base de données des utilisateurs système (passwd).
  • Dovecot doit appartenir au groupe "mail" pour avoir les autorisations nécessaires sur le dossier de stockage de courrier.
  • La localisation du courrier est définie comme mbox (format de stockage de courrier UNIX) dans le dossier de messagerie de l'utilisateur (~ / mail) et la boîte de réception est stockée dans /var/mail/%u.
  • Le SSL est désactivé pour faciliter le TP.
  • La journalisation est activée avec un niveau de détail élevé pour les authentifications et les messages d'erreur.

Main.cf

# Define server identity
myhostname = mail.woodytoys.lab
mydomain = woodytoys.lab

# Outgoing mail must use this as source address domain
myorigin = $mydomain
# Accepting local mail delivery for those destinations
mydestination = $myhostname localhost.$mydomain localhost $mydomain

smtpd_banner = $myhostname ESMTP $mail_name

# Network from which we accept smtp connexions
mynetworks = 172.20.1.0/24 127.0.0.0/8 [::1]/128
smtpd_relay_restrictions = permit_mynetworks, reject

#Log configuration
maillog_file=/var/log/postfix.log
#debug_peer_list = woodytoys.lab
#debug_peer_level = 5

Explication :

Il définit les paramètres du serveur de messagerie tels que son identité, son domaine, les domaines acceptant le courrier électronique, les réseaux autorisés à envoyer du courrier électronique via le serveur SMTP, les restrictions d'accès pour les relais SMTP, etc.


Lancement du conteneur

Voir : DOCKER-COMPOSE


Test de fonctionnement

  • Tester le mail : mutt

image


Maintenance MAIL

Voici un petit guide de maintenance de notre service mail.


  • Ajout / Modification / Suppression d'un utilisateur mail

    • Dans le conteneur de l'utilisateur ==> adduser "nom" et suivre les étapes + ajouter le fichier .muttrc (le créer de préférence avant pour gagner du temps)
    • Dans le conteneur mail ==> ajouter les users avec les mêmes paramètres et ceux des conteneurs users

  • Troubleshooting

Si vous êtes sur docker desktop, les logs se trouvent dans un onglet dédié, vous pouvez voir les logs et les éventuelles erreurs pour chaque conteneurs


  • Mises à jour

    • Connectez-vous au serveur via SSH.
    • Mettez à jour la liste des paquets disponibles : sudo apt-get update.
    • Mettez à jour les services qui peuvent être mis à jour : sudo apt list --upgradable.
    • Mettez à jour un service spécifiquement : sudo apt-get install --only-upgrade "service". Ici postfix ou dovecot.

  • Erreurs fréquentes et solutions
  1. Problèmes d'envoi de mail ou de connexion à la boite mail

    • Bien vérifier si les users sont ajoutés et si les fichiers .muttrc sont bien configurés
    • Analyser les logs du conteneurs mail
    • Vérifier les liens de fichiers, les noms de fichiers, l'adressage IP et si les fichiers sont correctement écrits