GNU/Linux >> Tutoriels Linux >  >> Debian

Comment configurer facilement un serveur de messagerie sur Debian 10 Buster avec iRedMail

Configurer votre propre serveur de messagerie sur Linux à partir de zéro est une douleur dans le cul, si vous n'êtes pas un administrateur de serveur qualifié. Ce didacticiel vous montrera comment utiliser iRedMail pour configurer rapidement un serveur de messagerie complet sur Debian 10, 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 PostreSQL 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
  • Groupware SOGo, fournissant des services de messagerie Web, d'agenda (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 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 Debian 10 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é.

Vous pouvez vous connecter au site Web de votre bureau d'enregistrement de domaine (tel que NameCheap) 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 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 apt update;sudo apt upgrade

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. Exécutez la commande suivante pour créer un utilisateur. Remplacer username avec votre nom d'utilisateur préféré.

adduser username

Ajoutez ensuite l'utilisateur au sudo groupe.

adduser username sudo

Passez ensuite 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, déconnectez-vous et reconnectez-vous, puis exécutez la commande suivante pour voir votre nom d'hôte.

hostname -f

Étape 4 :Configurer le serveur de messagerie sur Debian 10 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.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 de tabulation 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, 4 éléments sont sélectionnés. Si vous souhaitez avoir le groupware SOGo, sélectionnez-le et appuyez sur Entrée.

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émarrer le pare-feu.

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

Redémarrez votre serveur Debian 10.

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 la commande suivante pour installer le client Let's Encrypt (certbot) sur Debian 10.

sudo apt install certbot

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

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

Failed authorization procedure. mail.linuxbabe.com (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://mail.linuxbabe.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 /etc/nginx/sites-enabled/00-default.conf fichier

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 protected] -d mail.your-domain.com -w /var/www/html/

Vous devriez maintenant être en mesure d'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 (https://mail.your-domain.com/iredadmin/ ), 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. (ligne 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. 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/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. 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/mail.log indique que la liste grise est activée.

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

Ajout d'un 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 e-mails. 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 dégradera 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 = 1024 MiB (1073737728 bytes)
no label, UUID=0aab5886-4dfb-40d4-920d-fb1115c67433

Activer le fichier d'échange

sudo swapon /swapfile

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. Ensuite, rechargez 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 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, 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, 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 serveur SMTP Postfix ne peut pas envoyer d'emails à 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.

É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.

  • 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.

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

Explication :

  • 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é la signature et la vérification 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-new 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-new testkeys

Si l'enregistrement DKIM est correct, le test réussira. 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.

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

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 l'adresse e-mail [email protected].)

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

L'enregistrement DMARC ci-dessus est un point de départ sûr. Pour voir l'explication complète de DMARC, veuillez consulter l'article suivant.

  • 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 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.

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.

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.

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

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. L'exécution d'iRedMail sur un VPS de 1 Go de RAM entraînera la suppression de la base de données, de SpamAssassin ou de ClamAV en raison d'un problème de mémoire insuffisante. Si vous insistez pour 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 iRedMail n'est pas accessible, comme une erreur de passerelle 502, vous devez vérifier les journaux Nginx dans /var/log/nginx/ directory to find clues. You may also want to check the mail log /var/log/mail.log .

Check if the various services are running.

systemctl status postfix

systemctl status dovecot

systemctl status nginx

systemctl status mariadb

systemctl status clamav-daemon

systemctl status amavis

systemctl status php7.3-fpm

systemctl status iredadmin

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 Debian.

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 . Ajoutez les lignes suivantes.

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. Simply open root user’s crontab file.

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. (It’s written for Ubuntu, but also works on Debian).

  • How to set up SMTP relay between 2 Postfix SMTP servers on Ubuntu

Debian
  1. Comment configurer un serveur Samba sur Debian 10 Buster

  2. Comment configurer un serveur LAMP sur Debian 10 Buster

  3. Comment configurer un serveur NFS sur Debian 10 Buster

  4. Comment configurer un serveur SFTP sur le serveur Debian 11

  5. Configurer un serveur de messagerie avec PostfixAdmin sur Debian 9

Comment configurer un serveur de messagerie avec Plesk sur Ubuntu 20.04

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

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

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