Installer et sécuriser Mailcow sur Debian
Published on September 22, 2025 at 07:39 PM

Mailcow: dockerized est une suite de serveur mail moderne construite sur Postfix, Dovecot et d'autres composants, entièrement gérée avec Docker. Ce guide vous accompagne dans l’installation, le durcissement et la maintenance sur Debian 12.
## Sommaire
1. Prérequis
2. Préparation du système et mises à jour
3. Installer les paquets requis (Docker, Docker Compose)
4. Récupérer les sources de Mailcow
5. Configurer Mailcow (docker-compose)
6. Configurer le hostname, le DNS et le reverse DNS
7. Démarrer Mailcow
8. Activer HTTPS avec Let’s Encrypt
9. Configuration DNS (MX, SPF, DKIM, DMARC)
10. Configuration du pare-feu
11. Sécurisation et durcissement de Mailcow
12. Sauvegardes et mises à jour
13. Supervision et dépannage
14. Conseils utiles
15. Check-list finale
---
## 1. Prérequis
- Serveur Debian 12 (installation fraîche recommandée)
- Accès root ou sudo
- Minimum : 2 vCPU, 4 Go RAM (8 Go recommandé), 40 Go stockage
- Un nom de domaine (ex. exemple.com)
- Accès DNS pour le domaine
- Ports ouverts : 25, 80, 443, 587, 993, 995
---
## 2. Préparation du système et mises à jour
```bash
sudo apt update && sudo apt -y full-upgrade
sudo reboot
```
Optionnel : définir le fuseau horaire correct.
```bash
sudo timedatectl set-timezone Europe/Paris
```
---
## 3. Installer les paquets requis (Docker, Docker Compose)
```bash
sudo apt install -y curl git apt-transport-https ca-certificates gnupg lsb-release
# Ajouter la clé GPG officielle de Docker
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
# Ajouter le dépôt Docker
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
# Installer Docker et Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Activer et vérifier Docker
sudo systemctl enable --now docker
sudo docker --version
sudo docker compose version
```
---
## 4. Récupérer les sources de Mailcow
```bash
cd /opt
sudo git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
```
---
## 5. Configurer Mailcow (docker-compose)
Lancer le script de configuration :
```bash
sudo ./generate_config.sh
```
Questions posées :
- Nom d’hôte (ex. mail.exemple.com)
- Fuseau horaire
- Chemin optionnel pour les volumes mail
Cela génère le fichier mailcow.conf.
---
## 6. Configurer le hostname, le DNS et le reverse DNS
- Vérifier que le serveur a le bon hostname :
```bash
hostnamectl set-hostname mail.exemple.com
```
- Ajouter un enregistrement A dans votre DNS : mail.exemple.com → IP_du_serveur
- Configurer le PTR (reverse DNS) chez le fournisseur : IP_du_serveur → mail.exemple.com
---
## 7. Démarrer Mailcow
```bash
sudo docker compose pull
sudo docker compose up -d
```
Vérifier l’état :
```bash
sudo docker compose ps
```
---
## 8. Activer HTTPS avec Let’s Encrypt
Par défaut, Mailcow demande automatiquement un certificat Let’s Encrypt pour votre hostname si les ports 80/443 sont disponibles.
- Vérifiez la propagation DNS.
- Accédez à https://mail.exemple.com après ~5 minutes.
Si le certificat n’est pas généré, consulter les logs :
```bash
sudo docker compose logs acme-mailcow
```
---
## 9. Configuration DNS (MX, SPF, DKIM, DMARC)
À configurer dans le DNS du domaine :
- MX Record
```
exemple.com. IN MX 10 mail.exemple.com.
```
- A Record
```
mail.exemple.com. IN A IP_du_serveur
```
- SPF (TXT Record)
```
exemple.com. IN TXT "v=spf1 mx -all"
```
- DKIM : générer dans l’interface Mailcow → Configuration → ARC/DKIM Keys → publier dans le DNS
- DMARC (TXT Record)
```
_dmarc.exemple.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
```
- Autodiscover / Autoconfig (optionnel)
```
autodiscover.exemple.com → mail.exemple.com
autoconfig.exemple.com → mail.exemple.com
```
---
## 10. Configuration du pare-feu
Autoriser uniquement les ports nécessaires :
```bash
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 25,80,443,587,993/tcp
sudo ufw enable
sudo ufw status
```
---
## 11. Sécurisation et durcissement de Mailcow
- Forcer HTTPS (activé par défaut)
- Activer Fail2ban (Mailcow inclut déjà des protections via Rspamd)
- Utiliser des mots de passe solides + 2FA dans l’interface Mailcow
- Mettre à jour régulièrement les conteneurs (docker compose pull)
- Surveiller les logs contre les attaques bruteforce
---
## 12. Sauvegardes et mises à jour
- Sauvegarder les volumes : /var/lib/docker/volumes/mailcowdockerized_*
- Arrêter la stack avant sauvegarde complète :
```bash
sudo docker compose down
sudo tar -czf mailcow-backup.tar.gz /var/lib/docker/volumes/mailcowdockerized_*
```
- Mettre à jour :
```bash
cd /opt/mailcow-dockerized
sudo git pull
sudo docker compose pull
sudo docker compose up -d
```
---
## 13. Supervision et dépannage
- Consulter les logs :
```bash
sudo docker compose logs -f
```
- Logs d’un service particulier :
```bash
sudo docker compose logs postfix-mailcow
sudo docker compose logs dovecot-mailcow
```
- Redémarrer un service :
```bash
sudo docker compose restart rspamd-mailcow
```
---
## 14. Conseils utiles
- Utiliser le compte admin pour se connecter → https://mail.exemple.com → Identifiants définis dans mailcow.conf
- Activer le webmail SOGo : accessible via /SOGo
- Utiliser ActiveSync/IMAP/SMTP sur Outlook/Thunderbird
- Surveiller via /api/ ou le tableau de bord intégré
---
## 15. Check-list finale
- [ ] Système mis à jour et redémarré
- [ ] Docker & Compose installés
- [ ] Configuration Mailcow générée
- [ ] Hostname + DNS + rDNS corrects
- [ ] Conteneurs Mailcow actifs
- [ ] HTTPS opérationnel (Let’s Encrypt)
- [ ] Enregistrements DNS MX/SPF/DKIM/DMARC configurés
- [ ] Pare-feu restreint aux ports mail
- [ ] Stratégie de sauvegarde en place
- [ ] Logs surveillés
Votre serveur mail Mailcow est maintenant opérationnel sur Debian 12 !


















