GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer un serveur de messagerie avec ISPConfig sur Debian 10

Ce didacticiel utilise une configuration de serveur unique comme exemple. ISPConfig 3.1 est installé sur Debian 10.0, Buster (voir le tutoriel d'installation d'ISPConfig Perfect Server pour l'installation réelle du serveur), le but de ce guide est de vous montrer les étapes après avoir installé le serveur initial pour configurer un système de messagerie fonctionnel pour votre propre nom de domaine. J'ai mis à jour ISPConfig vers 3.1.15 pendant le test de ce tutoriel.

Ce qui est nécessaire

Pour utiliser ce didacticiel avec succès pour un serveur de messagerie fonctionnant correctement, vous avez besoin

  • un hôte sur lequel vous installez ISPConfig (et un système d'exploitation)
  • Je recommande 2 Go de mémoire avec 4 Go d'échange, cela devrait suffire pour le serveur de messagerie.
  • l'hôte doit avoir une connexion Internet avec le port 25 ouvert dans les deux sens
  • l'hôte a une adresse IP fixe
  • l'hôte doit avoir un enregistrement A pour son adresse IP (ou AAAA si vous utilisez IPv6)
  • vous devez créer un enregistrement MX vers le service de noms DNS pour l'hôte
  • vous devez obtenir l'enregistrement PTR du service de nom DNS inversé de l'hôte qui correspond au nom de domaine complet de l'hôte

La mémoire requise est pour les filtres anti-spam. Vous pouvez vous débrouiller avec 1 Go de mémoire même avec des filtres anti-spam en cours d'exécution si le swap de 4 Go est là pour éviter les situations de mémoire insuffisante.

Ports ouverts

Le serveur de messagerie doit avoir le port 25 ouvert à la fois entrant et sortant. Assurez-vous que votre hôte a ce port ouvert avant de configurer le serveur de messagerie sur cet hôte.

Il existe des moyens de faire fonctionner les e-mails même lorsque le port 25 n'est pas ouvert, mais cela implique d'envoyer des e-mails via un autre hôte qui le fait avoir le port 25 ouvert. Il peut être plus judicieux d'installer un serveur de messagerie sur cet autre hôte et d'oublier complètement le premier en ce qui concerne le courrier électronique.

Entrées du service de noms DNS

Le serveur de messagerie a besoin d'un FQDN, nom de domaine complet (lisez à ce sujet sur Wikipedia :FQDN). Dans cet exemple, le nom de domaine est taleman.ovh . Pour montrer que le nom d'hôte du serveur de messagerie n'a pas besoin d'être mail, nous utilisons posti comme nom d'hôte. Donc le FQDN est posti.taleman.ovh .

Cet hébergeur est installé sur un système de fournisseurs de services, ils offrent l'enregistrement de domaines, le service de noms et le service de noms inversés. Je les ai utilisés.

L'adresse IP est 178.33.154.66. J'ai fait ce qui suit :

  • enregistré le domaine taleman.ovh
  • a ajouté cette adresse IP en tant qu'enregistrement A au service de noms DNS avec le nom posti.taleman.ovh
  • ajout d'un enregistrement MX pour le domaine taleman.ovh avec la valeur posti.taleman.ovh
  • ajout d'un enregistrement PTR de service de nom inverse pour cette adresse IP, pointant vers posti.taleman.ovh

L'enregistrement MX est créé pour le domaine de messagerie. Je le crée donc pour taleman.ovh, et il pointe vers posti.taleman.ovh, le serveur de messagerie qui reçoit les e-mails pour ce domaine.

Service de nom inverse

En savoir plus sur le service de noms inversé dans le didacticiel sur le service de noms. Dans cet exemple, le service de nom inversé doit renvoyer posti.taleman.ovh.

Mon fournisseur de services a vérifié l'existence d'un enregistrement A avant d'ajouter le PTR correspondant était possible, j'ai eu un petit problème avant de comprendre que c'est pourquoi l'ajout a échoué.

Service de nom de test

Mieux vaut tester le service de noms maintenant, car l'envoi et la réception d'e-mails ne fonctionneront pas si le service de noms n'est pas configuré correctement. Si votre poste de travail est Windows au lieu de Linux ou Unix, utilisez la commande nslookup au lieu de host.

$ host taleman.ovh
taleman.ovh a pour adresse 188.165.143.5
le courrier de taleman.ovh est géré par 10 posti.taleman.ovh.

Le résultat ci-dessus montre que le nom de domaine a un numéro IP associé (qui dans ce cas est différent du numéro IP du serveur de messagerie, mais cela n'affecte pas les e-mails), et il existe un enregistrement MX qui pointe vers posti.taleman.ovh. La partie "le courrier est géré par" provient de l'enregistrement MX. Cet enregistrement MX est nécessaire si les e-mails envoyés aux adresses @taleman.ovh doivent être reçus à posti.taleman.ovh.

Vérifiez ensuite que l'entrée du service de noms pour le serveur de messagerie FQDN (dans ce cas, posti.taleman.fi) est un enregistrement A et pointe vers le bon numéro IP.

$ dig posti.taleman.ovh |grep "SECTION REPONSE" --after-context=3 
;; ÉLÉMENT DE RÉPONSE :
posti.taleman.ovh. 3600 DANS UN 178.33.154.66
;; Temps de requête :56 ms

Enfin, vérifiez que le service de nom inversé résout le numéro IP en retour au FQDN du serveur de messagerie.

$ host 178.33.154.66
66.154.33.178.in-addr.arpa pointeur de nom de domaine posti.taleman.ovh.

Au lieu des commandes host et dig, vous pouvez utiliser des pages Web qui testent le service de noms. Je connais intoDNS et MXToolbox.

Si vous ne parvenez pas à réussir les tests ci-dessus, vous pouvez essayer ce didacticiel de configuration du service de noms.

Installation du système d'exploitation

J'utilise Debian version 10 Buster, donc je suis ce tutoriel :

https://www.howtoforge.com/tutorial/debian-10-buster-minimal-server/

Remplacez le numéro IP, le nom d'hôte et le nom de domaine par vos valeurs.

Depuis que j'écris ce tutoriel en anglais, j'ai choisi l'anglais comme langue, mais la Finlande comme pays et United_Kingdom en_GB.UTF-8 comme paramètre régional.

[email protected] :/tmp# cat /etc/debian_version 10.0
[email protected] :~# locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
/> LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
[email protected ] :~# cat /etc/timezone
Europe/Helsinki

Vérifiez que vous avez correctement configuré le nom d'hôte. La configuration du système de messagerie ISPConfig ne fonctionnera pas si le nom d'hôte est incorrect.

[email protected] :~# hostname posti
[email protected] :~# hostname -f posti.taleman.ovh
[email protected] :~#

Installation d'ISPConfig

J'ai choisi d'installer Apache en tant que serveur Web, donc pour Debian Buster, je suis ce guide de serveur parfait.

J'ai installé openssh-server sur l'hôte et configuré la connexion root à l'aide de la clé ssh, afin que je puisse accéder directement à l'hôte en tant que root. Connexions sans mot de passe avec OpenSSH ou connexions sécurisées sans mot de passe avec SSH.

[email protected] :/tmp# free -h

Je préfère les éditeurs de style Emacs à nano, j'installe donc jed maintenant pour rendre l'édition de fichiers plus agréable.

J'avais /etc/host et /etc/hostname correctement configurés après l'installation du système d'exploitation, je viens donc de vérifier qu'ils étaient corrects en suivant le Guide du serveur parfait. Faites attention au nom d'hôte et au FQDN, si vous les trompez, vous découvrirez à la fin que votre serveur de messagerie ne fonctionne pas. Les dégâts peuvent être réparés, mais il est plus facile de les corriger dès le début.

[email protected] :/tmp# hostname
posti
[email protected] :/tmp# hostname -f
posti.taleman.ovh

Pour le reste, je me contente de suivre le Perfect Server Guide. Notez que vous pouvez principalement couper et coller les commandes du guide vers la ligne de commande.

Je n'ai pas installé Mailman, je ne prévois pas d'utiliser Mailman sur cet hébergeur. De même, j'ai omis d'installer BIND DNS Server, Webalizer, AWStats. J'ai installé Roundcube Webmail car cet hébergeur devient un serveur de messagerie.

Au chapitre 18 (Installer l'outil d'administration de base de données PHPMyAdmin), j'ai utilisé la commande

/usr/bin/apg -m 32 -x 32

pour générer le secret Blowfish de 32 caractères.

Utilisation du système

Créer un domaine de messagerie et des boîtes aux lettres

Maintenant, je me connecte en tant qu'administrateur à ISPConfig et

  • Ajouter un nouveau client
  • Ajoutez un nouveau domaine (domaine de messagerie !) et remplissez le formulaire
  • Ajouter une nouvelle boîte aux lettres

Créez les clés DKIM et enregistrez en cliquant sur les boutons dans l'ordre numéroté dans l'image. Vous pouvez en savoir plus sur DKIM sur Wikipedia.

Figure 1 :Créer un domaine de messagerie

Attendez ensuite deux minutes ou jusqu'à ce que la boule rouge avec un numéro dans la partie supérieure du panneau ISPConfig disparaisse.

Comme premier test, connectez-vous à Roundcube Webmail avec la boîte aux lettres créée ci-dessus et envoyez un e-mail à cette même adresse. ISPConfig envoie un message de bienvenue à chaque boîte aux lettres créée, il devrait donc déjà y avoir un message. Utilisez le bouton Composer et rédigez un court message de test.

Illustration 2 :Webmail Roundcube

Figure 3 :Envoi depuis Roundcube

Le message devrait bientôt apparaître dans la boîte aux lettres.

Ensuite, testez l'envoi d'un e-mail à une autre boîte aux lettres que vous avez et pouvez vérifier si le courrier y arrive. Prochain test, vous pouvez envoyer depuis un autre endroit vers la boîte aux lettres créée ci-dessus.

Notez que si vous avez activé la liste grise pour la boîte aux lettres, les e-mails envoyés depuis l'extérieur de votre serveur n'arrivent pas immédiatement dans la boîte aux lettres. Cependant, vous devriez voir immédiatement dans le journal de messagerie les entrées de la tentative de livraison afin que vous puissiez voir que le courrier peut atteindre votre serveur. L'entrée de la liste grise dans le fichier /var/log/mail.log ressemble à ceci :

29 août 19:08:42 posti postfix/smtpd[16911] :NOQUEUE :rejeter :RCPT de mta-out1.inet.fi[62.71.2.194] : 450 4.2.0 <[email protected]> :adresse du destinataire rejeté :liste grise, voir http://postgrey.schweikert.ch/help/taleman.ovh.html ; from=<****@*****.***> to=<[email protected]> proto=ESMTP helo=<******.****.***> 

Vous pouvez surveiller le journal des e-mails dans une fenêtre de terminal comme celle-ci, par exemple :

tail -f /var/log/mail.log

Ou en utilisant ces commandes, si seules les entrées de la liste grise vous intéressent :

tail -f /var/log/mail.log | grep sur liste grise

ou

grep Liste grise /var/log/mail.log

La liste grise ne retarde que le premier e-mail du même expéditeur au même destinataire. Une fois ce premier e-mail reçu, les e-mails suivants arrivent sans délai supplémentaire.

Dans mon cas, tout a fonctionné du premier coup. Cela montre que le guide ISPConfig Perfect Server fonctionne vraiment.

Connecter le client de messagerie

Utilisation de Thunderbird comme exemple de client de messagerie. Les autres applications clientes de messagerie fonctionnent de la même manière.

ISPConfig fait que le nom du compte soit l'adresse e-mail.

Figure 4 :Paramètres du compte Thunderbird

Figure 5 :Paramètres du serveur Thunderbird

Sécurité de la connexion STARTTLS signifie que la connexion démarre sans protection, puis passe au chiffrement si les deux parties prennent en charge le chiffrement. SSL/TSL signifie que la session est cryptée depuis le début. SSL/TSL est probablement légèrement plus sécurisé, alors essayez si votre client fonctionne avec cela.

Figure 6 :Paramètres du serveur sortant Thunderbird

Utiliser SPF

En savoir plus sur Sender Policy Framework sur Wikipedia. À l'origine, SPF signifiait expéditeur autorisé de, ce qui est bien de se rappeler ce que cela signifie. Après avoir lu sur SPF, vous pouvez créer l'enregistrement vous-même, vérifier si votre fournisseur de services de noms peut générer un enregistrement SPF ou utiliser des moteurs de recherche Internet avec

Assistant SPF

trouver un site Web qui crée l'enregistrement de service de noms SPF pour vous. Ensuite, coupez et collez l'enregistrement dans votre service de noms. Ajoutez un enregistrement TXT, ou peut-être sur un système DNS, ajoutez un enregistrement SPF.

Vérifiez à quoi ressemble le SPF dans le service de noms, comme ceci

$ creuser taleman.ovh -t TXT | grep spf
taleman.ovh. 3000 IN TXT "v=spf1 mx ~all"

Ou comme ceci :

$ dig +short taleman.ovh TXT
"v=spf1 mx ~all"
"1|www.taleman.ovh"

Utilisation de DKIM

En savoir plus sur DomainKeys Identified Mail sur Wikipedia. ISPConfig a créé les clés DKIM pour vous lors de la création du domaine de messagerie (si vous avez pensé à cocher la case DKIM). Coupez et collez l'enregistrement DNS qui est le public clé de votre service de noms en tant qu'enregistrement TXT. Votre fournisseur de services peut proposer un outil pour faciliter la création d'un enregistrement DKIM. Gardez la clé privée DKIM secrète.

Vérifiez à quoi ressemble le DKIM dans le service de noms, comme ceci :

$ host -t txt default._domainkey.taleman.ovh.
default._domainkey.taleman.ovh texte descriptif "v=DKIM1;h=sha256;s=*;p=MIIB(j'ai coupé une longue chaîne plus court)0rp" "sTGLXyK(couper plus court)B;t=s;"

Si c'est ISPConfig qui a créé les clés DKIM, la clé privée est copiée au bon endroit dans les paramètres amavis.

Il existe un site Web mail-tester.com qui est utile pour vérifier que SPF et DKIM fonctionnent. Allez sur ce site Web, il donne une adresse e-mail et vous y envoyez un e-mail depuis votre serveur. Attendez ensuite une minute et vérifiez à nouveau le site Web.

Création de certificats

ISPConfig peut créer des certificats auto-signés, ceux-ci sont créés lors de l'installation d'ISPConfig, sauf si vous avez choisi de ne pas créer. Même si vous avez créé ces certificats auto-signés, c'est une bonne idée de créer des certificats appropriés auxquels les navigateurs, les programmes de messagerie et les autres serveurs de messagerie font confiance.

Il existe un excellent tutoriel :Sécuriser ISPConfig avec un certificat SSL Let's Encrypt gratuit

À la suite de ce didacticiel, j'ai remarqué que le site Web créé affichait la page Web par défaut de Debian, jusqu'à ce que je crée le certificat LE pour le site Web. De plus, ISPConfig Panel était bancal, je crois parce qu'il avait le certificat auto-signé et maintenant ce nouveau certificat ou aucun certificat du tout. L'actualisation des pages dans le navigateur a résolu ce problème.

Lorsque les certificats sont configurés, entrez l'adresse https du serveur dans le navigateur. Cliquer sur l'icône à gauche de la barre d'adresse du navigateur avec un autre bouton de la souris affiche des informations sur le certificat.

Accédez à l'onglet Système du panneau ISPConfig, à l'onglet Configuration principale de l'interface et Courrier. Là ensemble

Utiliser une connexion chiffrée SSL/TLS pour SMTP

à SSL.

Des tests supplémentaires du certificat sont possibles avec des outils sur des sites Web, utilisez les moteurs de recherche Internet avec

test SSL

comme mots de recherche. Ces outils testent généralement le site Web, lors du test des certificats du serveur de messagerie, effectuez une recherche avec

serveur de messagerie de test SSL

Plug-ins Roundcube ISPConfig

Ces plugins sont utiles pour les utilisateurs de messagerie Web. Ils permettent de changer le mot de passe de messagerie dans Roundcube, par exemple. Certains autres paramètres peuvent également être modifiés dans Roundcube. Ils peuvent tous être modifiés dans le panneau ISPConfig, mais certains utilisateurs de messagerie peuvent ne pas vouloir utiliser le panneau.

J'ai installé les plugins ISPConfig Rouncube à l'aide du didacticiel ISPConfig 3 Roundcube Plugin sur Debian 9. Le didacticiel a fonctionné exactement sur Debian 10 Buster, sauf que maintenant ispconfig3_account/config/config.inc.php a une ligne supplémentaire :

$config['soap_validate_cert'] =vrai ;

Cela peut rester à la valeur true, car le certificat est correctement configuré et testé dans le chapitre précédent de ce didacticiel. Si, toutefois, l'hôte ne dispose pas d'un certificat valide, définissez ce paramètre sur faux.

J'ai eu un problème. Certains éléments de la section Compte ont fait apparaître un message d'erreur

Une erreur s'est produite.Erreur Soap :la connexion n'est pas autorisée depuis 

J'ai résolu ce problème en cochant l'accès à distance et en écrivant posti.taleman.ovh pour cet utilisateur rcmail-remote que j'ai créé à la suite du didacticiel. On dirait que le didacticiel a tort de ne pas avoir besoin de cocher "Accès à distance". Maintenant, il me semble qu'il est nécessaire à la fois pour les configurations à serveur unique et pour la configuration multiserveur ISPConfig avec un serveur de messagerie séparé.

Autre utilisation

Vous pouvez maintenant créer un autre domaine de messagerie. N'oubliez pas de créer un enregistrement MX pour ce domaine et de le faire pointer vers votre serveur de messagerie. Vous pouvez utiliser le même serveur de messagerie pour tous les domaines de messagerie que vous créez. C'est ainsi que cela se fait généralement, car ce serait un gaspillage de créer un serveur de messagerie distinct pour chaque domaine de messagerie.

Dépannage

Suite à ce tutoriel, mon serveur de messagerie fraîchement configuré fonctionne. Si le vôtre ne fonctionne pas, vérifiez que vous avez suivi ce tutoriel et que vous n'avez pas sauté certaines étapes.

La lecture du forum a montré que les méthodes courantes pour qu'un serveur de messagerie ne fonctionne pas sont des paramètres incorrects pour le nom d'hôte et le nom d'hôte -f et/ou des erreurs dans le fichier /etc/postfix/main.cf.

Si vous soupçonnez des problèmes avec le service de noms DNS, vérifiez ceux avec DNS avec ISPConfig -tutorial. Il existe des outils de site Web qui vérifient le DNS, comme intodns.com, dnschecker.com, mxtoolbox.com.

Si les e-mails ne sont pas reçus ou pas envoyés, c'est postfix qui fait ces fonctions et ils sont enregistrés dans /var/log/mail.log. Alors fais

tail -f /var/log/mail.log | grep postfix pour voir ce qui se passe lorsque le courrier est reçu ou envoyé.

Si vous rencontrez des problèmes de connexion avec le client de messagerie (Thunderbird, par exemple), utilisez ceci pour voir ce qui se passe :

tail -f /var/log/mail.log | pigeonnier grep

Dans le cas où un e-mail particulier pose problème, vous pouvez trouver les entrées du journal de messagerie à l'aide de l'ID de cet e-mail. Par exemple :

23 septembre 14:19:34 posti postfix/smtps/smtpd[10260] :A9F2880C76:client=dsl-tkubng21-58c1ce-191.dhcp.inet.fi[99.99.99.99],sasl_method=PLAIN, [email protected ]

L'ID de cet e-mail est A9F2880C76. Vous pouvez trouver des entrées de journal pour cet e-mail en utilisant

# grep A9F2880C76 /var/log/mail.log

La commande mailq affiche les e-mails qui sont dans la file d'attente postfix différée. C'est-à-dire les e-mails qui ne sont pas encore livrés. Il est normal d'y avoir des entrées récentes, les e-mails ne peuvent pas toujours être livrés immédiatement. Vous pouvez voir le contenu de ces e-mails à l'aide de l'ID de file d'attente, comme ceci :

# postcat /var/spool/postfix/deferred/A/A9F2880C76

Howtoforge a des forums ISPConfig, demandez-y des conseils.


Debian
  1. Comment installer le serveur Redis sur Debian 11

  2. Comment installer le serveur HTTP Git avec Nginx sur Debian 11

  3. Comment installer MySQL 8.0 / 5.7 sur Debian 11 / Debian 10

  4. Comment installer ProFTPD sur Debian 8

  5. Comment installer le serveur MySQL sur Debian 9

Comment installer I2P sur le serveur Debian :

Comment installer Icinga 2 sur Debian 8

Comment installer VNC sur Debian 10

Comment installer le serveur VNC sur Debian 11

Comment installer ISPConfig sur Debian 11

Comment installer Nginx avec PHP-FPM sur Debian 11