Recherche de site Web

Comment configurer facilement un serveur de messagerie à part entière sur Ubuntu 20.04 avec iRedMail


Configurer votre propre serveur de messagerie sous Linux à partir de zéro est un processus long et fastidieux, pénible si vous n'êtes pas un utilisateur avancé. Ce didacticiel vous montrera comment utiliser iRedMail pour configurer rapidement un serveur de messagerie complet sur Ubuntu 20.04, ce qui vous fera gagner beaucoup de temps et vous évitera des maux de tête.

Qu’est-ce qu’iRedMail ?

iRedMail est un script shell qui installe et configure automatiquement tous les composants de serveur de messagerie nécessaires sur votre serveur Linux/BSD, éliminant ainsi l'installation et la configuration manuelles. Avec iRedMail, vous pouvez facilement créer un nombre illimité de boîtes aux lettres et de domaines de messagerie dans un panneau d'administration Web. Les boîtes aux lettres peuvent être stockées dans MariaDB/MySQL, la base de données PostgreSQL ou OpenLDAP. Ce qui suit est une liste de logiciels open source qui seront automatiquement installés et configurés par iRedMail.

  • Serveur SMTP Postfix
  • Serveur IMAP Dovecot
  • Serveur Web Nginx pour servir le panneau d'administration et la messagerie Web
  • OpenLDAP, MySQL/MariaDB ou PostgreSQL pour stocker les informations utilisateur
  • Amavised-nouveau pour la signature et la vérification DKIM
  • SpamAssassin pour l'anti-spam
  • ClamAV pour l'antivirus
  • Messagerie Web Roundcube
  • Logiciel de groupe SOGo, fournissant des services de messagerie Web, de calendrier (CalDAV), de contacts (CardDAV), de tâches et d'ActiveSync.
  • Fail2ban pour protéger SSH
  • gestionnaire de liste de diffusion mlmmj
  • Surveillance du serveur Netdata
  • Serveur de stratégie iRedAPD Postfix pour la liste grise

Étape 1 : Choisissez le bon fournisseur d'hébergement et achetez un nom de domaine

Pour configurer un serveur de messagerie complet avec iRedMail, vous avez besoin d'un serveur avec au moins 3 Go de RAM, car après l'installation, votre serveur utilisera plus de 2 Go de RAM.

Il est fortement recommandé d'installer iRedMail sur une installation propre du serveur Ubuntu 20.04.

Ce tutoriel est réalisé sur un VPS Kamatera (serveur privé virtuel) à 9 $/mois avec 1 CPU et 3 Go de RAM. Ils proposent un essai gratuit de 30 jours.

Kamatera est une très bonne option pour exécuter un serveur de messagerie car

  • Ils ne bloquent pas le port 25, vous pouvez donc envoyer un nombre illimité d'e-mails (e-mails transactionnels et newsletters) sans dépenser d'argent en service de relais SMTP. Kamatera n'a aucune limite SMTP. Vous pouvez envoyer un million d'e-mails par jour.
  • L'adresse IP ne figure sur aucune liste noire de courrier électronique. (Au moins, c'est vrai dans mon cas. J'ai choisi le centre de données de Dallas.) Vous ne voulez certainement pas figurer sur la redoutable liste noire IP de Microsoft Outlook ou sur la liste noire des spamrats. Certaines listes noires bloquent une plage IP entière et vous n'avez aucun moyen de supprimer votre adresse IP de ce type de liste noire.
  • Vous pouvez modifier l'enregistrement PTR pour améliorer la délivrabilité des e-mails.
  • Ils vous permettent d'envoyer des newsletters à vos abonnés par courrier électronique sans aucune limite horaire ni limite quotidienne, quelle qu'elle soit.
  • Vous pouvez commander plusieurs adresses IP pour un seul serveur. Ceci est très utile pour les personnes qui ont besoin d'envoyer un grand volume d'e-mails. Vous pouvez répartir le trafic de messagerie sur plusieurs adresses IP pour obtenir une meilleure délivrabilité des e-mails.

D'autres fournisseurs VPS comme DigitalOcean bloquent le port 25. DigitalOcean ne débloquera pas le port 25, vous devrez donc configurer un relais SMTP pour contourner le blocage, ce qui peut vous coûter de l'argent supplémentaire. Si vous utilisez Vultr VPS, le port 25 est bloqué par défaut. Ils peuvent le débloquer si vous ouvrez un ticket d'assistance, mais ils peuvent le bloquer à nouveau à tout moment s'ils décident que votre activité d'envoi d'e-mails n'est pas autorisée. Vultr peut en fait le rebloquer si vous utilisez ses serveurs pour envoyer des newsletters.

Accédez au site Web de Kamatera pour créer un compte, puis créez votre serveur dans le tableau de bord de votre compte.

Je vous recommande de suivre le tutoriel lié ci-dessous pour configurer correctement votre serveur VPS Linux sur Kamatera.

  • Comment créer un serveur VPS Linux sur Kamatera

Une fois que vous avez créé un serveur, Kamatera vous enverra un e-mail avec les informations de connexion SSH du serveur. Pour vous connecter à votre serveur, vous utilisez un client SSH. Si vous utilisez Linux ou macOS sur votre ordinateur, ouvrez simplement une fenêtre de terminal et exécutez la commande suivante pour vous connecter à votre serveur. Remplacez 12.34.56.78 par l'adresse IP de votre serveur.

ssh [email 

Il vous sera demandé de saisir le mot de passe.

Vous avez également besoin d'un nom de domaine. J'ai enregistré mon nom de domaine auprès de NameCheap parce que le prix est bas et qu'ils offrent une protection de la vie privée gratuite à vie.

Étape 2 : Création d'un enregistrement DNS MX

L'enregistrement MX spécifie le ou les hôtes qui gèrent les e-mails pour un nom de domaine particulier. Par exemple, l'hôte qui gère les e-mails pour linux-terminal.com est mail.linux-terminal.com. Si une personne possédant un compte Gmail envoie un e-mail à [email , le serveur Gmail interrogera l'enregistrement MX de linux-terminal.com. Lorsqu'il découvre que mail.linux-terminal.com est responsable de l'acceptation du courrier électronique, il interroge alors l'enregistrement A de mail.linux-terminal.com pour obtenir l'adresse IP, donc le l'e-mail peut être livré.

Vous devez vous rendre sur votre service d'hébergement DNS (généralement votre registraire de domaine) pour créer des enregistrements DNS. Dans votre gestionnaire DNS, créez un enregistrement MX pour votre nom de domaine. Saisissez @ dans le champ Nom pour représenter le nom de domaine principal, puis saisissez mail.your-domain.com dans le champ Valeur.

Remarque : Le nom d'hôte de l'enregistrement MX ne peut pas être un alias vers un autre nom. En outre, il est fortement recommandé d'utiliser des noms d'hôte plutôt que des adresses IP nues pour l'enregistrement MX.

Votre gestionnaire DNS peut vous demander de saisir une valeur de préférence (c'est-à-dire une valeur de priorité). Il peut s’agir de n’importe quel nombre compris entre 0 et 65 356. Un petit nombre a une priorité plus élevée qu’un grand nombre. Il est recommandé de définir la valeur sur 0, afin que ce serveur de messagerie ait la priorité la plus élevée pour la réception des e-mails. Après avoir créé l'enregistrement MX, vous devez également créer un enregistrement A pour mail.your-domain.com , afin qu'il puisse être résolu en adresse IP. Si votre serveur utilise une adresse IPv6, assurez-vous d'ajouter un enregistrement AAAA.

Astuce : Si vous utilisez le service DNS Cloudflare, vous ne devez pas activer la fonctionnalité CDN lors de la création d'un enregistrement A pour mail.your-domain.com. Cloudflare ne prend pas en charge le proxy SMTP.

Étape 3 : configuration du nom d'hôte

Connectez-vous à votre serveur via SSH, puis exécutez la commande suivante pour mettre à jour les packages logiciels existants.

sudo apt update

sudo apt upgrade -y

Pendant le processus de mise à niveau, il peut vous poser la question suivante. Si vous souhaitez continuer à utiliser le port 6543 pour SSH, sélectionnez conserver la version locale actuellement installée. Si vous souhaitez utiliser le port 22 pour SSH, sélectionnez installer la version du responsable du package.

Je recommande fortement de créer un utilisateur sudo pour gérer votre serveur plutôt que d'utiliser l'utilisateur root par défaut. Exécutez la commande suivante pour créer un utilisateur. Remplacez username par votre nom d'utilisateur préféré.

adduser username

Ajoutez ensuite l'utilisateur au groupe sudo.

adduser username sudo

Basculez vers le nouvel utilisateur.

su - username

Ensuite, définissez un nom de domaine complet (FQDN) pour votre serveur avec la commande suivante.

sudo hostnamectl set-hostname mail.your-domain.com

Nous devons également mettre à jour le fichier /etc/hosts avec un éditeur de texte en ligne de commande comme Nano.

sudo nano /etc/hosts

Modifiez-le comme ci-dessous. (Utilisez les touches fléchées pour déplacer le curseur dans le fichier.)

127.0.0.1       mail.your-domain.com localhost

Enregistrez et fermez le fichier. (Pour enregistrer un fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O, puis appuyez sur Entrée pour confirmer. Pour fermer le fichier, appuyez sur Ctrl+X >.)

Pour voir les modifications, reconnectez-vous, puis exécutez la commande suivante pour voir votre nom d'hôte.

hostname -f

Étape 4 : Configuration du serveur de messagerie sur Ubuntu 20.04 avec iRedMail

Exécutez les commandes suivantes pour télécharger la dernière version du programme d'installation du script iRedMail à partir de son référentiel Github.

wget https://github.com/iredmail/iRedMail/archive/1.5.0.tar.gz

Extrayez le fichier archivé.

tar xvf 1.5.0.tar.gz

Ensuite, cd dans le répertoire nouvellement créé.

cd iRedMail-1.5.0/

Ajoutez une autorisation exécutable au script iRedMail.sh.

chmod +x iRedMail.sh

Ensuite, exécutez le script Bash avec le privilège sudo.

sudo bash iRedMail.sh

L'assistant de configuration du serveur de messagerie apparaîtra. Utilisez la touche Tab pour sélectionner Oui et appuyez sur Entrée.

L'écran suivant vous demandera de sélectionner le chemin de stockage du courrier. Vous pouvez utiliser le chemin par défaut : /var/vmail, alors appuyez simplement sur Entrée.

Choisissez ensuite si vous souhaitez exécuter un serveur Web. Il est fortement recommandé de choisir d'exécuter un serveur Web, car vous avez besoin du panneau d'administration Web pour ajouter des comptes de messagerie. De plus, il vous permet d'accéder au webmail Roundcube. Par défaut, le serveur Web Nginx est sélectionné, vous pouvez donc simplement appuyer sur Entrée. (Un astérisque indique que l'élément est sélectionné.)

Sélectionnez ensuite le backend de stockage pour les comptes de messagerie. Choisissez-en un que vous connaissez. Ce tutoriel a choisi MariaDB. Appuyez sur les touches fléchées haut et bas et appuyez sur la barre d'espace pour sélectionner.

Si vous avez sélectionné MariaDB ou MySQL, vous devrez alors définir le mot de passe root MySQL.

Ensuite, entrez votre premier domaine de messagerie. Vous pouvez ajouter des domaines de messagerie supplémentaires ultérieurement dans le panneau d'administration Web. Ce didacticiel suppose que vous souhaitez un compte de messagerie tel que [email . Dans ce cas, vous devez saisir ici votre-domaine.com, sans sous-domaine. N'appuyez pas sur la barre d'espace après votre nom de domaine. Je pense qu'iRedMail copiera le caractère espace avec votre nom de domaine, ce qui peut entraîner un échec de l'installation.

Ensuite, définissez un mot de passe pour l'administrateur du domaine de messagerie.

Choisissez des composants facultatifs. Par défaut, 4 éléments sont sélectionnés. Si vous aimez utiliser le groupware SOGo (webmail, agenda, carnet d'adresses, ActiveSync), alors appuyez sur la touche flèche bas et la barre espace pour sélectionner. Appuyez sur Entrée pour passer à l'écran suivant.

Vous pouvez maintenant revoir vos configurations. Tapez Y pour commencer l'installation de tous les composants du serveur de messagerie.

A la fin de l'installation, choisissez y pour utiliser les règles de pare-feu fournies par iRedMail et redémarrez le pare-feu.

L'installation d'iRedMail est maintenant terminée. Vous serez informé de l'URL du webmail, du panneau d'administration Web et des informations de connexion. Le fichier iRedMail.tips contient des informations importantes sur votre serveur iRedMail.

Redémarrez votre serveur Ubuntu 20.04.

sudo shutdown -r now

Une fois votre serveur de nouveau en ligne, vous pouvez visiter le panneau d'administration Web.

https://mail.your-domain.com/iredadmin/

Notez que dans l'URL ci-dessus, le sous-répertoire permettant d'accéder au panneau d'administration est /iredadmin/, et non /iredmail/. Et comme il utilise un certificat TLS auto-signé, vous devez ajouter une exception de sécurité dans votre navigateur Web.

Étape 5 : Installation du certificat TLS Let's Encrypt

Étant donné que le serveur de messagerie utilise un certificat TLS auto-signé, les utilisateurs du client de messagerie de bureau et les utilisateurs du client de messagerie Web verront un avertissement. Pour résoudre ce problème, nous pouvons obtenir et installer un certificat TLS gratuit Let’s Encrypt.

Obtention du certificat

Tout d’abord, connectez-vous à nouveau à votre serveur via SSH et exécutez la commande suivante pour installer le client Let’s Encrypt (certbot) sur Ubuntu 20.04.

sudo apt install certbot

iRedMail a déjà configuré les paramètres TLS dans l'hôte virtuel Nginx par défaut, je recommande donc ici d'utiliser le plugin webroot, au lieu du plugin nginx, pour obtenir un certificat. Exécutez la commande suivante. Remplacez le texte rouge par vos données réelles.

sudo certbot certonly --webroot --agree-tos --email [email  -d mail.your-domain.com -w /var/www/html/

Lorsqu'il vous demande si vous souhaitez recevoir des communications de l'EFF, vous pouvez choisir Non.

Si tout s'est bien passé, vous verrez le texte suivant indiquant que vous avez obtenu avec succès un certificat TLS. Votre certificat et votre chaîne ont été enregistrés dans le répertoire /etc/letsencrypt/live/mail.your-domain.com/.

Échec d'obtention du certificat TLS

Si certbot n'a pas réussi à obtenir le certificat TLS, c'est peut-être parce que vos enregistrements DNS ne sont pas propagés sur Internet. Selon le registraire de domaine que vous utilisez, votre enregistrement DNS peut se propager instantanément, ou cela peut prendre jusqu'à 24 heures. Vous pouvez aller sur https://dnsmap.io, saisir le nom d'hôte de votre serveur de messagerie (mail.your-domain.com) pour vérifier la propagation DNS.

Si certbot n'a pas réussi à obtenir un certificat et que vous avez vu le message suivant,

Failed authorization procedure. mail.linux-terminal.com (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://mail.linux-terminal.com/.well-known/acme-challenge/IZ7hMmRE4ZlGW7cXYoq2Lc_VrFzVFyfW6E0pzNlhiOA: Timeout during connect (likely firewall problem)

Il se peut que vous ayez défini un enregistrement AAAA pour mail.your-domain.com, mais le serveur Web Nginx n'écoute pas l'adresse IPv6. Pour corriger cette erreur, modifiez le fichier /etc/nginx/sites-enabled/00-default.conf

sudo nano /etc/nginx/sites-enabled/00-default.conf

Trouvez la ligne suivante.

#listen [::]:80;

Supprimez le caractère # pour activer IPv6 pour cet hôte virtuel Nginx.

listen [::]:80;

Enregistrez et fermez le fichier. Modifiez ensuite l'hôte virtuel SSL /etc/nginx/sites-enabled/00-default-ssl.conf.

sudo nano /etc/nginx/sites-enabled/00-default-ssl.conf

Ajoutez la ligne suivante.

listen [::]:443 ssl http2;

Enregistrez et fermez le fichier. Testez ensuite la configuration de Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que la modification prenne effet.

sudo systemctl reload nginx

Exécutez à nouveau la commande suivante pour obtenir le certificat TLS. Remplacez le texte rouge par vos données réelles.

sudo certbot certonly --webroot --agree-tos --email [email  -d mail.your-domain.com -w /var/www/html/

Vous devriez maintenant pouvoir obtenir avec succès le certificat TLS.

Installation du certificat dans Nginx

Après avoir obtenu un certificat TLS, configurons le serveur Web Nginx pour l'utiliser. Modifiez le fichier de modèle SSL.

sudo nano /etc/nginx/templates/ssl.tmpl

Trouvez les 2 lignes suivantes.

ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;

Remplacez-les par :

ssl_certificate /etc/letsencrypt/live/mail.your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.your-domain.com/privkey.pem;

Enregistrez et fermez le fichier. Testez ensuite la configuration de nginx et rechargez.

sudo nginx -t

sudo systemctl reload nginx

Visitez à nouveau le panneau d'administration d'iRedMail, votre navigateur Web ne vous avertira plus car Nginx utilise désormais un certificat TLS valide.

Installation du certificat TLS dans Postfix et Dovecot

Nous devons également configurer le serveur SMTP Postfix et le serveur IMAP Dovecot pour utiliser le certificat émis par Let's Encrypt afin que le client de messagerie de bureau n'affiche pas d'avertissement de sécurité. Modifiez le fichier de configuration principal de Postfix.

sudo nano /etc/postfix/main.cf

Trouvez les 3 lignes suivantes. (lignes 95, 96, 97).

smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt

Remplacez-les par :

smtpd_tls_key_file = /etc/letsencrypt/live/mail.your-domain.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.your-domain.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.your-domain.com/chain.pem

Enregistrez et fermez le fichier. Rechargez ensuite Postfix.

sudo systemctl reload postfix

Ensuite, modifiez le fichier de configuration principal de Dovecot.

sudo nano /etc/dovecot/dovecot.conf

Amende les 2 lignes suivantes. (lignes 47, 48)

ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

Remplacez-les par :

ssl_cert = </etc/letsencrypt/live/mail.your-domain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.your-domain.com/privkey.pem

Enregistrez et fermez le fichier. Rechargez ensuite Dovecot.

sudo systemctl reload dovecot

Désormais, les utilisateurs de messagerie de bureau ne verront plus les avertissements de sécurité.

Étape 6 : Envoi d'un e-mail de test

Connectez-vous au panneau iredadmin avec le compte de messagerie postmaster ([email ). Dans l'onglet Ajouter, vous pouvez ajouter des domaines ou des adresses e-mail supplémentaires.

Après avoir créé un utilisateur, vous pouvez visiter l'adresse de messagerie Web Roundcube et vous connecter avec le nouveau compte utilisateur de messagerie.

https://mail.your-domain.com/mail/

Vous pouvez désormais tester l'envoi et la réception d'e-mails. Veuillez noter que vous devrez peut-être attendre quelques minutes pour recevoir des e-mails, car iRedMail active par défaut la liste grise, qui est un moyen d'indiquer aux autres serveurs SMTP d'envoi de réessayer dans quelques minutes. La ligne suivante dans le fichier journal de messagerie /var/log/mail.log indique que la liste grise est activée.

Recipient address rejected: Intentional policy rejection, please try again later;

Ajout d'espace d'échange

ClamAV est utilisé pour analyser les virus dans les messages électroniques. ClamAV peut utiliser une bonne quantité de RAM. S'il n'y a pas assez de RAM sur votre serveur, ClamAV ne fonctionnera pas correctement, ce qui empêchera votre serveur de messagerie d'envoyer des emails. Vous pouvez ajouter un fichier d'échange à votre serveur pour augmenter la RAM totale sur votre serveur. (Notez que l'utilisation de l'espace de swap sur le serveur dégradera les performances du serveur. Si vous souhaitez de meilleures performances, vous devez mettre à niveau la RAM physique au lieu d'utiliser l'espace de swap.)

Pour ajouter de l'espace de swap sur le serveur, utilisez d'abord la commande fallocate pour créer un fichier. Par exemple, créez un fichier nommé swapfile avec une capacité de 1 Go dans le système de fichiers racine :

sudo fallocate -l 1G /swapfile

Assurez-vous ensuite que seul root peut y lire et y écrire.

sudo chmod 600 /swapfile

Formatez-le pour échanger :

sudo mkswap /swapfile

Sortir :

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=0aab5886-4dfb-40d4-920d-fb1115c67433

Activer le fichier d'échange

sudo swapon /swapfile

Pour monter l'espace de swap au démarrage du système, éditez le fichier /etc/fstab.

sudo nano /etc/fstab

Ajoutez la ligne suivante au bas de ce fichier.

/swapfile    swap    swap     defaults    0   0

Enregistrez et fermez le fichier. Rechargez ensuite systemd et redémarrez ClamAV.

sudo systemctl daemon-reload

sudo systemctl restart clamav-daemon

Étape 7 : Vérifier si le port 25 (sortant) est bloqué

Votre FAI ou votre hébergeur ne bloquera pas les connexions entrantes sur le port 25 de votre serveur, ce qui signifie que vous pourrez recevoir des e-mails d'autres serveurs de messagerie. Cependant, de nombreux FAI/hébergeurs bloquent les connexions sortantes vers le port 25 d’autres serveurs de messagerie, ce qui signifie que vous ne pouvez pas envoyer d’e-mails.

Si votre e-mail n'est pas arrivé à votre autre adresse e-mail telle que Gmail, exécutez la commande suivante sur votre serveur de messagerie pour vérifier si le port 25 (sortant) est bloqué.

telnet gmail-smtp-in.l.google.com 25

S'il n'est pas bloqué, vous verrez des messages comme ci-dessous, indiquant qu'une connexion a été établie avec succès. (Indice : saisissez quit et appuyez sur Entrée pour fermer la connexion.)

Trying 74.125.68.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp

Si le port 25 (sortant) est bloqué, vous verrez quelque chose comme :

Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out

Dans ce cas, votre Postfix ne peut pas envoyer d'e-mails à d'autres serveurs SMTP. Demandez à votre FAI/hébergeur de l'ouvrir pour vous. S'ils refusent votre demande, vous devez configurer le relais SMTP pour contourner le blocage du port 25.

Vous ne parvenez toujours pas à envoyer un e-mail ?

Si le port 25 (sortant) n'est pas bloqué, mais que vous ne pouvez toujours pas envoyer d'e-mails depuis votre propre serveur de messagerie vers votre autre adresse e-mail comme Gmail, vous devez alors vérifier le journal de messagerie (/var/log/mail.log ).

sudo nano /var/log/mail.log

Par exemple, certaines personnes pourraient voir les lignes suivantes dans le fichier.

host gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1 [2a0d:7c40:3000:b8b::2] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=IPv6AuthError for more information

Cela signifie que votre serveur de messagerie utilise IPv6 pour envoyer l'e-mail, mais que vous n'avez pas configuré d'enregistrements IPv6. Vous devez accéder à votre gestionnaire DNS, définir l'enregistrement AAAA pour mail.your-domain.com, puis vous devez définir l'enregistrement PTR pour votre IPv6. adresse, qui est discutée à l’étape 9.

Étape 8 : Utilisation des clients de messagerie sur votre ordinateur ou appareil mobile

Lancez votre client de messagerie de bureau tel que Mozilla Thunderbird et ajoutez un compte de messagerie.

  • Dans la section du serveur entrant, sélectionnez le protocole IMAP, saisissez mail.your-domain.com comme nom de serveur, choisissez le port 143 et STARTTLS. Choisissez mot de passe normal comme méthode d'authentification.
  • Dans la section sortante, sélectionnez le protocole SMTP, saisissez mail.votre-domaine.com comme nom de serveur, choisissez le port 587 et STARTTLS. Choisissez mot de passe normal comme méthode d'authentification.

Fail2ban bloque votre propre adresse IP

Si vous avez commis une erreur et que vous n'avez pas réussi à vous connecter plusieurs fois au serveur de messagerie, le service Fail2ban sur le serveur de messagerie peut bloquer votre adresse IP. Vous pouvez ajouter votre adresse IP à la liste blanche en modifiant le fichier jail.local.

sudo nano /etc/fail2ban/jail.local

Ajoutez votre propre adresse IP à la liste des ignorés comme ci-dessous. Remplacez 12.34.56.78 par votre véritable adresse IP.

ignoreip = 12.34.56.78 127.0.0.1 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

Enregistrez et fermez le fichier. Puis redémarrez Fail2ban.

sudo systemctl restart fail2ban

Étape 9 : Améliorer la délivrabilité des e-mails

Pour éviter que vos e-mails ne soient signalés comme spam, vous devez définir les enregistrements PTR, SPF, DKIM et DMARC.

Enregistrement PTR

Un enregistrement de pointeur, ou enregistrement PTR, mappe une adresse IP à un FQDN (nom de domaine complet). C'est l'équivalent de l'enregistrement A et est utilisé pour la recherche DNS inversée, ce qui peut aider à bloquer les spammeurs. De nombreux serveurs SMTP rejettent les e-mails si aucun enregistrement PTR n'est trouvé pour le serveur d'envoi.

Pour vérifier l'enregistrement PTR d'une adresse IP, exécutez cette commande :

dig -x IP-address +short

ou

host IP-address

L'enregistrement PTR n'est pas géré par votre registraire de domaine. Il est géré par l’organisation qui vous donne une adresse IP. Parce que vous obtenez l'adresse IP de votre fournisseur d'hébergement ou de votre FAI, et non de votre registraire de domaine, vous devez donc définir un enregistrement PTR pour votre IP dans le panneau de contrôle de votre fournisseur d'hébergement, ou demander à votre FAI. Sa valeur doit être le nom d'hôte de votre serveur de messagerie : mail.votre-domaine.com. Si votre serveur utilise une adresse IPv6, veillez également à ajouter un enregistrement PTR pour votre adresse IPv6.

Pour modifier l'enregistrement DNS inversé de votre VPS Kamatera, connectez-vous à l'espace client Kamatera, puis ouvrez un ticket d'assistance et dites-leur d'ajouter un enregistrement PTR pour les adresses IP de votre serveur afin de pointer l'adresse IP vers mail.your-domain. com. Ce n’est pas pratique, pourriez-vous penser, mais cela vise à éloigner les spammeurs de la plate-forme, afin que les expéditeurs d’e-mails légitimes comme nous aient une excellente réputation IP.

Enregistrement SPF

L'enregistrement SPF (Sender Policy Framework) spécifie quels hôtes ou adresses IP sont autorisés à envoyer des e-mails au nom d'un domaine. Vous devez autoriser uniquement votre propre serveur de messagerie ou celui de votre FAI à envoyer des e-mails pour votre domaine. Dans votre interface de gestion DNS, créez un nouvel enregistrement TXT comme ci-dessous.

Explication:

  • TXT indique qu'il s'agit d'un enregistrement TXT.
  • Saisissez @ dans le champ du nom pour représenter le nom de domaine principal.
  • v=spf1 indique qu'il s'agit d'un enregistrement SPF et que la version est SPF1.
  • mx signifie que tous les hôtes répertoriés dans les enregistrements MX sont autorisés à envoyer des e-mails pour votre domaine et que tous les autres hôtes sont interdits.
  • ~all indique que les e-mails de votre domaine ne doivent provenir que des hôtes spécifiés dans l'enregistrement SPF. Les e-mails provenant d’autres hôtes seront signalés comme faux.

Pour vérifier si votre enregistrement SPF est propagé sur l'Internet public, vous pouvez utiliser l'utilitaire dig sur votre machine Linux comme ci-dessous :

dig your-domain.com txt

L'option txt indique à dig que nous souhaitons uniquement interroger les enregistrements TXT.

Enregistrement DKIM

DKIM (DomainKeys Identified Mail) utilise une clé privée pour signer numériquement les e-mails envoyés depuis votre domaine. Les serveurs SMTP de réception vérifient la signature à l'aide de la clé publique, qui est publiée dans l'enregistrement DNS DKIM.

Le script iRedMail a automatiquement configuré DKIM pour votre serveur. Il ne reste plus qu'à créer un enregistrement DKIM dans le gestionnaire DNS. Exécutez la commande suivante pour afficher la clé publique DKIM.

sudo amavisd-new showkeys

La clé publique DKIM est entre parenthèses.

Ensuite dans votre gestionnaire DNS, créez un enregistrement TXT, saisissez dkim._domainkey dans le champ nom. Copiez tout ce qui se trouve entre parenthèses et collez-le dans le champ de valeur. Supprimez tous les guillemets doubles et les sauts de ligne.

Après avoir enregistré vos modifications, exécutez la commande suivante pour tester si votre enregistrement DKIM est correct.

sudo amavisd-new testkeys

Si l'enregistrement DKIM est correct, le test réussira.

TESTING#1 linux-terminal.com: dkim._domainkey.linux-terminal.com => pass

Notez que votre enregistrement DKIM peut avoir besoin d'un certain temps pour se propager sur Internet. Selon le registraire de domaine que vous utilisez, votre enregistrement DNS peut se propager instantanément, ou cela peut prendre jusqu'à 24 heures. Vous pouvez aller sur https://www.dmarcanalyzer.com/dkim/dkim-check/, saisir dkim comme sélecteur et saisir votre nom de domaine pour vérifier la propagation des enregistrements DKIM.

Enregistrement DMARC

DMARC signifie Authentification, reporting et conformité des messages basés sur le domaine. DMARC peut aider les serveurs de réception de courrier électronique à identifier les courriers électroniques légitimes et à empêcher que votre nom de domaine ne soit utilisé par usurpation d'e-mails.

Pour créer un enregistrement DMARC, accédez à votre gestionnaire DNS et ajoutez un enregistrement TXT. Dans le champ Nom, saisissez _dmarc. Dans le champ de valeur, saisissez ce qui suit. (Vous devez créer l'adresse e-mail [email .)

v=DMARC1; p=none; pct=100; rua=mailto:[email 

L'enregistrement DMARC ci-dessus est un point de départ sûr. Si vous souhaitez lire l’explication complète de DMARC, veuillez consulter l’article suivant. Notez que ceci est facultatif.

  • Création d'un enregistrement DMARC pour protéger votre nom de domaine contre l'usurpation d'e-mail

Étape 10 : Test du score et du placement des e-mails

Après avoir créé l'enregistrement PTR, SPF, DKIM, accédez à https://www.mail-tester.com. Vous verrez une adresse e-mail unique. Envoyez un e-mail depuis votre domaine à cette adresse, puis vérifiez votre score. Comme vous pouvez le constater, j'ai obtenu un score parfait. Dans le résultat du test, vous devez vérifier si votre enregistrement PTR, SPF et DKIM est valide.

L'e-mail est rejeté par la boîte aux lettres Microsoft ?

Microsoft utilise une liste noire interne qui bloque de nombreuses adresses IP légitimes. Si vos e-mails sont rejetés par Outlook ou Hotmail, vous devez suivre le tutoriel lié ci-dessous pour contourner la liste noire de Microsoft Outlook.

  • Comment contourner la liste noire de Microsoft Outlook et d'autres listes noires

Que faire si vos e-mails sont toujours marqués comme spam ?

J'ai d'autres conseils pour vous dans cet article : Comment empêcher que vos e-mails ne soient marqués comme spam. Même si cela prendra du temps et des efforts, vos e-mails finiront par être placés dans la boîte de réception après avoir appliqué ces conseils.

Ajout de plusieurs domaines de messagerie

J'ai écrit cet article pour vous montrer comment ajouter plusieurs domaines de messagerie dans iRedMail.

Comment désactiver la liste grise

Par défaut, iRedMail a activé la liste grise, qui indique aux autres serveurs SMTP d'envoi de réessayer dans quelques minutes. Ceci est principalement utile pour bloquer le spam, mais cela dégrade également l'expérience utilisateur. Si vous préférez désactiver la liste grise, suivez les instructions ci-dessous.

Ajoutez une autorisation d'écriture au fichier /opt/iredapd/settings.py.

sudo chmod 600 /opt/iredapd/settings.py

Modifiez ensuite le fichier de configuration.

sudo nano /opt/iredapd/settings.py

Trouvez la ligne suivante.

plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

Supprimez "greylisting" de la liste. Enregistrez et fermez le fichier. Redémarrez ensuite iredapd.

sudo systemctl restart iredapd

Remettez le fichier de configuration en mode lecture seule.

sudo chmod 400 /opt/iredapd/settings.py

Activation du port SMTPS 465

Si vous envisagez d'utiliser le client Microsoft Outlook, vous devez activer le port SMTPS 465 sur le serveur SMTP Postfix.

Dépannage

Tout d’abord, veuillez utiliser un VPS avec au moins 4 Go de RAM. L'exécution d'iRedMail sur un VPS de 1 Go de RAM entraînera la suppression de la base de données, SpamAssassin ou ClamAV en raison d'un problème de mémoire insuffisante. Si vous souhaitez vraiment utiliser un VPS de 1 Go de RAM, vous allez perdre les e-mails entrants et avoir d'autres résultats indésirables.

Si l'interface Web d'iRedMail n'est pas accessible, comme une erreur de passerelle 502, vous devez vérifier les journaux Nginx dans le répertoire /var/log/nginx/ pour trouver des indices. Vous pouvez également consulter le journal de messagerie /var/log/mail.log.

Vérifiez si les différents services sont en cours d'exécution.

systemctl status postfix

systemctl status dovecot

systemctl status nginx

systemctl status mariadb

systemctl status clamav-daemon

systemctl status amavis

Si vous avez activé le pare-feu, vous devez ouvrir les ports suivants dans le pare-feu.

HTTP port:  80
HTTPS port: 443
SMTP port:  25
Submission port: 587 (and 465 if you are going to use Microsoft Outlook mail client)
IMAP port:  143 and 993

Si vous souhaitez utiliser le pare-feu UFW, consultez mon guide ici : Démarrer avec le pare-feu UFW sur Debian et Ubuntu.

Comment renouveler le certificat TLS

Le certificat TLS émis par Let's Encrypt n'est valable que 90 jours et il est important que vous configuriez une tâche Cron pour renouveler automatiquement le certificat. Vous pouvez exécuter la commande suivante pour renouveler le certificat.

sudo certbot renew -w /var/www/html/

Vous pouvez utiliser l'option --dry-run pour tester le processus de renouvellement, au lieu de faire un véritable renouvellement.

sudo certbot renew -w /var/www/html/ --dry-run

Si vous voyez l'erreur suivante lors du renouvellement du certificat TLS.

The client lacks sufficient authorization :: Invalid response

Ensuite, vous devez créer le répertoire caché.

sudo mkdir -p /var/www/html/.well-known/acme-challenge

Et définissez www-data comme propriétaire de la racine Web.

sudo chown www-data:www-data /var/www/html/ -R

Modifiez également l'hôte virtuel SSL /etc/nginx/sites-enabled/00-default-ssl.conf. Ajoutez les lignes suivantes.

location ~ /.well-known/acme-challenge {
     root /var/www/html/;
     allow all;
}

Enregistrez et fermez le fichier. Testez la configuration de Nginx et rechargez.

sudo nginx -t
sudo systemctl reload nginx

Créer une tâche Cron

Si l'essai à sec réussit, vous pouvez créer une tâche Cron pour renouveler automatiquement le certificat. Ouvrez simplement le fichier crontab de l’utilisateur root.

sudo crontab -e

Ajoutez ensuite la ligne suivante en bas du fichier.

@daily certbot renew -w /var/www/html/ --quiet && systemctl reload postfix dovecot nginx

Le rechargement de Postfix, Dovecot et Nginx est nécessaire pour que ces programmes récupèrent le nouveau certificat et la clé privée.

Configuration du serveur de messagerie de sauvegarde

Votre serveur de messagerie principal peut parfois être en panne. Si vous hébergez votre serveur de messagerie dans un centre de données, les temps d’arrêt sont très minimes, vous ne devriez donc pas craindre de perdre les e-mails entrants. Si vous hébergez votre serveur de messagerie chez vous, les temps d'arrêt ne peuvent pas être prédits. C'est donc une bonne pratique d'exécuter un serveur de messagerie de sauvegarde dans un centre de données pour éviter de perdre les e-mails entrants. Le serveur de messagerie de sauvegarde n'a besoin que de 512 Mo de RAM pour fonctionner. Veuillez vérifier tous les détails dans l’article suivant.

  • Comment configurer un serveur de messagerie de sauvegarde avec Postfix sur Ubuntu (Guide complet)

Pour les utilisateurs avancés

iRedMail n'inclut pas de service de vérification DMARC, vous pouvez consulter le didacticiel suivant pour configurer OpenDMARC afin de bloquer l'usurpation d'e-mails.

  • Configurer OpenDMARC avec Postfix sur Ubuntu pour bloquer l'usurpation d'e-mails/spam

Vous souhaiterez peut-être personnaliser le filtre de contenu SpamAssassin pour mieux détecter le spam.

  • Bloquez le spam par courrier électronique en vérifiant l'en-tête et le corps dans Postfix/SpamAssassin

Si votre site Web et votre serveur de messagerie fonctionnent sur deux VPS (serveur privé virtuel) différents, vous pouvez configurer un relais SMTP entre votre site Web et votre serveur de messagerie, afin que votre site Web puisse envoyer des e-mails via votre serveur de messagerie. Voir l'article suivant.

  • Comment configurer le relais SMTP entre 2 serveurs SMTP Postfix sur Ubuntu

Emballer

C'est ça! J'espère que ce tutoriel vous a aidé à configurer un serveur de messagerie sur Ubuntu 20.04 avec iRedMail. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de trucs et astuces. Prenez soin de vous 🙂

Articles connexes