DOCKER MAIL SERVER (DMS)
Héberger sa boîte mail sur son serveur grâce à Docker Mail Server
PRE REQUIS 📎
- Docker + compose plugin
- Certbot
- Nom de domaine (ici exemple.com)
- Les ports 25, 143, 465, 587 et 993 ouverts
- Le port 25 ouvert en traffic sortant (Voir avec son FAI)
⚠️ Les FAIs ferme le port 25 sortant sur les boxs
CONFIGURER 🔧
CREATION DES DNS RECORDS
- Créer les DNS suivant:
Arecord:
# mail.exemple.com point sur <IP_SERVER>
mail 10800 IN A <IP_SERVER>
MXrecord:
# ne pas oublier le point à la fin !!!
@ 10800 IN MX 10 mail.exemple.com.
TXTrecord (ancien SPF deprécié):
@ 10800 IN TXT "v=spf1 ip4:<IP_SERVER> ~all"
TXTrecord (DMARC)
_dmarc 10800 IN TXT "v=DMARC1; p=quarantine; sp=reject; rua=mailto:reports@exemple.com; ruf=mailto:forensics@xemple.com; fo=1"
CNAMErecord (autodiscover conf du server)
autodiscover 10800 IN CNAME mail.exemple.com
TXTrecord for DKIM (pour mail.example.com après création de clefs DKIM):
mail._domainkey 10800 IN TXT "v=DKIM1; h=sha256; k=rsa; p=<DKIM_KEYS>"
ENVS 🔍
- mailserver.env:
MAIL_DNS=mail.exemple.com
POSTMASTER_ADDRESS=postmaster@exemple.com
CREATION DES CERTIFICATS SSL :📃
- Création des certifs via certbot:
sudo certbot certonly -d mail.exemple.com
- Copie des certificats pour DMS:
mkdir -p docker-data/certbot/certs/
sudo cp -r /etc/letsencrypt/live/exemple.com/ docker-data/certbot/certs/
CREATION BOITE MAIL + CLEFS DKIM 📧 🔑
- Lancer la stack:
docker compose up -d
- Créer une adresse mail:
docker exec -it <CONTAINER NAME> setup email add user@exemple.com <PASSWORD>
- Créer un alias:
docker exec -ti <CONTAINER NAME> setup alias add postmaster@exemple.com user@exemple.com
- Créer les clefs
DKIM:
docker exec -it <CONTAINER NAME> setup config dkim keysize 1024
- Reporter les datas entre () au niveau de
p=""dans unTXTrecord (voir étape 6 de la création des DNS records)
Relancer la stack pour valider l'usage des clefs DKIM:
docker compose down && docker compose up -d
DOCUMENTATION 📚
TO DO 📑
- Automate certbot renew
Description
Languages
Shell
100%