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
- Serveur Web Nginx 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 le webmail, le calendrier (CalDAV), les contacts (CardDAV), les tâches et les services 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 nouvelle installation du serveur Ubuntu 20.04 .
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 donc 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 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 e-mail sans aucune limite horaire ou quotidienne, quelle qu’elle soit.
- 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 de messagerie sur plusieurs adresses IP pour obtenir une meilleure 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.
Une fois que vous avez créé un serveur VPS, le fournisseur 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 root@12.34.56.78
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 DNS MX
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 votre-domaine.com est mail.votre-domaine.com. Si quelqu’un avec un compte Gmail envoie un e-mail à somebody@votre-domaine.com, le serveur Gmail interrogera l’enregistrement MX de votre-domaine.com. Lorsqu’il découvre qu’il mail.votre-domaine.com est responsable de l’acceptation des e-mails, il interroge ensuite l’enregistrement A de mail.votre-domaine.com pour obtenir l’adresse IP, ainsi l’e-mail peut être livré.
Vous devez vous rendre sur votre service d’hébergement DNS (généralement votre bureau d’enregistrement de domaine ) pour créer des enregistrements DNS. Dans votre gestionnaire DNS, créez un enregistrement MX pour votre nom de domaine. Entrez @dans le champ Nom pour représenter le nom de domaine principal, puis entrez mail.votre-domaine.comdans 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.votre-domaine.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 fonction CDN lors de la création d’un enregistrement A pour mail.votre-domaine.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 keep the local version currently installed. Si vous souhaitez utiliser le port 22 pour SSH, sélectionnez install the package maintainer’s version.

Je recommande fortement de créer un sudoutilisateur pour gérer votre serveur plutôt que d’utiliser l’ rootutilisateur par défaut. Exécutez la commande suivante pour créer un utilisateur. Remplacez usernamepar votre nom d’utilisateur préféré.
adduser <nom utilisateur>
Ajoutez ensuite l’utilisateur au sudogroupe.
sudo adduser <nom utilisateur>
Passez au nouvel utilisateur.
su - <nom utilisateur>
Ensuite, définissez un nom de domaine complet (FQDN) pour votre serveur avec la commande suivante.
sudo hostnamectl set-hostname mail.votre-domaine.com
Nous devons également mettre à jour /etc/hostsle 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.votre-domaine.com localhost
Enregistrez et fermez le fichier. (Pour enregistrer un fichier dans l’éditeur de texte Nano, appuyez sur Ctrl+O, puis appuyez sur Enterpour 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
Décompresser le fichier archivé.
tar xvf 1.5.0.tar.gz
Puis 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î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 le chemin par défaut : /var/vmail, il vous suffit donc d’appuyer sur Enter.
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 Enter. (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 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 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 john.doe@votre-domaine.com . 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 utiliser le groupware SOGo (webmail, calendrier, carnet d’adresses, ActiveSync), appuyez sur la touche fléchée vers le bas et la barre d’espace pour sélectionner. Appuyez sur pour passer Enterà l’écran suivant.
Vous pouvez maintenant revoir vos configurations. Tapez Ypour commencer l’installation de tous les composants du serveur de messagerie.
À la fin de l’installation, choisissez yd’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 iRedMail.tipsfichier contient des informations importantes sur votre serveur iRedMail.
Redémarrez votre serveur Ubuntu 20.04.
sudo shutdown -r now
Une fois que votre serveur est de nouveau en ligne, vous pouvez visiter le panneau d’administration Web.
https://mail.votre-domaine.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 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.
Obtention du 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 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, 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 en rouge par vos données réelles.
sudo certbot certonly --webroot --agree-tos --email you@example.com -d mail.votre-domaine.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 réussi à obtenir un certificat TLS. Votre certificat et votre chaîne ont été enregistrés dans le /etc/letsencrypt/live/mail.votre-domaine.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.votre-domaine.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,
Échec de la procédure d'autorisation. mail.votre-domaine.com (http-01)
: urn:ietf:params:acme:error:connection
: Le serveur n'a pas pu se connecter au client pour vérifier le domaine
: Récupération de https://mail.votre-domaine.com/. well-known/acme-challenge/IZ7hMmRE4ZlGW7cXYoq2Lc_VrFzVFyfW6E0pzNlhiOA
: Délai d'expiration lors de la connexion (problème de pare-feu probable)
Il se peut que vous ayez défini un enregistrement AAAA pour mail.votre-domaine.com, mais le serveur Web Nginx n’écoute pas l’adresse IPv6. Pour corriger cette erreur, modifiez le /etc/nginx/sites-enabled/00-default.conffichier
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 restart 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 you@example.com -d mail.votre-domaine.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.
certificat_ssl /etc/ssl/certs/iRedMail.crt ; key_certificat_ssl /etc/ssl/private/iRedMail.key ;
Remplacez-les par :
certificat_ssl /etc/letsencrypt/live/ mail.votre-domaine.com /fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ mail.votre-domaine.com /privkey.pem;
Enregistrez et fermez le fichier. Testez ensuite la configuration de nginx et rechargez.
sudo nginx-t sudo systemctl restart nginx
Visitez à nouveau le panneau d’administration iRedMail, votre navigateur Web ne vous avertira plus car Nginx utilise maintenant un certificat TLS valide.
https://mail.votre-domaine.com/iredadmin
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.votre-domaine.com /privkey.pem smtpd_tls_cert_file = /etc/letsencrypt/live/ mail.votre-domaine.com /cert.pem smtpd_tls_CAfile = /etc/letsencrypt/live/ mail.votre-domaine.com /chain.pem
Enregistrez et fermez le fichier. Ensuite, rechargez Postfix.
sudo systemctl restart 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.votre-domaine.com /fullchain.pem ssl_key = </etc/letsencrypt/live/ mail.votre-domaine.com /privkey.pem
Enregistrez et fermez le fichier. Rechargez ensuite le Dovecot.
sudo systemctl restart dovecot
À partir de maintenant, 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 ( postmaster@votre-domaine.com ). Dans l’ Addonglet, 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 d’utilisateur de messagerie.
https://mail.votre-domaine.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.logindique que la liste grise est activée.
Adresse du destinataire rejetée : rejet intentionnel de la politique, veuillez réessayer plus tard ;
Ajouter de l’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 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 la fallocatecommande 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
Production:
Configuration de l'espace d'échange version 1, taille = 1024 Mio (1073737728 octets) pas d'étiquette, 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/fstabfichier.
sudo nano /etc/fstab
Ajoutez la ligne suivante au bas de ce fichier.
/swapfile swap swap valeurs par défaut 0 0
Enregistrez et fermez le fichier. Ensuite, rechargez systemd et redémarrez ClamAV.
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 les connexions entrantes sur le 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 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, qui indiquent qu’une connexion est établie avec succès. (Astuce : tapez quitet appuyez sur Entrée pour fermer la connexion.)
Essayer 74.125.68.26... Connecté à gmail-smtp-in.l.google.com. Le caractère d'échappement est '^]'. 220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp
Si le port 25 (sortant) est bloqué, vous verrez quelque chose comme :
Tray 2607:f8b0:400e:c06::1a... Tray 74.125.195.27... telnet : impossible de se connecter à l'hôte distant : la connexion a expiré
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.
hôte gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] a déclaré : 550-5.7.1 [2a0d:7c40:3000:b8b::2] Notre système a détecté que 550- 5.7.1 ce message ne respecte pas les directives d'envoi IPv6 concernant les enregistrements et l'authentification PTR 550-5.7.1 . Veuillez consulter 550-5.7.1 https://support.google.com/mail/?p=IPv6AuthError pour plus d'informations
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 AAAAun enregistrement pour mail.votre-domaine.com, puis vous devez définir PTRun enregistrement pour votre adresse IPv6, ce qui est décrit à l’étape 9.
Étape 8 : Utilisation des 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, entrez mail.votre-domaine.comcomme nom de serveur, choisissez le port 143 et STARTTLS. Choisissez normal passwordcomme méthode d’authentification.
- Dans la section sortante, sélectionnez le protocole SMTP, entrez mail.votre-domaine.comcomme 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.localfichier.
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 des enregistrements PTR
, et .SPF
DKIM
DMARC
Enregistrement PTR
Un enregistrement de pointeur, ou enregistrement PTR, mappe une adresse IP à un FQDN (nom de domaine complet). C’est la contrepartie 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 rechercher une adresse IP dans l’enregistrement PTR, exécutez cette commande :
dig -x <adresss IP> +short
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 à la zone 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
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 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.
- ~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 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 <votre-domaine.com> txt
L’ txt
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-new showkeys
La clé publique DKIM est entre parenthèses.
Ensuite dans votre gestionnaire DNS, créez un enregistrement TXT, saisissez dkim._domainkey
-le 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 key test
Si l’enregistrement DKIM est correct, le test réussira.
TEST #1 votre-domaine.com : dkim._domainkey.votre-domaine.com => réussi
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/ , entrer dkim
comme sélecteur et entrer 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 enregistrement TXT . Dans le champ du nom, saisissez _dmarc
. Dans le champ de valeur, entrez ce qui suit. (Vous devez créer l’ dmarc@your-domain.com
adresse e-mail.)
v = DMARC1 ; p=aucun ;pct=100 ;rua=mailto:dmarc@votre-domaine.com
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.
Étape 10 : test du score et du placement des e-mails
Après avoir créé l’enregistrement PTR, SPF, DKIM, rendez-vous sur 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 est valide.
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.
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.
Que faire 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.
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 /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 dans 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 voulez 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 le /var/log/nginx/
répertoire des journaux Nginx pour trouver des indices. Vous pouvez également consulter le journal des e-mails /var/log/mail.log
.
Vérifiez si les différents services fonctionnent.
systemctl postfix status systemctl dovecot status systemctl nginx status systemctl mariadb status systemctl clamav-daemon status systemctl amavis status
Si vous avez activé le pare-feu, vous devez ouvrir les ports suivants dans le pare-feu.
Port HTTP : 80 Port HTTPS : 443 Port SMTP : 25 Port submission : 587 (et 465 si vous utilisez le client de messagerie Microsoft Outlook) Port IMAP : 143 et 993
ufw allow smtp ufw allow 465 ufw allow 143 ufw allow 993 ufw allow 587
Comment renouveler le certificat TLS
Le certificat TLS émis par Let’s Encrypt est valide pendant 90 jours seulement 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’ --dry-run
option pour tester le processus de renouvellement, au lieu de faire un vrai renouvellement.
sudo certbot renew -w /var/www/html/ --dry-run
Ensuite, vous devez créer le répertoire caché.
sudo mkdir -p /var/www/html/.well-known/acme-challenge
Et défini 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 restart nginx
Créer une tâche cron
Si maintenant le test 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 restart 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, le temps d’arrêt est très minime, vous ne devriez donc pas vous inquiéter de perdre des e-mails entrants. Si vous hébergez votre serveur de messagerie chez vous, le temps d’arrêt ne peut pas être prévu. Il est donc recommandé d’exécuter un serveur de messagerie de secours 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.
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.
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.
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 🙂
Merci de votez pour cet article :
dan10@mail.info-suivi.top bought 3 coffees. :
Very good article. I have been struggling for months with the creation of a mail server. The iRedMail solution is for me the right solution. Your article is very detailed. IredMail is now running on a LXC container under ubuntu 22.04. Thank you very much for the quality of the article.
Dan