M3204 Relais de Messagerie
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
M3204 Relais de Messagerie Patrice Gommery – Novembre 2021 PRE-REQUIS Pour réaliser ce TP vous devez avoir en votre possession : - L'adresse IP de votre serveur VPS hébergé chez PulseHeberg - Votre identifiant MMI (mmiXXxxx) et son mot de passe sur le VPS Pour la partie Messagerie, vous devez aussi avoir : Votre identifiant MMI et votre N° Etudiant URCA (présent sur votre carte d'étudiant) Préambule : L'objectif de ce TP est très simple, configure un relais de messagerie pour pouvoir envoyer des mails à partir de votre VPS. Le serveur de relais sera celui du domaine mmi-troyes.fr sur lequel une adresse mail au format : MMI@mmi-troyes.fr (Mot de passe : Votre N° Etudiant URCA) a été créée pour vous.
Schéma opérationnel : en VERT l'envoi d'un email à partir de votre VPS en ROUGE la réception d'un email de réponse depuis Internet. Nous n'avons qu'à installer postfix sur notre serveur et à le configurer pour qu'il utilise le serveur mail.mmi-troyes.fr comme relais SMTP Pour commencer, nous allons mettre en place le MTA, ainsi que le relais de messagerie vers le serveur mail du domaine mmi-troyes.fr . Commençons par le plus simple, l'installation de Postfix : INSTALLATION : apt update apt install postfix Valider les options par défaut : SITE INTERNET et MMI.mmi-troyes.fr CONFIGURATION DE POSTFIX : Afin de ne pas perdre trop de temps, vous avez à votre disposition une copie du fichier main.cf préconfiguré pour la mise en place du relais. Pour la récupérer et l'adapter à votre configuration, suivez la procédure suivante :
cd /etc/postfix rm main.cf wget demos3.mmi-troyes.fr/support/main.cf sed -i 's/HOSTS/MMI/g' main.cf Pour mieux comprendre le relais, voyons ensemble, le contenu de ce fichier : #Identification du Serveur myorigin = /etc/mailname myhostname = MMI.mmi-troyes.fr mydestination = $myhostname, mmi-troyes.fr alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases Cette partie identifie notre serveur . On y retrouve le nom de notre machine (myhostname), ainsi que les destinations que nous accepterons en local: Notre machine (localhost) et notre domaine (mmi-troyes.fr) #Boites aux Lettres mailbox_size_limit = 0 home_mailbox = Maildir/ recipient_delimiter = + Cette partie configure le format des boites aux lettres. Nous choisissons maildir, un format qui stocke chaque message dans un fichier individuel et gère une arborescence complète de la boite aux lettres (Boite de Réception, Eléments envoyés, etc.). Noté qu'ici Maildir/ avec une Majuscule est le nom du dossier qui constituera la boite aux lettres des utilisateurs. #Reseau mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 inet_interfaces = loopback-only inet_protocols = all Cette partie est une des plus importante en termes de sécurité. Elle configure les interfaces et les adresses IP qui sont autorisées à soumettre des messages à notre serveur. On voit ici que seul l'interface de loopback et ses adresses en ipv4(127.0.0.0/8) et ipv6 ([::1]/128) est déclarée #Relais smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination Ce dernier point finalise la partie sécurité et n'autorise que les adresses IP déclarées dans mynetworks à utiliser notre service. AUTHENTIFICATION SASL : A ce stade, notre serveur fonctionne, mais pour l'instant il ne pourrait envoyer que des messages à lui- même et nous n'avons même pas de boites aux lettres pour tester. Nous allons donc continuer notre configuration pour qu'il soit capable d'envoyer des mails à l'extérieur. Pour cela nous allons utiliser le serveur mail de l'URCA comme relais. Avant de continuer, vous avez besoin de : • Votre identifiant MMI pour construire l'adresse mail MMI@mmi-troyes.fr • Votre n° d'étudiant URCA qui servira de mot de passe pour l'adresse mail. Pour utiliser le serveur mail.mmi-troyes.fr comme relais, nous aurons besoin de nous authentifier. L'authentification sera réalisée avec SASL (Simple Authentification and Security Protocol). Commencez par installer le paquet libsasl2-modules.
apt install libsasl2-modules En fonction de votre version de Debian, il est possible que le module soit déjà installé. Dans ce cas rien à faire, continuez le TP. Ensuite, créez un fichier sasl_passwd dans le dossier /etc/postfix/sasl avec le contenu suivant : [mail.mmi-troyes.fr]:587 MMI@mmi-troyes.fr:URCA Remplacez URCA par votre code étudiant URCA, et MMI par votre identifiant MMI. Placez-vous dans le dossier /etc/postfix/sasl et exécutez la commande postmap pour créer un fichier au format demandé par postfix. Ensuite protégez les deux fichiers en ne laissant que des droits simples pour root. cd /etc/postfix/sasl postmap sasl_passwd chmod 600 sasl_passwd* Il ne reste plus qu'à indiquer à postfix que nous avons un serveur de relais et qu'il utilisera une authentification sasl. Vérifiez-le fichier /etc/postfix/main.cf , vous devriez voir les lignes suivantes : # SASL AUTHENTIFICATION smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd smtp_tls_wrappermode = no smtp_tls_security_level = may smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtp_always_send_ehlo = yes smtp_helo_timeout = 15s smtp_rcpt_timeout = 15s # RELAIS MMI relayhost = [mail.mmi-troyes.fr]:587 smtputf8_autodetect_classes = verify smtputf8_enable = yes Avant de continuer, faites une vérification du fichier main.cf . En cas d'erreur, corrigez-les. postfix check RE-ECRITURE DES ADRESSES : Pourquoi réécrire les adresses ? Principalement pour cette raison : 1. Notre serveur est dans le domaine mmi-troyes.fr 2. L'adresse local de l'utilisateur root est donc : root@mmi-troyes.fr 3. L'adresse local du processus apache est donc : www-data@mmi-troyes.fr 4. Personne ne pourra répondre à ces adresses sur mmi-troyes.fr, il faut donc que l'adresse de réponse à vos mails soit remplacée par votre adresse MMI@mmi-troyes.fr.
Il en est de même pour toutes les adresses qui serait générées à partir de notre serveur : L'adresse local de l'utilisateur root est : root@mmi-troyes.fr L'adresse local du processus apache est : www-data@mmi-troyes.fr La première est utilisée par le système et les commandes passées via le shell. La seconde est celle qui est utilisée par PHP lorsque vous envoyez un mail via un formulaire. Nous allons donc créer une table de correspondance entre les adresses potentiellement utilisées en local et votre adresse dans le domaine mmi-troyes.fr, afin que le serveur MMI accepte de relayer vos mails et surtout que vos correspondants puissent vous répondre. Dans le dossier /etc/postfix , créez un fichier nommé rewrite_address avec le contenu suivant : www-data@mmi-troyes.fr MMI@mmi-troyes.fr root@mmi-troyes.fr MMI@mmi-troyes.fr Remplacez MMI par votre identifiant personnel Placez-vous dans le dossier /etc/postfix et exécutez la commande postmap pour créer un fichier au format demandé par postfix. Ensuite protégez les deux fichiers en ne laissant que des droits simples pour root. cd /etc/postfix postmap rewrite_address chmod 600 rewrite_address* Pour terminer la configuration de postfix, Vérifiez de nouveau le fichier main.cf et vérifiez que la ligne suivante existe bien. #REWRITE DES EMAILS smtp_generic_maps = hash:/etc/postfix/rewrite_address Avant de continuer, faites une vérification du fichier main.cf . En cas d'erreur, corrigez-les. postfix check ATTENTION : Il y a 2 'd' à address !!! Si tout est OK. Relancez le service postfix pour prendre en compte les modifications : service postfix restart
TEST DE LA CONFIGURATION : Voilà notre MTA (Postfix) est entièrement configuré, il ne nous reste plus qu'à tester notre configuration en envoyant des mails vers l'extérieur. TEST 1 : Le compte root avec une simple commande : Votre système dispose d'une commande très simple pour envoyer des mails : sendmail La syntaxe est simple : saisissez la commande : sendmail MAIL_DESTINATION (vous pouvez mettre votre adresse personnelle) et ensuite (Le système ne revient pas au prompt du shell, il faut saisir les lignes suivantes pour continuer) Subject : LE SUJET DU MAIL From: MMI@mmi-troyes.fr (Obligatoirement votre nouvel email MMI) VOTRE MESSAGE . [ENTER] (Faites . "point" puis validez avec entrée) Votre message est alors expédié à l'adresse MAIL_DESTINATION. EXERCICE VPSMAIL-01 : Faites un test d'envoi vers une adresse email de votre choix et vérifiez que le mail est bien arrivé. Ensuite, refaites la même chose en mettant comme destinataire : prof@h205.online et comme sujet : VPSMAIL-01 by MMI . Le contenu n'a pas d'importance, mais respectez bien le Sujet sous peine d'être pénalisé. TEST 2 : Apache avec un formulaire en PHP : Second test intéressant à faire, envoyer un mail à l'aide d'un formulaire PHP. Téléchargez et renommez dans votre dossier /home/MMI/public_html la page vpsmail-02.txt à l'aide de la commande suivante : cd /home/MMI/public_html wget demos3.mmi-troyes.fr/support/vpsmail-02.txt mv vpsmail-02.txt vpsmail-02.php Modifiez cette page en changeant les adresses de l'expéditeur et du destinataire. .. $from = "EXPEDITEUR"; $to = "DESTINATAIRE"; … EXPEDITEUR doit être votre adresse MMI@mmi-troyes.fr DESTINATAIRE une adresse email de votre choix dont vous pouvez vérifier les mails. Ensuite, ouvrez la page avec un navigateur : MMI.mmi-troyes.fr/vpsmail-02.php et vérifiez que vous avez bien reçu le mail à l'adresse du DESTINATAIRE . Répondez au mail EXERCICE VPSMAIL-02 : Ensuite, refaites la même chose en mettant comme destinataire : prof@h205.online Le contenu n'a pas d'importance, mais respectez bien le Sujet sous peine d'être pénalisé. N'attendez pas de réponse, ayez confiance en vous ….
Partie 2 : LE WEBMAIL Vous avez bien reçu vos deux mails. Félicitations, votre serveur relais est opérationnel. Mais envoyé des mails en ligne de commande ou avec des formulaires php, ce n'est pas ce qu'il y a de plus pratique. Nous allons donc installer un Webmail sur notre machine pour avoir une interface utilisateur plus conviviale. CONFIGURATION APACHE : Il ne reste qu'à installer notre Webmail. Il en existe des dizaines de disponible sur Internet tel que RoundCube, Squirrelmail , Horde ou Zimbra. La plupart sont écrit en PHP et sont donc de simples applications qui exploitent les fonctions mail du langage. Vous pourriez donc très bien écrire votre propre Webmail . Pour notre exercice, nous allons installer Rainloop qui offre une interface minimaliste, mais assez moderne qui suffira largement à nos besoins. Comme toute application web, notre Webmail sera appelé via un navigateur et nécessite donc d'être configuré avec notre service web : Apache. L'objectif est de pouvoir appeler notre Webmail par l'URL : MMI.h205.online/webmail , MMI.mmi-troyes/webmail ou même VPS/webmail . Pour résumé il faut que le /webmail renvoi sur notre application quelle que soit l'URL principale du site (qui dépend elle d'une résolution DNS). Dans la configuration Apache c'est ce qu'on appelle un Alias. Les fichiers de configuration pour les Alias se trouvent dans /etc/apache2/conf-available . Dans ce dossier créez un fichier nommé rainloop.conf avec le contenu suivant : # Rainloop Apache configuration – rainloop.conf Alias /webmail /var/www/rainloop Options SymLinksIfOwnerMatch Options -Indexes DirectoryIndex index.php AllowOverride All Deny from all Comme vous pouvez le voir, le fichier indique que notre application se trouvera dans un dossier nommé /var/www/rainloop. Il nous faut donc créer ce dossier avant d'activer la configuration. mkdir /var/www/rainloop a2enconf rainloop systemctl reload apache2 Si vous avez des erreurs au rechargement d'Apache, relisez votre fichier rainloop.conf. INSTALLATION DU WEBMAIL : Passons maintenant à l'installation de Rainloop. Suivez simplement les instructions suivantes :
cd /var/www/rainloop wget https://www.rainloop.net/repository/webmail/rainloop-community-latest.zip apt install unzip unzip rainloop-community-latest.zip rm rainloop-community-latest.zip find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \; chown -R www-data.www-data . ATTENTION aux points . En résumé, nous avons téléchargé et décompressé l'application dans le dossier rainloop .Puis nous avons modifié les droits d'accès pour autoriser apache (www-data) et donc php à manipuler les fichiers. Le code est Open-Source vous pouvez donc le consulter et même le modifier (sous certaines conditions) si vous le désirez. Pour vérifier que tout est OK, ouvrez simplement votre navigateur à l'adresse : MMI.h205.online/webmail pour vérifier que la page d'accueil de Rainloop s'affiche bien. Dans le cas contraire, reprenez les étapes précédentes. CONFIGURATION DU WEBMAIL : Notre webmail est installé, dernière étape avant de pouvoir l'utiliser : la configuration. Pour cela, ouvrez votre navigateur à l'adresse : MMI.h205.online/webmail/?admin Le login est : admin Le mot de passe : 12345 IMPORTANT : La première chose à faire est de changer le mot de passe. (Sécurité dans le menu à gauche) Mettez celui de votre choix, mais trop simple quand même. Vous êtes sur Internet !! Ensuite, après avoir passé l'interface en Français et éventuellement changé le Thème, cliquez sur Domaine pour continuer la configuration. Ajouter le domaine mmi-troyes.fr et supprimer tous les autres.
Configurez votre domaine comme l'exemple ci-dessous et faites pour valider votre configuration : LES POINTS IMPORTANTS : • Le Nom du domaine est : mmi-troyes.fr • Le Serveur IMAP est : mail.mmi-troyes.fr (c'est lui qui stocke vos mails) – Port 993 (SSL/TLS) • Le Serveur SMTP est votre serveur : 127.0.0.1 – Port 25 • Aucune sécurité pour le SMTP (on reste en local) • Décochez TOUTES les options pour SMTP, il n'y pas d'authentification SMTP en local.
UTILISATION ET VALIDATION DU WEBMAIL : Pour tester votre Webmail. Ouvrez l'URL : MMI.h205.online/webmail et connectez-vous avec votre adresse MMI@mmi-troyes.fr et votre code étudiant Vous devriez voir votre réponse au mail du test2. Pour tester envoyer vous un mail sur une de vos adresses et vérifier que vous l'avez bien reçue. EXERCICE VPSMAIL-03 : Ensuite, refaites la même chose en mettant comme destinataire : prof@h205.online et comme sujet : VPSMAIL-03 by MMI . Le contenu n'a pas d'importance, mais respectez bien le Sujet sous peine d'être pénalisé. IMPORTANT Le serveur mail.mmi-troyes est là uniquement pour servir de relais de messagerie dans la réalisation des travaux pratiques ou des projets fait en MMI !! Tout autre usage des adresses mails est STRICTEMENT INTERDIT !! Si des abus sont constatés (spoofing, trop d'envoi etc ..) votre adresse mail sera supprimée du serveur et vous devrez vous débrouiller pour relayer vos mails par vous-même . Pour information l'URCA n'accepte plus les relais de mails via ses serveurs . Delivered-To: pgommery@gmail.com Received: by 2002:a0c:aa05:0:0:0:0:0 with SMTP id d5csp797987qvb; Tue, 16 Nov 2021 09:28:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJxUtFj8F8muya/2X6SUisT4h7CxeCNhY59SaHmCMdn4O+vyrqGM0TQkOAzNw7LqP39Uoc07 X-Received: by 2002:a05:6402:430e:: with SMTP id m14mr12406094edc.93.1637083680331; Tue, 16 Nov 2021 09:28:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637083680; cv=none; d=google.com; s=arc-20160816; … ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; … ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of prof@mmi-troyes.fr designates 154.49.211.178 as permitted sender) smtp.mailfrom=prof@mmi-troyes.fr Return-Path: Received: from demoprof.mmi-troyes.fr (demoprof.mmi-troyes.fr. [154.49.211.178]) by mx.google.com with ESMTPS id g14si50331208edz.101.2021.11.16.09.28.00 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 09:28:00 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of prof@mmi-troyes.fr designates 154.49.211.178 as permitted sender) client-ip=154.49.211.178; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of prof@mmi-troyes.fr designates 154.49.211.178 as permitted sender) smtp.mailfrom=prof@mmi-troyes.fr Received: from demos3.mmi-troyes.fr (unknown [89.234.180.225]) by demoprof.mmi-troyes.fr (Postfix) with ESMTPSA id DAFEF14AF for ; Tue, 16 Nov 2021 18:27:59 +0100 (CET) Received: from demos3.h205.online (localhost [127.0.0.1]) by demos3.mmi-troyes.fr (Postfix) with ESMTP id 6D3DF1A16 for ; Tue, 16 Nov 2021 18:27:56 +0100 (CET) MIME-Version: 1.0 Date: Tue, 16 Nov 2021 17:27:56 +0000 Content-Type: multipart/alternative; boundary="--=_RainLoop_262_901982078.1637083676" X-Mailer: RainLoop/1.16.0 From: prof@mmi-troyes.fr Message-ID: Subject: test local sans auth To: pgommery@gmail.com ----=_RainLoop_262_901982078.1637083676 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable ok Exemple de Réception d'un mail sur Gmail. On voit très bien de quelle machine est partie le message !!!! UN PEU DE NETTOYAGE : Une fois que tout fonctionne, supprimez les fichiers suivants qui sont inutiles et pourraient être mal exploités. rm /home/MMI/public_html/vpsmail-02.php rm /etc/postfix/rewrite_address rm /etc/postfix/sasl/sasl_passwd
Vous pouvez aussi lire