Un serveur de messagerie vous permet d’envoyer et de recevoir des e-mails. La mise en place de votre propre serveur de messagerie sur Ubuntu vous donne plus de contrôle sur votre messagerie et augmente la confidentialité et la sécurité. Cependant, la gestion de votre propre serveur de messagerie nécessite un peu plus de connaissances techniques.
Ce guide complet vous guidera à travers toutes les étapes pour créer un serveur de messagerie entièrement fonctionnel sur Ubuntu 20.04/22.04 du début à la fin.
Prérequis
Avant de commencer, vous aurez besoin de :
- Un serveur Ubuntu 20.04/22.04 avec une adresse IP publique statique. L’utilisation d’un VPS est recommandée.
- Un nom de domaine enregistré. Celui-ci sera utilisé pour envoyer et recevoir des e-mails à partir de votre serveur de messagerie.
- Un accès administrateur à votre serveur Ubuntu.
- Des connaissances de base en ligne de commande Linux.
Nous utiliserons Postfix pour le serveur SMTP, Dovecot pour IMAP/POP3, et OpenDMARC pour l’authentification des e-mails. Une base de données MySQL sera également configurée pour stocker des informations comme les domaines virtuels et les utilisateurs.
Commençons par mettre à jour le dépôt de paquets et installer quelques dépendances sur notre serveur Ubuntu :
$ sudo apt update
$ sudo apt install postfix postfix-mysql dovecot-imapd dovecot-pop3d mariadb-server openssl openssl-blacklist
Ensuite, nous passerons en revue les étapes pour configurer chaque composant.
Configuration de Postfix
Postfix gère le service SMTP pour l’envoi et la réception des e-mails. Nous devons mettre à jour certains paramètres dans le fichier de configuration principal de Postfix.
Ouvrez le fichier avec :
$ sudo nano /etc/postfix/main.cf
Trouvez le paramètre myhostname
et définissez-le sur votre nom de domaine enregistré :
myhostname = mail.example.com
Ensuite, trouvez le paramètre mydomain
et définissez-le sur votre domaine :
mydomain = example.com
Définissez le paramètre myorigin
sur $mydomain
:
myorigin = $mydomain
Dans la section INTERNET_PROTOCOLS
, assurez-vous que ipv4
est activé :
inet_interfaces = all
inet_protocols = all
Cela permet à Postfix d’écouter sur toutes les interfaces réseau IPv4 disponibles.
Maintenant, trouvez le paramètre mydestination
et définissez-le comme suit :
mydestination = $myhostname, localhost.$mydomain, $mydomain
Cela spécifie les domaines auxquels Postfix livrera localement le courrier.
Sauvegardez et fermez le fichier lorsque vous avez terminé l’édition.
Ensuite, nous devons configurer l’authentification SMTP. Générez un fichier de mots de passe pour Postfix avec la commande postmap
:
$ sudo postmap /etc/postfix/sasl_passwd
Créez le fichier utilisateur et mot de passe :
$ sudo nano /etc/postfix/sasl_passwd
Ajoutez votre e-mail et mot de passe sur des lignes séparées :
mail.example.com [email protected]
mail.example.com password123
Sauvegardez et fermez le fichier.
Maintenant, éditez la configuration SASL de Postfix :
$ sudo nano /etc/postfix/sasl/smtpd.conf
Assurez-vous qu’il contient ce qui suit :
pwcheck_method: saslauthd
mech_list: plain login
Cela configure Postfix pour utiliser le service saslauthd
pour l’authentification.
Redémarrez Postfix pour charger la nouvelle configuration :
$ sudo systemctl restart postfix
Postfix est maintenant configuré et prêt pour l’envoi et la réception d’e-mails.
Configuration de Dovecot
Dovecot sera utilisé pour gérer les protocoles IMAP et POP3 pour accéder aux e-mails à partir de clients de messagerie comme Outlook ou Thunderbird.
Ouvrez le fichier de configuration Dovecot :
$ sudo nano /etc/dovecot/dovecot.conf
Trouvez la section des protocoles et activez imap et pop3 :
protocols = imap pop3
Activez l’authentification SMTP :
disable_plaintext_auth = yes
Définissez l’emplacement du courrier :
mail_location = maildir:/var/mail/%d/%n
Maintenant, ouvrez le fichier de configuration d’authentification SMTP :
$ sudo nano /etc/dovecot/conf.d/10-auth.conf
Trouvez le paramètre auth_mechanisms
et définissez-le comme suit :
auth_mechanisms = plain login
Cela permet une authentification en texte brut et par connexion similaire à Postfix.
Enfin, ouvrez le fichier des autorisations :
$ sudo nano /etc/dovecot/conf.d/10-mail.conf
Et définissez :
mail_access_groups = mail
Cela permet aux membres du groupe mail
d’accéder aux boîtes aux lettres.
Sauvegardez et redémarrez Dovecot :
$ sudo systemctl restart dovecot
Dovecot est maintenant prêt à gérer l’accès aux courriers IMAP et POP3.
Configuration de la base de données MySQL
Ensuite, nous allons configurer une base de données MySQL pour stocker les domaines virtuels et les utilisateurs de notre serveur de messagerie.
Connectez-vous au shell MySQL :
$ sudo mysql
Créez une base de données appelée mailserver
:
CREATE DATABASE mailserver;
Créez un nouvel utilisateur et accordez-lui des autorisations sur la base de données :
GRANT SELECT,INSERT,UPDATE,DELETE ON mailserver.* TO 'mailuser'@'127.0.0.1' IDENTIFIED BY 'password123';
Quittez MySQL :
quit
Maintenant, nous pouvons importer le fichier SQL de configuration Postfix pour créer les tables nécessaires :
$ sudo mysql mailserver < /etc/postfix/mysql/postfix_db.sql
La base de données MySQL est maintenant prête à stocker les informations de domaine et d’utilisateur pour notre serveur de messagerie.
Domaines virtuels et utilisateurs
Avec la base de données configurée, nous pouvons créer des domaines virtuels et des utilisateurs.
Un domaine virtuel vous permet d’héberger plusieurs domaines à partir d’un seul serveur de messagerie.
Tout d’abord, ouvrez le fichier de configuration de domaine virtuel Postfix :
$ sudo nano /etc/postfix/mysql-virtual_domains.cf
Décommentez le paramètre config_directory et définissez-le sur notre configuration MySQL :
config_directory = /etc/postfix/mysql
Maintenant, créons une entrée de domaine virtuel dans la base de données. Connectez-vous à MySQL :
$ sudo mysql mailserver -p
Insérez une ligne pour le domaine :
INSERT INTO `virtual_domains` (`id` ,`name`) VALUES ('1', 'example.com');
Quittez MySQL.
Ensuite, ouvrez le fichier des utilisateurs virtuels :
$ sudo nano /etc/postfix/mysql-virtual_mailboxes.cf
Définissez le config_directory
comme avant :
config_directory = /etc/postfix/mysql
Cela permet à Postfix de rechercher les utilisateurs dans MySQL.
Entrez à nouveau dans MySQL :
$ sudo mysql mailserver -p
Créez un exemple d’utilisateur :
INSERT INTO `virtual_users` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('password123', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email protected]');
Cela crée un utilisateur “[email protected]” avec un mot de passe chiffré.
Maintenant, nous devons permettre à l’utilisateur d’accéder aux boîtes aux lettres. Insérez une ligne dans virtual_aliases
:
INSERT INTO `virtual_aliases` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', '[email protected]', '[email protected]');
Quittez MySQL et redémarrez Postfix pour que les modifications prennent effet :
$ sudo systemctl restart postfix
Nous pouvons créer plus de domaines et d’utilisateurs de la même manière.
OpenDMARC
OpenDMARC implémente le standard d’authentification des e-mails DMARC. Cela aide à améliorer la sécurité et à prévenir les spams et le hameçonnage.
Tout d’abord, installez OpenDMARC :
$ sudo apt install opendmarc opendmarc-tools
Ouvrez le fichier de configuration principal :
$ sudo nano /etc/opendmarc.conf
Définissez votre domaine :
AuthservID mail.example.com
Activez la journalisation et le reporting :
Socket inet:8893@localhost
LogLevel debug
Syslog true
RejectFailures false
ReportFailures true
HistoryFile /var/lib/opendmarc/opendmarc.dat
StatsSocket /var/run/opendmarc/opendmarc.sock
MinServers 3
ServerInterval 60
Cela journalise l’activité dans syslog et active les rapports d’e-mail quotidiens.
Ajoutez votre domaine en tant qu’adresse From :
/etc/opendmarc/ignore.hosts
mail.example.com
Maintenant, activez OpenDMARC :
$ sudo systemctl enable opendmarc
$ sudo systemctl start opendmarc
Enfin, générez l’enregistrement TXT DMARC pour votre domaine :
$ sudo opendmarc-gen-policy --domain example.com --policy none --report email:[email protected]
Prenez cet enregistrement TXT et ajoutez-le à la configuration DNS de votre domaine.
OpenDMARC est maintenant actif et validera les e-mails entrants.
Test du serveur de messagerie
Notre serveur de messagerie Ubuntu devrait maintenant être correctement configuré. Faisons quelques tests pour valider qu’il fonctionne.
Tout d’abord, envoyez un e-mail de test depuis le serveur lui-même avec :
$ echo "Ceci est un test" | mail -s Testing [email protected]
Vérifiez si le courrier a été remis :
$ sudo ls -l /var/mail
Vous devriez voir un fichier nommé d’après l’utilisateur à qui vous l’avez envoyé si la remise a réussi.
Ensuite, configurez un client de messagerie comme Thunderbird pour se connecter au serveur de messagerie. Ajoutez un nouveau compte en utilisant les informations d’identification IMAP et SMTP que vous avez configurées.
Envoyez un message test à l’adresse e-mail de votre domaine. Il devrait être remis dans le dossier de réception de l’utilisateur sur le serveur Ubuntu.
Vous pouvez également utiliser Telnet pour vous connecter manuellement au SMTP Postfix et envoyer un message :
$ telnet mail.example.com 25
Tapez EHLO
, puis MAIL FROM:
, RCPT TO:
et enfin les données du message de test. Cela valide que l’envoi et la remise SMTP fonctionnent correctement.
Vérifiez /var/log/mail.log et /var/log/syslog pour détecter des erreurs avec Postfix, Dovecot, MySQL ou OpenDMARC pendant les tests. Déboguez et résolvez les problèmes qui surviennent.
Lorsque tout fonctionne comme prévu, votre serveur de messagerie Ubuntu est prêt à être utilisé !
Sécurisation du serveur de messagerie
Maintenant que nous avons un serveur de messagerie fonctionnel, parlons des meilleures pratiques pour le sécuriser :
- Utilisez HTTPS/SSL pour les services si possible pour chiffrer le trafic. Obtenez des certificats SSL pour votre domaine.
- Restreignez l’accès aux services de messagerie par adresse IP en utilisant
mynetworks
de Postfix ou la liste blanche d’hôtes TCP Wrappers. - Activez les règles de pare-feu autorisant uniquement le trafic sur le port 25 (SMTP), 143 (IMAP), 993 (IMAP+TLS) et 110 (POP3).
- Désactivez l’authentification par mot de passe dans SSH et utilisez uniquement la connexion par clé.
- Assurez-vous que les paquets système sont toujours à jour en activant les mises à jour de sécurité automatiques.
- Surveillez régulièrement les journaux du serveur pour détecter les signes d’attaques ou de tentatives d’accès non autorisé.
- Configurez logrotate pour archiver et compresser les journaux.
- Désactivez les services inutiles qui ne sont pas utilisés.
- Créez des utilisateurs système de faible privilège pour des services comme Dovecot et Postfix.
- Utilisez des mots de passe forts et activez l’authentification à deux facteurs si possible.
- Sauvegardez régulièrement vos données de messagerie et bases de données MySQL.
Suivre les meilleures pratiques de sécurité aidera à protéger votre serveur de messagerie et les informations privées de vos utilisateurs. Les points clés sont la restriction de l’accès, la mise à jour, la surveillance de l’activité, la sauvegarde des données et le chiffrement.
Conclusion
Cela conclut ce guide étape par étape sur le déploiement d’un serveur de messagerie sur Ubuntu 20.04. Nous avons installé et configuré Postfix, Dovecot, MySQL et OpenDMARC. Nous avons également couvert les mesures de sécurité importantes pour protéger le serveur de messagerie.
Ceci conclut ce guide étape par étape sur le déploiement d’un serveur de messagerie sur Ubuntu 20.04. Nous avons installé et configuré Postfix, Dovecot, MySQL et OpenDMARC. Nous avons également abordé d’importantes mesures de sécurité pour protéger le serveur de messagerie.
Avec votre propre serveur de messagerie Ubuntu, vous pouvez contrôler entièrement votre courrier électronique tout en améliorant la confidentialité, la sécurité et la délivrabilité. Les utilisateurs peuvent accéder au courrier via IMAP et SMTP en utilisant n’importe quel client de messagerie standard.
L’exploitation d’un serveur de messagerie nécessite davantage de maintenance pratique que l’utilisation d’un fournisseur de messagerie hébergé. Mais les avantages d’un serveur privé l’emportent souvent sur les efforts supplémentaires.
N’hésitez pas à me contacter si vous avez d’autres questions ! Je me ferai un plaisir de vous donner plus de détails sur n’importe quelle partie du processus d’installation d’un serveur de messagerie.