Skip to content

TP7 cmd

PasRP-Theo edited this page Jun 9, 2025 · 9 revisions

TP7 - Sécurisation du service mail - Commandes pour l2-2

1. Configuration DNS préalable

1.1 Records DNS à ajouter dans votre zone

# Dans votre fichier de zone DNS, ajoutez :
mail.l2-2.ephec-ti.be.    IN A     <IP_DE_VOTRE_VPS>
l2-2.ephec-ti.be.         IN MX 10 mail.l2-2.ephec-ti.be.

1.2 Configuration du PTR

Envoyez un mail à M. Van den Schrieck avec :

  • Nom souhaité : mail.l2-2.ephec-ti.be
  • IP de votre VPS
  • Nom DNS actuel (vps-.vps.ovh.net)

2. Installation et configuration du serveur mail

2.1 Navigation vers le répertoire de travail

# Aller dans le répertoire tp7 (déjà créé)
cd ~/tp7

# Vérifier la structure existante
ls -la

2.2 Édition du fichier compose.yaml (déjà présent)

# Depuis le répertoire ~/tp7
nano compose.yaml

Modifiez la ligne hostname :

hostname: mail.l2-2.ephec-ti.be

2.3 Édition du fichier mailserver.env (déjà présent)

# Depuis le répertoire ~/tp7
nano mailserver.env

Modifiez :

SSL_TYPE=letsencrypt

2.4 Génération du certificat TLS

# Si pas encore fait, installer certbot
sudo apt update
sudo apt install certbot

# Générer le certificat pour le serveur mail
sudo certbot certonly --standalone -d mail.l2-2.ephec-ti.be

2.5 Modification du compose.yaml pour les volumes

nano compose.yaml

Ajoutez dans la section volumes :

volumes:
  - /etc/letsencrypt:/etc/letsencrypt:ro
  - ./docker-data/dms/mail-data/:/var/mail/
  - ./docker-data/dms/mail-state/:/var/mail-state/
  - ./docker-data/dms/mail-logs/:/var/log/mail/
  - ./docker-data/dms/config/:/tmp/docker-mailserver/

2.6 Vérification des répertoires docker-data (déjà créé)

# Vérifier la structure existante
ls -la docker-data/

# Si les sous-répertoires n'existent pas, les créer
mkdir -p docker-data/dms/{mail-data,mail-state,mail-logs,config}

3. Démarrage et configuration du serveur

3.1 Démarrage du serveur (depuis ~/tp7)

# S'assurer d'être dans le bon répertoire
cd ~/tp7

# Démarrer le serveur
docker compose up -d

3.2 Création des utilisateurs (à faire dans les 2 minutes après le démarrage)

# Identifier le nom du conteneur
docker ps

# Créer les utilisateurs (remplacez le nom du conteneur si nécessaire)
docker exec -it tp7-mailserver-1 setup email add user1@l2-2.ephec-ti.be
docker exec -it tp7-mailserver-1 setup email add user2@l2-2.ephec-ti.be

# Création de l'alias postmaster
docker exec -it tp7-mailserver-1 setup alias add postmaster@l2-2.ephec-ti.be user1@l2-2.ephec-ti.be

3.3 Vérification du statut

# Voir les logs
docker compose logs -f

# Vérifier les ports ouverts
docker ps
netstat -tlpn | grep -E ':(25|465|587|993|143)'

4. Configuration SPF

4.1 Ajout du record SPF dans votre zone DNS

# Dans votre fichier de zone DNS, ajoutez :
l2-2.ephec-ti.be.    IN TXT "v=spf1 mx -all"

4.2 Rechargement de la zone DNS

# Si vous utilisez bind9
sudo systemctl reload named
# ou
sudo rndc reload

5. Configuration DKIM

5.1 Génération des clés DKIM

# Depuis ~/tp7
docker exec -it tp7-mailserver-1 setup config dkim

5.2 Récupération de la clé publique

# Afficher le contenu du fichier mail.txt
cat docker-data/dms/config/dkim/l2-2.ephec-ti.be/mail.txt

5.3 Ajout du record DKIM dans votre zone DNS

# Copiez le contenu du fichier mail.txt dans votre zone DNS
# Le format sera quelque chose comme :
mail._domainkey.l2-2.ephec-ti.be. IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."

5.4 Redémarrage du serveur

docker compose down
docker compose up -d

6. Configuration DMARC

6.1 Ajout du record DMARC dans votre zone DNS

# Dans votre fichier de zone DNS, ajoutez :
_dmarc.l2-2.ephec-ti.be. IN TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@l2-2.ephec-ti.be; ruf=mailto:postmaster@l2-2.ephec-ti.be; fo=1"

7. Activation de SpamAssassin

7.1 Modification du fichier mailserver.env

# Depuis ~/tp7
nano mailserver.env

Ajoutez ou modifiez :

ENABLE_SPAMASSASSIN=1
SPAMASSASSIN_SPAM_TO_INBOX=1
SA_TAG=2.0
SA_TAG2=6.31
SA_KILL=10.0

7.2 Redémarrage du serveur

docker compose down
docker compose up -d

8. Commandes de test et vérification

8.1 Vérification des configurations

# Tester SPF
dig TXT l2-2.ephec-ti.be

# Tester DKIM
dig TXT mail._domainkey.l2-2.ephec-ti.be

# Tester DMARC
dig TXT _dmarc.l2-2.ephec-ti.be

8.2 Vérification des logs

# Depuis ~/tp7 - Logs du serveur mail
docker compose logs mailserver

# Logs en temps réel
docker compose logs -f mailserver

8.3 Commandes utiles pour la gestion

# Lister les utilisateurs
docker exec -it tp7-mailserver-1 setup email list

# Changer le mot de passe d'un utilisateur
docker exec -it tp7-mailserver-1 setup email update user1@l2-2.ephec-ti.be

# Voir l'aide complète
docker exec -it tp7-mailserver-1 setup help

9. Configuration client mail (Thunderbird)

9.1 Paramètres de configuration

  • Serveur entrant (IMAP) : mail.l2-2.ephec-ti.be, port 993, SSL/TLS
  • Serveur sortant (SMTP) : mail.l2-2.ephec-ti.be, port 465, SSL/TLS
  • Authentification : Mot de passe normal

10. Tests à effectuer

10.1 Capture Wireshark

# Démarrer Wireshark avant d'envoyer/recevoir des mails
# Analyser les ports utilisés (25, 465, 587 pour SMTP ; 143, 993 pour IMAP)

10.2 Sites de test recommandés

  • MXToolbox "Test Email Server"
  • DKIM Validator
  • SPF Record Lookup
  • DMARC Lookup

11. Commandes de dépannage

11.1 En cas de problème

# Depuis ~/tp7 - Arrêter et supprimer le conteneur
docker compose down

# Voir les logs détaillés
docker compose logs mailserver

# Vérifier la configuration
docker exec -it tp7-mailserver-1 setup debug

# Redémarrer complètement
docker compose down
docker compose up -d

11.2 Vérification des fichiers de configuration

# Vérifier les permissions
ls -la docker-data/dms/config/
ls -la /etc/letsencrypt/live/mail.l2-2.ephec-ti.be/

# Vérifier les certificats
openssl x509 -in /etc/letsencrypt/live/mail.l2-2.ephec-ti.be/fullchain.pem -text -noout

Notes importantes

  1. Remplacez systématiquement l2-2 par votre véritable identifiant si différent
  2. Sauvegardez vos configurations avant toute modification
  3. Attendez la propagation DNS (peut prendre jusqu'à 24h)
  4. Vérifiez les logs après chaque étape
  5. Testez progressivement chaque fonctionnalité

Commande de test de spam (optionnel)

# Envoyez ce contenu dans un mail pour tester SpamAssassin :
echo "XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X" | mail -s "Test SPAM" user1@l2-2.ephec-ti.be

Clone this wiki locally