Configurer votre propre serveur mail
DOG&DEV · 26/01/2025
Gaming
Licence Logicielle
Configurer votre propre serveur mail
Configurer votre propre serveur mail vous donne un contrôle total sur vos emails. Ce guide couvre l'installation de Postfix (SMTP) et Dovecot (IMAP/POP3), la configuration DNS et la sécurisation.
Prérequis
- Linux (Debian, Ubuntu, CentOS)
- Domaine avec contrôle DNS
- IP statique (recommandé)
- Accès root ou sudo
- Ports ouverts : 25 (SMTP), 587 (SMTP soumission), 465 (SMTPS), 993 (IMAPS), 995 (POP3S)
Architecture
Composants
- Postfix : serveur SMTP (envoi d'emails)
- Dovecot : serveur IMAP/POP3 (réception d'emails)
- DNS : enregistrements MX, SPF, DKIM, DMARC
- SSL/TLS : certificats pour chiffrement
Installation
Debian/Ubuntu
# Mettre à jour
sudo apt update
sudo apt upgrade -y
# Installer Postfix et Dovecot
sudo apt install -y postfix dovecot-core dovecot-imapd dovecot-pop3d
# Installer les outils supplémentaires
sudo apt install -y opendkim opendkim-tools spamassassin spamc
CentOS/RHEL
# Installer Postfix et Dovecot
sudo yum install -y postfix dovecot
# Désactiver Sendmail (si installé)
sudo systemctl stop sendmail
sudo systemctl disable sendmail
Configuration Postfix
Configuration de base
Fichier : /etc/postfix/main.cf
# Nom d'hôte
myhostname = mail.votredomaine.com
mydomain = votredomaine.com
myorigin = $mydomain
# Interfaces réseau
inet_interfaces = all
inet_protocols = ipv4
# Réseaux autorisés
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# Destinations
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# Alias
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
# Mailbox
home_mailbox = Maildir/
# TLS
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
# Restrictions
smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Relais (optionnel)
Si vous utilisez un relais SMTP externe :
relayhost = [smtp.exemple.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
Redémarrer Postfix
sudo systemctl restart postfix
sudo systemctl enable postfix
Configuration Dovecot
Configuration IMAP/POP3
Fichier : /etc/dovecot/dovecot.conf
protocols = imap pop3
listen = *
mail_location = maildir:~/Maildir
ssl = required
ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
auth_mechanisms = plain login
Fichier : /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
Fichier : /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
Redémarrer Dovecot
sudo systemctl restart dovecot
sudo systemctl enable dovecot
Configuration DNS
Enregistrement MX
Pointant vers votre serveur :
Type: MX
Nom: @
Priorité: 10
Valeur: mail.votredomaine.com
Vérifier :
dig MX votredomaine.com
Enregistrement A
Pour mail.votredomaine.com :
Type: A
Nom: mail
Valeur: VOTRE_IP
SPF (Sender Policy Framework)
Enregistrement TXT :
Type: TXT
Nom: @
Valeur: v=spf1 mx a ip4:VOTRE_IP ~all
Vérifier :
dig TXT votredomaine.com
DKIM (DomainKeys Identified Mail)
Générer les clés DKIM :
# Installer opendkim
sudo apt install -y opendkim opendkim-tools
# Générer les clés
sudo opendkim-genkey -D /etc/opendkim/keys/ -d votredomaine.com -s default
# Afficher la clé publique
sudo cat /etc/opendkim/keys/default.txt
Enregistrement TXT :
Type: TXT
Nom: default._domainkey
Valeur: [contenu de default.txt]
DMARC
Enregistrement TXT :
Type: TXT
Nom: _dmarc
Valeur: v=DMARC1; p=quarantine; rua=mailto:admin@votredomaine.com
Créer des comptes email
Ajouter un utilisateur
# Créer un utilisateur
sudo adduser contact@votredomaine.com
# Créer le répertoire Maildir
sudo mkdir -p /home/contact@votredomaine.com/Maildir/{new,cur,tmp}
sudo chown -R contact@votredomaine.com:contact@votredomaine.com /home/contact@votredomaine.com/Maildir
Alias email
Fichier : /etc/aliases
contact: contact@votredomaine.com
support: contact@votredomaine.com
Appliquer :
sudo newaliases
SSL/TLS
Certificat Let's Encrypt
# Installer Certbot
sudo apt install -y certbot
# Obtenir un certificat
sudo certbot certonly --standalone -d mail.votredomaine.com
# Configurer Postfix
sudo postconf -e "smtpd_tls_cert_file = /etc/letsencrypt/live/mail.votredomaine.com/fullchain.pem"
sudo postconf -e "smtpd_tls_key_file = /etc/letsencrypt/live/mail.votredomaine.com/privkey.pem"
# Configurer Dovecot
sudo nano /etc/dovecot/conf.d/10-ssl.conf
# Modifier :
# ssl_cert = </etc/letsencrypt/live/mail.votredomaine.com/fullchain.pem
# ssl_key = </etc/letsencrypt/live/mail.votredomaine.com/privkey.pem
# Redémarrer
sudo systemctl restart postfix dovecot
Configuration client
Paramètres SMTP
- Serveur :
mail.votredomaine.com - Port :
587(TLS) ou465(SSL) - Authentification : Oui
- Chiffrement : TLS/SSL
Paramètres IMAP
- Serveur :
mail.votredomaine.com - Port :
993(IMAPS) - Authentification : Oui
- Chiffrement : SSL/TLS
Paramètres POP3
- Serveur :
mail.votredomaine.com - Port :
995(POP3S) - Authentification : Oui
- Chiffrement : SSL/TLS
Sécurité
Firewall
# Autoriser les ports mail
sudo ufw allow 25/tcp # SMTP
sudo ufw allow 587/tcp # SMTP soumission
sudo ufw allow 465/tcp # SMTPS
sudo ufw allow 993/tcp # IMAPS
sudo ufw allow 995/tcp # POP3S
Anti-spam
SpamAssassin :
# Installer
sudo apt install -y spamassassin spamc
# Configurer Postfix
sudo postconf -e "content_filter = spamassassin"
sudo nano /etc/postfix/master.cf
# Ajouter :
# spamassassin unix - n n - - pipe
# user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Dépôt sur liste noire
Vérifier votre IP :
Dépannage
| Problème | Cause possible | Solution |
|---|---|---|
| Emails non reçus | MX non configuré | Vérifier l'enregistrement MX |
| Emails en spam | SPF/DKIM/DMARC manquants | Configurer les enregistrements DNS |
| Connexion refusée | Firewall bloque | Ouvrir les ports 25, 587, 993, 995 |
| Erreur SSL | Certificat invalide | Configurer Let's Encrypt |
Vérifier les logs
# Logs Postfix
sudo tail -f /var/log/mail.log
# Logs Dovecot
sudo tail -f /var/log/dovecot.log
Bonnes pratiques
- DNS : configurer SPF, DKIM, DMARC
- SSL/TLS : utiliser Let's Encrypt
- Firewall : limiter l'accès aux ports mail
- Mots de passe forts : pour tous les comptes
- Monitoring : surveiller les logs régulièrement
- Sauvegardes : sauvegarder les configurations et emails
Ressources
- mailcow-debian - Solution mail complète (Mailcow)
- plesk-email - Gestion email avec Plesk
- point-domain-to-vps - Configuration DNS
Cet article s'inscrit dans notre série de guides serveurs mail et email. Pour un serveur sur-mesure, contact.