Postfix : le serveur de messagerie MTA par excellence sur Linux
Postfix est le MTA (Mail Transfer Agent) par d'efaut sur Debian et Ubuntu. Ce serveur de courrier re\xc3\xa7oit, achemine et envoie des courriels \xc3\xa9lectroniques via le protocole SMTP. Sur un VPS Linux ou un serveur d\xc3\xa9di\xc3\xa9, l'installer permet \xc3\xa0 l'administrateur d'envoyer des notifications applicatives, des emails transactionnels ou des alertes syst\xc3\xa8me directement depuis le serveur, sans d\xc3\xa9pendre d'un relais SMTP externe.
Ce guide couvre l'installation compl\xc3\xa8te du serveur de messagerie Postfix, la configuration du fichier /etc/postfix/main.cf, l'authentification SMTP avec SASL (Dovecot), le chiffrement des connexions avec un certificat SSL/TLS, et la configuration IMAP pour les clients de messagerie (Thunderbird, Outlook, etc.). Toutes les commandes sont valid\xc3\xa9es sur Debian 12 et Ubuntu 22.04 LTS.
Pr\xc3\xa9requis : un VPS Linux avec une adresse IP publique, un nom de domaine point\xc3\xa9 sur cette adresse IP (enregistrement MX dans votre DNS), et un acc\xc3\xa8s admin en SSH.
Installer Postfix sur votre serveur
Avant tout, v\xc3\xa9rifiez que votre VPS ne poss\xc3\xa8de pas d\xc3\xa9j\xc3\xa0 un MTA actif (Exim est install\xc3\xa9 par d\xc3\xa9faut sur Debian). Postfix remplace automatiquement Exim lors de l'installation :
sudo apt update
sudo apt install postfix mailutils -yL'assistant de configuration du serveur de messagerie s'affiche. S\xc3\xa9lectionnez Internet Site et saisissez le FQDN de votre serveur, par exemple mail.exemple.com. Pour relancer cet assistant manuellement :
sudo dpkg-reconfigure postfixV\xc3\xa9rifiez que le daemon est actif :
sudo systemctl status postfix
sudo systemctl enable postfixConfigurer main.cf : les param\xc3\xa8tres essentiels
Le fichier de configuration du serveur SMTP est /etc/postfix/main.cf. Utilisez postconf pour modifier les param\xc3\xa8tres :
sudo postconf -e 'myhostname = mail.exemple.com'
sudo postconf -e 'mydomain = exemple.com'
sudo postconf -e 'myorigin = $mydomain'
sudo postconf -e 'inet_interfaces = all'
sudo postconf -e 'mydestination = $myhostname, localhost.$mydomain, $mydomain'
sudo postconf -e 'home_mailbox = Maildir/'Ces param\xc3\xa8tres d\xc3\xa9finissent le nom du serveur de courrier, le nom de domaine d'origine des courriels, les destinataires locaux accept\xc3\xa9s, et le format de bo\xc3\xaete aux lettres Maildir. Rechargez le serveur de messagerie apr\xc3\xa8s modification :
sudo systemctl reload postfixCr\xc3\xa9ez des alias dans /etc/aliases pour rediriger le courrier \xc3\xa9lectronique syst\xc3\xa8me : root: admin@exemple.com. Appliquez avec sudo newaliases.
Authentification SMTP avec Dovecot SASL
Pour que vos applications ou clients de messagerie s'authentifient avant d'envoyer un email via le serveur sortant, configurez SASL via Dovecot. Installez dovecot-core :
sudo apt install dovecot-core -y\xc3\x89ditez /etc/dovecot/conf.d/10-master.conf et ajoutez le socket Unix dans le bloc service auth :
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}Dans /etc/dovecot/conf.d/10-auth.conf, autorisez les protocoles d'authentification plain et login :
auth_mechanisms = plain loginConfigurez Postfix pour utiliser Dovecot SASL :
sudo postconf -e 'smtpd_sasl_type = dovecot'
sudo postconf -e 'smtpd_sasl_path = private/auth'
sudo postconf -e 'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'Red\xc3\xa9marrez les serveurs de messagerie :
sudo systemctl restart dovecot postfixAcc\xc3\xa8s IMAP pour les clients de messagerie
Dovecot assure \xc3\xa9galement le r\xc3\xb4le de serveur de courrier entrant (IMAP) pour permettre \xc3\xa0 un client de messagerie (Thunderbird, Outlook, etc.) de consulter les courriels d'une bo\xc3\xaete mail locale. Installez dovecot-imapd :
sudo apt install dovecot-imapd -y
sudo systemctl restart dovecotConfigurez votre logiciel de messagerie avec ces param\xc3\xa8tres :
- Serveur entrant (IMAP) : mail.exemple.com, port 993 (SSL/TLS)
- Serveur sortant (SMTP) : mail.exemple.com, port 587 (STARTTLS), authentification requise
- Nom d'utilisateur : votre adresse mail compl\xc3\xa8te (ex. user@exemple.com)
Pour chaque bo\xc3\xaete mail, cr\xc3\xa9ez un compte Linux correspondant sur le serveur. Le courriel entrant sera livr\xc3\xa9 dans /home/user/Maildir.
Chiffrer les connexions avec un certificat SSL/TLS
Activez TLS pour chiffrer les connexions entrantes et sortantes du serveur de courrier. Pour v\xc3\xa9rifier votre certificat SSL, consultez notre guide v\xc3\xa9rifier un certificat TLS avec openssl.
sudo postconf -e 'smtp_tls_security_level = may'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtpd_tls_chain_files = /etc/ssl/private/server.key,/etc/ssl/certs/server.crt'
sudo postconf -e 'smtpd_tls_loglevel = 1'Ouvrir les ports dans le firewall
Ouvrez les ports SMTP (25, 587) et IMAP (993) avec UFW :
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 993/tcp
sudo ufw reloadSi votre h\xc3\xa9bergeur bloque le port 25 sortant (mesure anti-spam), utilisez un relais SMTP externe (relayhost dans main.cf) et envoyez via le port 587.
Tester le serveur de courrier et analyser les logs
V\xc3\xa9rifiez que le serveur SMTP annonce STARTTLS et AUTH :
telnet mail.exemple.com 25
ehlo mail.exemple.comLa r\xc3\xa9ponse doit inclure 250-STARTTLS et 250-AUTH LOGIN PLAIN. Consultez les logs de livraison pour diagnostiquer les probl\xc3\xa8mes de remise aux destinataires :
sudo tail -f /var/log/mail.logV\xc3\xa9rifiez la file d'attente avec mailq et purgez les courriels bloqu\xc3\xa9s avec postsuper -d ALL deferred.
Renforcer la s\xc3\xa9curit\xc3\xa9 du serveur de messagerie
Limitez les spams et abus avec ces param\xc3\xa8tres dans main.cf :
sudo postconf -e 'smtpd_helo_required = yes'
sudo postconf -e 'disable_vrfy_command = yes'
sudo postconf -e 'smtpd_banner = $myhostname ESMTP'Combinez Postfix avec Fail2ban pour bloquer les connexions abusives. Pour am\xc3\xa9liorer la d\xc3\xa9livrabilit\xc3\xa9 des courriels \xc3\xa9lectroniques, ajoutez SPF, DKIM et DMARC \xc3\xa0 votre domaine dans votre DNS.
Pour s\xc3\xa9curiser davantage votre infrastructure, consultez nos guides : s\xc3\xa9curiser SSH sur un VPS Linux et configurer Nginx en reverse proxy.
H\xc3\xa9bergez votre serveur de messagerie sur un VPS Linux
ElypseCloud propose des VPS Linux optimis\xc3\xa9s pour vos serveurs de courrier \xc3\xa9lectronique, avec des ressources d\xc3\xa9di\xc3\xa9es et une connectivit\xc3\xa9 r\xc3\xa9seau haute performance.
D\xc3\xa9couvrir les VPS Linux ElypseCloud