doganddev
Accueil Blog Boutique

Configurer votre propre serveur mail

DOG&DEV · 26/01/2025

Gaming Licence Logicielle
Configurer votre propre serveur mail

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) ou 465 (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


Cet article s'inscrit dans notre série de guides serveurs mail et email. Pour un serveur sur-mesure, contact.

Commentaires (0)

Laisser un commentaire