GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment configurer facilement un serveur de messagerie complet sur CentOS 7 avec iRedMail

Configurer votre propre serveur de messagerie sur 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 CentOS 7, vous évitant ainsi beaucoup de temps et de 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 des boîtes aux lettres illimitées et des domaines de messagerie illimités 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. Voici une liste de logiciels open source qui seront automatiquement installés et configurés par iRedMail.

  • Serveur SMTP Postfix
  • Serveur IMAP Dovecot
  • Nginx serveur Web pour servir le panneau d'administration et le webmail
  • OpenLDAP, MySQL/MariaDB ou PostgreSQL pour le stockage des informations utilisateur
  • Amavised-nouveau pour la signature et la vérification DKIM
  • SpamAssassin pour l'anti-spam
  • ClamAV pour l'antivirus
  • Webmail Roundcube
  • Fail2ban pour protéger SSH
  • gestionnaire de liste de diffusion mlmmj
  • Surveillance du serveur Netdata
  • Serveur de politique 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 de CentOS 7 serveur.

Ce tutoriel est réalisé sur un Kamatera VPS (serveur privé virtuel) à 9 $/mois avec 1 CPU et 3 Go de RAM. Ils offrent 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 ainsi envoyer un nombre illimité d'e-mails (e-mails transactionnels et newsletters) sans dépenser d'argent pour le service de relais SMTP. Kamatera n'a pas de limites SMTP. Vous pouvez envoyer un million d'e-mails par jour.
  • L'adresse IP ne figure sur aucune liste noire d'e-mails . (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 des adresses IP de Microsoft Outlook ou sur la liste noire des spamrats. Certaines listes noires bloquent toute une plage d'adresses IP 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 e-mail avec non limites horaires ou limites quotidiennes, quelles qu'elles soient.
  • Vous pouvez commander plusieurs adresses IP pour un seul serveur. Ceci est très utile pour les personnes qui doivent envoyer un grand nombre d'e-mails. Vous pouvez répartir le trafic des e-mails sur plusieurs adresses IP pour améliorer la délivrabilité des e-mails.

D'autres fournisseurs de VPS comme DigitalOcean bloquent le port 25. DigitalOcean ne débloquerait 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 leurs 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 recommande de suivre le tutoriel lié ci-dessous pour configurer correctement votre serveur Linux VPS 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 protected]

Il vous sera demandé d'entrer le mot de passe.

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

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

L'enregistrement MX spécifie quel hôte ou quels hôtes gèrent les e-mails pour un nom de domaine particulier. Par exemple, l'hôte qui gère les e-mails pour linuxbabe.com est mail.linuxbabe.com . Si quelqu'un avec un compte Gmail envoie un e-mail à [email protected] , le serveur Gmail interrogera l'enregistrement MX de linuxbabe.com. Quand il découvre que mail.linuxbabe.com est responsable de l'acceptation des e-mails, il interroge ensuite l'enregistrement A de mail.linuxbabe.com pour obtenir l'adresse IP, ainsi l'e-mail peut être livré.

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 pour l'enregistrement MX ne peut pas être un alias vers un autre nom. De plus, 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 d'entrer 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 une 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 :Configurer le nom d'hôte

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

sudo yum update -y

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

sudo adduser username

Définissez un mot de passe pour cet utilisateur.

sudo passwd username

Ajouter cet utilisateur à la wheel groupe afin d'utiliser sudo .

sudo gpasswd -a username wheel

Passez au 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 /etc/hosts fichier 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 Enter confirmer. Pour fermer le fichier, appuyez sur Ctrl+X .)

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

hostname -f

Étape 4 :Configuration du serveur de messagerie sur CentOS 7 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.

sudo dnf install wget tar -y
wget https://github.com/iredmail/iRedMail/archive/1.5.1.tar.gz

Extrayez le fichier archivé.

tar xvf 1.5.1.tar.gz

Puis cd dans le répertoire nouvellement créé.

cd iRedMail-1.5.1/

Ajouter une autorisation exécutable à iRedMail.sh script.

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ît. 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 celui 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. Il vous permet également 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 avec lequel vous êtes familier. Ce tutoriel a choisi MariaDB. Appuyez sur les flèches haut et bas et appuyez sur la barre d'espace pour sélectionner.

Si vous avez sélectionné MariaDB ou MySQL, vous devrez 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 protected] . Dans ce cas, vous devez entrer votre-domaine.com ici, 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 optionnels. Par défaut, tous les 4 éléments sont sélectionnés. Alors appuyez simplement sur Entrée.

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

Assurez-vous de ne voir aucune erreur dans le processus d'installation. S'il y a des erreurs, il est préférable de réinstaller le système d'exploitation, puis de réinstaller iRedMail sur votre serveur, sinon votre serveur de messagerie risque de ne pas fonctionner correctement.

A la fin de l'installation, choisissez y pour utiliser les règles de pare-feu fournies par iRedMail et redémarrer 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. Les iRedMail.tips Le fichier contient des informations importantes sur votre serveur iRedMail.

Redémarrez votre serveur CentOS 7.

sudo shutdown -r now

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

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

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

Étape 5 :Installer le certificat Let's Encrypt TLS

É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 Let's Encrypt TLS gratuit.

Obtenir le certificat

Tout d'abord, reconnectez-vous à votre serveur via SSH et exécutez les commandes suivantes pour installer le client Let's Encrypt (certbot) sur CentOS 7.

sudo yum install certbot python-certbot-nginx -y

iRedMail a déjà configuré les paramètres TLS dans l'hôte virtuel Nginx par défaut, donc ici, je recommande d'utiliser le plugin webroot, au lieu du plugin nginx, pour obtenir le certificat. Exécutez la commande suivante. Remplacez par le texte rouge avec votre propre adresse e-mail et nom d'hôte.

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

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

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

Échec de l'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 bureau d'enregistrement de domaine que vous utilisez, votre enregistrement DNS peut être propagé instantanément, ou sa propagation peut prendre jusqu'à 24 heures. Vous pouvez aller sur https://dnsmap.io, entrer le nom d'hôte de votre serveur de messagerie (mail.your-domain.com ) pour vérifier la propagation DNS.

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/pki/tls/certs/iRedMail.crt;
ssl_certificate_key /etc/pki/tls/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 maintenant 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. (ligne 95, 96, 97).

smtpd_tls_key_file = /etc/pki/tls/private/iRedMail.key
smtpd_tls_cert_file = /etc/pki/tls/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/pki/tls/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. Puis rechargez Postfix.

sudo systemctl reload postfix

Ensuite, modifiez le fichier de configuration principal de Dovecot.

sudo nano /etc/dovecot/dovecot.conf

Fine les 2 lignes suivantes. (ligne 47, 48)

ssl_cert = </etc/pki/tls/certs/iRedMail.crt
ssl_key = </etc/pki/tls/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. Puis rechargez le pigeonnier.

sudo systemctl reload dovecot

À partir de maintenant, les utilisateurs de messagerie de bureau ne verront plus les avertissements de sécurité.

Étape 6 :Envoi d'e-mails de test

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

Si vous voyez l'erreur "aucun domaine sous contrôle", veuillez vous référer à cet article.

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

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

Vous pouvez maintenant 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 de dire aux autres serveurs SMTP d'envoi de réessayer dans quelques minutes. La ligne suivante dans le fichier journal de messagerie /var/log/maillog indique que la liste grise est activée.

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

Vérifier si ClamAV est en cours d'exécution

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 e-mails. Vous pouvez vérifier son statut avec :

systemctl status [email protected]

Si votre ClamAV s'active toujours comme ci-dessous, vous avez un problème.

Vérifiez les journaux ClamAV.

sudo journalctl -eu [email protected]

Si vous voyez la ligne suivante dans les journaux, cela signifie que votre serveur n'a pas assez de RAM pour exécuter ClamAV.

Échec de
daemonize() failed: Cannot allocate memory

Vous pouvez ajouter un fichier d'échange à votre serveur pour augmenter la RAM totale sur votre serveur. (Notez que l'utilisation de l'espace d'échange sur le serveur peut dégrader considérablement les performances du serveur. Si vous voulez de meilleures performances, vous devez mettre à niveau la RAM physique au lieu d'utiliser l'espace d'échange.)

Pour ajouter de l'espace d'échange sur le serveur, utilisez d'abord le fallocate commande 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 lire et écrire dessus.

sudo chmod 600 /swapfile

Formatez-le pour échanger :

sudo mkswap /swapfile

Sortie :

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

Activer le fichier d'échange

sudo swapon /swapfile

Attendez quelques secondes, votre ClamAV devrait être actif (en cours d'exécution) , et cela n'empêchera pas votre serveur de messagerie d'envoyer des e-mails.

systemctl status [email protected]

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

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.

sudo systemctl daemon-reload

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

Votre FAI ou fournisseur d'hébergement ne bloquera pas la connexion entrante au port 25 de votre serveur, ce qui signifie que vous pouvez recevoir des e-mails d'autres serveurs de messagerie. Cependant, de nombreux FAI/fournisseurs d'hébergement bloquent la connexion sortante au 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, vous pouvez utiliser le telnet utilitaire pour vérifier si le port 25 (sortant) est bloqué. Installez telnet sur CentOS 7 avec :

sudo yum install telnet

Exécutez ensuite la commande suivante sur votre serveur de messagerie.

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

Si le port 25 (sortant) n'est pas bloqué, vous verrez des messages comme ci-dessous, qui indiquent qu'une connexion est établie avec succès. (Astuce :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'emails vers d'autres serveurs SMTP. Demandez à votre FAI/fournisseur d'hébergement de l'ouvrir pour vous. S'ils refusent votre demande, vous devez configurer un relais SMTP pour contourner le blocage du port 25.

Vous ne pouvez toujours pas envoyer d'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 telle que Gmail, vous devez vérifier le journal des e-mails (/var/log/mail.log ).

sudo nano /var/log/mail.log

Par exemple, certaines personnes peuvent 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 vous rendre dans votre gestionnaire DNS, définir AAAA record pour mail.your-domain.com , alors vous devez définir PTR enregistrer pour votre adresse IPv6, qui est abordée à l'étape 9.

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.

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

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"]

Supprimer "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

Étape 8 :Utiliser les clients de messagerie sur votre ordinateur ou votre appareil mobile

Lancez votre client de messagerie de bureau tel que Mozilla Thunderbird et ajoutez un compte de messagerie. Si Thunderbird a trouvé la configuration de votre serveur de messagerie comme ci-dessous, cliquez simplement sur Terminé et vous pourrez lire et envoyer des e-mails.

Si Thunderbird n'a pas trouvé la configuration de votre serveur de messagerie, cliquez sur Configuration manuelle pour entrer les détails de votre serveur de messagerie.

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

Astuce :Vous pouvez également utiliser IMAP sur le port 993 avec le cryptage SSL/TLS.

Fail2ban bloque votre propre adresse IP

Si vous avez fait une erreur et que vous ne vous êtes pas connecté 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 jail.local fichier.

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. Redémarrez ensuite 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 PTR , SPF , DKIM et DMARC enregistrements.

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 le DNS inversé recherche, 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 bureau d'enregistrement de domaine. Il est géré par la personne qui vous donne une adresse IP. Étant donné 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 définir un enregistrement PTR pour votre IP dans le panneau de configuration 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.your-domain.com . Si votre serveur utilise une adresse IPv6, assurez-vous d'ajouter également un enregistrement PTR pour votre adresse IPv6.

Pour modifier l'enregistrement DNS inverse 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 faire pointer l'adresse IP vers mail.your-domain.com . Ce n'est pas pratique, vous pourriez penser, mais c'est pour éloigner les spammeurs de la plate-forme, donc les expéditeurs légitimes d'e-mails comme nous auront une excellente réputation IP.

Enregistrement SPF

FPS (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 le serveur 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.

Où :

  • TXT indique qu'il s'agit d'un enregistrement TXT.
  • Entrez @ 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.
  • ~tous 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 falsifiés.

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

Le txt l'option indique dig que nous voulons 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. La seule chose à faire est de créer un enregistrement DKIM dans le gestionnaire DNS. Exécutez la commande suivante pour afficher la clé publique DKIM.

sudo amavisd -c /etc/amavisd/amavisd.conf showkeys

La clé publique DKIM est entre parenthèses.

Ensuite dans votre gestionnaire DNS, créez un enregistrement TXT, entrez dkim._domainkey dans le champ du nom. Copiez tout entre parenthèses et collez 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 -c /etc/amavisd/amavisd.conf testkeys

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

TESTING#1 linuxbabe.com: dkim._domainkey.linuxbabe.com => pass

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

Enregistrement DMARC

DMARC signifie Domain-based Message Authentication, Reporting and Conformance. DMARC peut aider à recevoir des serveurs de messagerie pour identifier les e-mails légitimes et empêcher l'utilisation de votre nom de domaine par l'usurpation d'e-mails.

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

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

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-mails

Étape 10 :Tester le score et l'emplacement 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 voir, j'ai obtenu un score parfait. Dans le résultat du test, vous devez vérifier si votre enregistrement PTR, SPF et DKIM sont valides.

Mail-tester.com ne peut vous montrer qu'un score d'expéditeur. Il existe un autre service appelé GlockApps qui vous permet de vérifier si votre e-mail est arrivé dans la boîte de réception ou le dossier spam du destinataire, ou s'il a été rejeté. Il prend en charge de nombreux fournisseurs de messagerie populaires tels que Gmail, Outlook, Hotmail, YahooMail, iCloud mail, etc.

Que se passe-t-il si vos e-mails sont toujours marqués comme spam ?

J'ai plus de conseils pour vous dans cet article :Comment empêcher que vos e-mails soient marqués comme spam. Bien que cela prenne 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.

Que se passe-t-il si votre e-mail est rejeté par Microsoft Mailbox ?

Microsoft semble utiliser 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 soumettre le formulaire d'informations sur l'expéditeur. Après cela, votre e-mail sera accepté par Outlook/Hotmail.

Ajout de plusieurs domaines de messagerie

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

Activation du port SMTPS 465

Si vous comptez utiliser le client Microsoft Outlook, vous devez activer le port SMTPS 465 sur le serveur SMTP de Postfix.

Dépannage

Tout d'abord, veuillez utiliser un VPS avec au moins 4 Go de RAM. Running iRedMail on a 1GB RAM VPS will cause the database, SpamAssassin, or ClamAV to be killed because of out-of-memory problem. If you really want to use a 1GB RAM VPS, you are going to lose incoming emails and have other undesirable outcomes.

If the iRedMail web interface isn’t accessible, like a 502 gateway error, you should check the Nginx logs in /var/log/nginx/ directory to find clues. You may also want to check the mail log /var/log/maillog .

Check if the various services are running.

systemctl status postfix

systemctl status dovecot

systemctl status nginx

systemctl status mariadb

systemctl status [email protected]

systemctl status amavisd

If you enabled the firewall, you should open the following ports in the firewall.

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

If you would like to use the UFW firewall, check my guide here:Getting started with UFW firewall on Debian and Ubuntu.

How to Renew TLS Certificate

Let’s Encrypt issued TLS certificate is valid for 90 days only and it’s important that you set up a Cron job to automatically renew the certificate. You can run the following command to renew certificate.

sudo certbot renew -w /var/www/html

You can use the --dry-run option to test the renewal process, instead of doing a real renewal.

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

If you see the following error when renewing TLS certificate.

The client lacks sufficient authorization :: Invalid response

Then you need to create the hidden directory.

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

And set www-data as the owner of the webroot.

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

Also, edit the SSL virtual host /etc/nginx/sites-enabled/00-default-ssl.conf . Add the following lines.

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

Enregistrez et fermez le fichier. Test Nginx configuration and reload.

sudo nginx -t
sudo systemctl reload nginx

Create Cron Job

If now the dry run is successful, you can create Cron job to automatically renew certificate. Ouvrez simplement le fichier crontab de l'utilisateur root.

sudo crontab -e

Then add the following line at the bottom of the file.

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

Reloading Postfix, Dovecot and Nginx is necessary to make these programs pick up the new certificate and private key.

For Advanced Users

You may want to customize the SpamAssassin content filter to better detect spam.

  • Block Email Spam By Checking Header and Body in Postfix/SpamAssassin

If your website and mail server are running on two different VPS (virtual private server), you can set up SMTP relay between your website and mail server, so that your website can send emails through your mail server. See the following article.

  • Set up SMTP relay between 2 Postfix SMTP servers on CentOS/RHEL

Cent OS
  1. Comment configurer un serveur OpenVPN sur CentOS 7

  2. Configurer le serveur DHCP sur CentOS 8 - Comment faire ?

  3. Configurer un serveur de messagerie avec PostfixAdmin et MariaDB sur CentOS 7

  4. Comment configurer un serveur de messagerie avec PostfixAdmin sur CentOS 7

  5. Comment envoyer un email avec mon serveur CentOS ?

Comment configurer rapidement un serveur de messagerie sur Ubuntu 20.04 avec Modoboa

Comment installer le serveur de messagerie avec PostfixAdmin sur CentOS 7

Comment configurer le serveur DHCP sur CentOS 8

Comment configurer un serveur de messagerie complet avec IRedMail sur Centos 7 VPS

Comment configurer un serveur de messagerie complet avec iRedMail sur Ubuntu 18.04 VPS

Comment configurer un serveur de messagerie avec Modoboa sur Ubuntu 20.04