Mettre en place un serveur mail sécurisé et autonome, capable d’envoyer et recevoir des e-mails avec un nom de domaine personnalisé (example.com), en s’appuyant sur Mailcow, Docker, Nginx et Let’s Encrypt.
sudo apt update
sudo apt install -y curl gnupg2 ca-certificates lsb-release apt-transport-https software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable docker && sudo systemctl start dockermkdir -p /opt/mailcow-dockerized
cd /opt/mailcow-dockerized
git clone https://github.com/mailcow/mailcow-dockerized .
./generate_config.sh➡️ Entrer comme FQDN : email.example.com
Dans mailcow.conf :
HTTP_PORT=8080
HTTPS_PORT=8443
Redémarrage :
docker compose down
docker compose up -dFichier /etc/nginx/sites-available/mailcow :
server {
listen 80;
server_name email.example.com;
return 301 https://email.example.com$request_uri;
}
server {
listen 443 ssl;
server_name email.example.com;
ssl_certificate /etc/letsencrypt/live/email.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/email.example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
ln -s /etc/nginx/sites-available/mailcow /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxsudo certbot --nginx -d email.example.com| Type | Nom | Valeur |
|---|---|---|
| A | 192.168.25.22 | |
| MX | @ | email.example.com |
| TXT | @ | v=spf1 mx ~all |
| TXT | email._domainkey | (DKIM via Mailcow) |
| TXT | _dmarc | v=DMARC1; p=quarantine; rua=mailto:admin@example.com |
https://email.example.comadmin@example.comhttps://email.example.com/SOGofail2ban pour sécuriser Postfix/Dovecotemail.example.comUn serveur mail 100 % fonctionnel, sécurisé, avec un domaine personnalisé, capable de gérer plusieurs adresses.