VPS-MMI Relais de Messagerie

 
CONTINUER À LIRE
VPS-MMI Relais de Messagerie
VPS-MMI
Relais de Messagerie
Patrice Gommery – Mai 2020

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)
- Le mot de votre identifiant MMI créé lors de l'initialisation de votre VPS.

Pour la partie Messagerie, vous devez aussi avoir :
Votre identifiant URCA et son mot de passe pour accéder à vos mails.

En cas de problème :
- Un accès à votre compte PulseHeberg pour lancer la console VNC
- Le mot de passe du compte root de votre VPS (premier mail de PulseHeberg)

RELAIS DE MESSAGERIE - M2204                                                    1
Consignes Générales pour le TD

Pendant tout le TD,
remplacez VPS l'adresse IP de votre VPS PulseHeberg
remplacez MMI par votre identifiant MMI (mmiXXxxx)

Rappel , pour accéder à votre serveur :
Sur MAC, ouvrez un terminal et : ssh MMI@VPS
Sur Windows 10, ouvrez une invite de commandes et : ssh MMI@VPS

Si vous avez une version de Windows plus ancienne, il est probable que la commande ssh
n’existe pas sur votre machine. Dans ce cas téléchargez et installez Putty

Une fois Putty installé

Saisissez juste l'adresse IP de votre VPS dans Host Name et faites Open
Vous pouvez aussi enregistrer la session avec Save pour la retrouver plus tard.

SI vous voulez un outil plus complet (avec transfert de fichiers par exemple), vous pouvez
aussi utiliser : SmarTTY

RELAIS DE MESSAGERIE - M2204                                                                 2
Préambule :
L'objectif de ce TP est très simple, installer un relais de messagerie qui permettra d'envoyer des
mails à partir de votre VPS , quelle que soit l'application et sans passer pour un spammeur.

Schéma opérationnel :

en VERT l'envoi d'un email à partir de votre VPS
en ROUGE la réception d'un email dans votre boites aux lettres universitaires

IMPORTANT : Vous remarquerez que dans cette configuration, nous ne recevrons aucun mail sur notre
VPS . Les éventuelles réponses à vos mails émis seront reçues dans votre boite universitaire. Nous
n'installerons que la partie Emission (en vert) du schéma . Pour nos correspondants, les messages seront
vus comme provenant de votre boite mail universitaire et donc de l'URCA.

Partie 1 : RELAIS SMTP
Pour commencer, nous allons mettre en place le MTA, et donc le relais de messagerie vers le serveur mail
de l'URCA. 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

RELAIS DE MESSAGERIE - M2204                                                                               3
CONFIGURATION DE POSTFIX :
Afin de ne pas perdre trop de temps, vous trouverez dans votre dossier /mmitrans un fichier main.cf .
Il s'agit d'une copie du fichier de configuration principale de postfix. Recopiez ce fichier dans le dossier
/etc/postfix. Ensuite dans le fichier , remplacer simplement la valeur HOST par votre identifiant MMI.

cp /mmitrans/main.cf /etc/postfix/main.cf
sed -i 's/HOST/MMI/g' /etc/postfix/main.cf

#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

#Boites aux Lettres
mailbox_size_limit = 0
home_mailbox = Maildir/
recipient_delimiter = +

#Reseau
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
inet_interfaces = loopback-only
inet_protocols = all

#Relais
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

Sans rentrer dans les détails de la configuration , les informations importantes :

myhostname est le nom réel de votre machine, il doit correspondre au résultat de la commande
hostname -f . Dans notre cas, cela devrait donc être : MMI.mmi-troyes.fr

mydestination précise nos domaines de messagerie locale. Nous aurons donc des adresses de type :
user@MMI.mmi-troyes.fr ou user@mmi-troyes.fr (en fonction du processus qui envoie les mails).
Notez que du point de vue Internet, ces domaines de messagerie n'existent pas. C'est la raison pour
laquelle nous devrons réécrire les adresses avant l'envoi des messages.

mynetworks et inet_interfaces précisent les interfaces et les IP acceptées en entrée de notre serveur.
Dans notre cas, nous n'accepterons donc que des messages provenant de l'interface de loopback :
localhost (127.0.0.1) . Notre serveur ne sera donc pas accessible d'Internet et seules les processus locaux
pourront l'utiliser.

RELAIS DE MESSAGERIE - M2204                                                                                   4
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 adresse Mail Universitaire
   • Votre compte URCA et son mot de passe

Pour utiliser le serveur de l'URCA comme relais, nous aurons besoin de nous authentifié. 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 :

[smtps.univ-reims.fr]:465       ID:PASS
Remplacez ID par votre identifiant URCA, et PASS par le mot de passe associé.

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. Editez le fichier /etc/postfix/main.cf et ajoutez 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 = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

# RELAIS URCA
relayhost = [smtps.univ-reims.fr]:465
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

RELAIS DE MESSAGERIE - M2204                                                                                          5
RE-ECRITURE DES ADRESSES :
Pourquoi réécrire les adresses ? Principalement pour cette raison :

    1. Notre serveur est dans le domaine mmi-troyes et il n'existe aucun domaine de messagerie réel de
       ce nom. L'adresse de votre utilisateur MMI sera pourtant MMI@mmi-troyes.fr
    2. Le serveur de l'URCA ne relayera que des adresses de son domaine : univ-reims.fr
    3. Personne de pourra répondre à une adresse sur mmi-troyes.fr, il faut donc que l'adresse de
       réponse à vos mails soit remplacée par votre adresse universitaire.

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.mmi-troyes.fr
L'adresse local du processus apache (et donc php) est : www-data@MMI.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 universitaire, afin que le serveur de l'URCA 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.mmi-troyes.fr                EMAIL_URCA
root@MMI.mmi-troyes.fr                    EMAIL_URCA
MMI@mmi-troyes.fr                         EMAIL_URCA

Remplacez MMI par votre identifiant personnel et EMAIL_URCA par votre mail universitaire.

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, éditez de nouveau le fichier main.cf et ajoutez le contenu :

#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

RELAIS DE MESSAGERIE - M2204                                                                              6
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
et ensuite :

Subject : LE SUJET DU MAIL
From: EMAIL_URCA                         (Obligatoirement votre Email universitaire)
VOTRE MESSAGE
. [ENTER]                                (Faites . point puis validez avec entrée)

Votre message est alors expédié à l'adresse MAIL_DESTINATION.
Et si vous ouvrez la source du message, vous consterez que c'est bien root@MMI.mmi-troyes.fr qui l'a
expédié.

EXERCICE MAIL-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 : MAIL-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 de PHP.

Recopiez dans votre dossier /home/MMI/public_html la page mail-02.php se trouvant dans votre dossier
/mmitrans . Modifiez cette page en changeant l' EXPEDITEUR, le DESTINATAIRE et votre identifiant MMI.
Ensuite, ouvrez la page avec un navigateur : MMI.mmi-troyes/mail-02.php
et vérifiez que vous avez bien reçu le mail
Et si vous ouvrez la source du message, vous consterez que c'est bien www-data@MMI.mmi-troyes.fr qui
l'a expédié : www-data est le propriétaire des processus apache et php sur votre vps.

EXERCICE MAIL-02 :
Ensuite, refaites la même chose en mettant comme destinataire : prof@h205.online
et comme sujet : MAIL-02 by MMI . Le contenu n'a pas d'importance, mais respectez bien le Sujet sous
peine d'être pénalisé.

IMPORTANT : FIN DE L'EXERCICE
Consultez votre boite mail universitaire et vérifiez que vous avez bien reçu une réponse de l'enseignant au
mail MAIL-02. Si c'est le cas, supprimez la page mail-02.php afin qu'elle ne puisse plus être exécutée.

Voilà, vous pouvez maintenant, envoyer des mails à partir de votre VPS . Tous les messages remis à
localhost sur le port 25 et utilisant votre adresse MMI.mmi-troyes.fr ou votre adresse universitaire
comme expéditeur seront relayés par votre serveur , puis celui de l'URCA comme s'ils venaient de votre
compte mail universitaire.

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.

INSTALLATION DU MDA :
Avant d'installer notre Webmail, il nous faut un MDA pour nous fournir les protocoles POP et surtout IMAP
qui permettra de récupérer les mails dans la boite aux lettres de notre utilisateur.

Pour faire simple et toujours dans l'idée de ne pas compliquer la configuration, nous installerons courier
(avec un seul r), un service POP-IMAP qui ne nécessite que très peu de configuration, voir aucune dans
notre cas.

apt update
apt install courier-imap
Valider TOUTES les options par défaut

CREATION D'UNE BOITE AUX LETTRES :
Pour recevoir (ou envoyer) nos courriers, il nous faut aussi une BAL (Boite aux lettres) . Cette BAL sera celle
de votre utilisateur MMI et sera donc liée à son email "locale" : MMI@mmi-troyes.fr
Nous parlons ici, d'une adresse email locale, car bien entendu elle n'existe pas sur internet, puisqu'il n'y a
aucun service de messagerie sur le domaine mmi-troyes.fr.

RELAIS DE MESSAGERIE - M2204                                                                                  8
Pour créer la BAL, nous utiliserons la commande maildirmake fournie avec courier-imap et qui permet
comme son nom l'indique de créer une BAL au format maildir.

cd /home/MMI
maildirmake Maildir
chown -R MMI.MMI Maildir/
ATTENTION au M Majuscule de Maildir qui est obligatoire .

 Si nous regardons le contenu du dossier Maildir, nous voyons que la commande a créé une structure de
base pour recevoir les mails. Les nouveaux (non lus) seront dans new, les autres dans cur. Vous verrez par
la suite que d'autres dossiers seront créés lors de la connexion en IMAP.

drwx------ 2 MMI MMI 4096 avril 28 08:42 cur
drwx------ 2 MMI MMI 4096 avril 28 08:42 new
drwx------ 2 MMI MMI 4096 avril 28 08:42 tmp

CONFIGURATION APACHE :
Voilà tout est prêt, 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

RELAIS DE MESSAGERIE - M2204                                                                                 9
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 !!

RELAIS DE MESSAGERIE - M2204                                                                            10
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 et SMTP) est : localhost
   •   Le Port IMAP est 143, le port SMTP est 25
   •   Aucune sécurité
   •   Utiliser l'identifiant court en IMAP évitera de saisir toute l'adresse mail au login
   •   Décochez TOUTES les options pour SMTP, il n'y pas d'authentification SMTP en local.

RELAIS DE MESSAGERIE - M2204                                                                           11
Pour terminer la configuration , cliquez sur Identifiant et ajoutez le nom de domaine :
mmi-troyes.fr

UTILISATION ET VALIDATION DU WEBMAIL :
Pour tester votre Webmail. Ouvrez l'URL : MMI.h205.online/webmail
et connectez-vous avec votre compte MMI et votre mot de passe habituel.

ATTENTION:
Nous avons cocher identifiant court, le login est donc juste MMI , pas son adresse email !!!

Pour tester envoyer vous un mail sur une de vos adresses et vérifier que vous l'avez bien reçue.

EXERCICE MAIL-03 :
Ensuite, refaites la même chose en mettant comme destinataire : prof@h205.online
et comme sujet : MAIL-03 by MMI . Le contenu n'a pas d'importance, mais respectez bien le Sujet sous
peine d'être pénalisé.

POUR LES CURIEUX :

Vous voulez savoir comment est perçu l'envoi de vos mails sur Internet.

Allez sur le site : MAIL-TESTER.COM

et suivez les instructions. Bien sur la note peut varier en fonction du contenu, vous n'aurez surement pas
10/10, mais avec le relais de L'URCA, on arrive facilement à 9 (il manque juste le DKIM).

RELAIS DE MESSAGERIE - M2204                                                                                 12
Vous pouvez aussi lire