Comment créer un serveur de messagerie sur Ubuntu

déployer un serveur de messagerie complet sur Ubuntu 20.04 en utilisant Postfix, Dovecot, MySQL et OpenDMARC.

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.

Laisser un commentaire