
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-blacklistEnsuite, 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.cfTrouvez le paramètre myhostname et définissez-le sur votre nom de domaine enregistré :
myhostname = mail.example.comEnsuite, trouvez le paramètre mydomain et définissez-le sur votre domaine :
mydomain = example.comDéfinissez le paramètre myorigin sur $mydomain :
myorigin = $mydomainDans la section INTERNET_PROTOCOLS, assurez-vous que ipv4 est activé :
inet_interfaces = all
inet_protocols = allCela 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, $mydomainCela 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_passwdCréez le fichier utilisateur et mot de passe :
$ sudo nano /etc/postfix/sasl_passwdAjoutez votre e-mail et mot de passe sur des lignes séparées :
mail.example.com [email protected]
mail.example.com password123Sauvegardez et fermez le fichier.
Maintenant, éditez la configuration SASL de Postfix :
$ sudo nano /etc/postfix/sasl/smtpd.confAssurez-vous qu’il contient ce qui suit :
pwcheck_method: saslauthd
mech_list: plain loginCela configure Postfix pour utiliser le service saslauthd pour l’authentification.
Redémarrez Postfix pour charger la nouvelle configuration :
$ sudo systemctl restart postfixPostfix 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.confTrouvez la section des protocoles et activez imap et pop3 :
protocols = imap pop3Activez l’authentification SMTP :
disable_plaintext_auth = yesDéfinissez l’emplacement du courrier :
mail_location = maildir:/var/mail/%d/%nMaintenant, ouvrez le fichier de configuration d’authentification SMTP :
$ sudo nano /etc/dovecot/conf.d/10-auth.confTrouvez le paramètre auth_mechanisms et définissez-le comme suit :
auth_mechanisms = plain loginCela 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.confEt définissez :
mail_access_groups = mailCela permet aux membres du groupe mail d’accéder aux boîtes aux lettres.
Sauvegardez et redémarrez Dovecot :
$ sudo systemctl restart dovecotDovecot 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 mysqlCré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 :
quitMaintenant, nous pouvons importer le fichier SQL de configuration Postfix pour créer les tables nécessaires :
$ sudo mysql mailserver < /etc/postfix/mysql/postfix_db.sqlLa 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.cfDécommentez le paramètre config_directory et définissez-le sur notre configuration MySQL :
config_directory = /etc/postfix/mysqlMaintenant, créons une entrée de domaine virtuel dans la base de données. Connectez-vous à MySQL :
$ sudo mysql mailserver -pInsé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.cfDéfinissez le config_directory comme avant :
config_directory = /etc/postfix/mysqlCela permet à Postfix de rechercher les utilisateurs dans MySQL.
Entrez à nouveau dans MySQL :
$ sudo mysql mailserver -pCré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 postfixNous 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-toolsOuvrez le fichier de configuration principal :
$ sudo nano /etc/opendmarc.confDéfinissez votre domaine :
AuthservID mail.example.comActivez 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 60Cela 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.comMaintenant, activez OpenDMARC :
$ sudo systemctl enable opendmarc
$ sudo systemctl start opendmarcEnfin, 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/mailVous 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 25Tapez 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
mynetworksde 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.
