SME-101.08 Serveur mandataire inversé
Description générale
Ce Cahier-8 du Cours SME-101 décrit les étapes pour l'installation d'un service de mandataire inversé sur un Serveur SME principal connecté à l'Internet afin qu'un autre Serveur SME, sur le réseau LOCAL, devienne accessible depuis l'Internet. Le serveur principal devient transparent pour le serveur WEB LOCAL et ce dernier semble directement branché à l'Internet.
Le serveur LOCAL peut être physique ou virtuel.
But final de ce Cahier
Serveur local physique |
Serveur local virtuel |
Cours SME-101
But final du cours SME-101
Après avoir suivi le cours SME-101, l'Étudiant possédera un site de Commerce en ligne fiable et hautement sécuritaire. De plus, il pourra utiliser un clone de son site, sur un Serveur SME virtuel sur sa station de travail, pour tester de nouvelles extensions et applications sans compromettre la sécurité ou l'intégrité de son site en ligne.
Documentation
Le cours SME-101, se voulant une base solide pour la création d'un site de Commerce en ligne, comprend plusieurs cahiers:
- Cahier-00: Les bases de Linux, SME-101.00 Linux de base.
- Cahier-01: Installation et configuration des logiciels prérequis sur le poste de travail de l'Étudiant de même que le téléchargement des fichiers qui seront installés sur le Serveur SME virtuel, SME-101.01 Logiciels de la station de travail.
- Cahier-02: Description du parcours des paquets IP du Serveur SME vers l'Internet, création de la machine virtuelle, installation/configuration du serveur Linux SME et enfin, sauvegarde/restauration de ce dernier, SME-101.02 Serveur SME.
- Cahier-03: Abonnement à un FAI, installation et configuration d'un modem ADSL/VDSL, création d'un domaine chez un fournisseur de Service DNS dynamique avec installation d'un script pour sa mise à jour et enfin la marche à suivre pour l'obtention et la configuration d'un domaine FQDN[1], SME-101.03 ADSL/VDSL, DDNS et Domaine FQDN.
- Cahier-04: Installation d'un certificat SSL de l'autorité de certification Let's Encrypt et script de mise à jour, SME-101.04 Certificat Let's Encrypt.
- Cahier-05A: Installation et configuration de WordPress, SME-101.05A WordPress.
- Cahier-05B: Installation et configuration de l'extension de sécurité Wordfence, SME-101.05B Wordfence.
- Cahier-06: Installation et configuration de l'extension de vente en ligne WooCommerce, création de comptes chez Stripe et PayPal pour les paiements en ligne, SME-101.06 WooCommerce.
- Cahier-07: Sauvegarde/restauration ou migration d'un site avec l'extension Duplicator, SME-101.07 Duplicator.
- Cahier-08: Serveur mandataire inversé, SME-101.08 Serveur mandataire inversé.
- Cahier-09: Supplément: SME & BackupPC-4.2, SME-101.09: Supplément: SME & BackupPC-4.2.
Tous les logiciels nécessaires sont du domaine public ou LIBRE sous licence GPL; ils ne coûtent pas un sous. Le seul achat nécessaire est l'obtention d'un nom de domaine FQDN au prix initial de $15 CAD et son renouvellement annuel d'environ $30 CAD.
Particularités de ce document
Notes au lecteur
- Les captures d’écrans ne sont que des références.
- Les informations écrites ont préséance sur celles retrouvées dans les captures d’écrans. Se référer aux différents tableaux lorsque ceux-ci sont présents.
Conventions
- Toutes les commandes à entrer à la console du Serveur SME commencent habituellement avec l'invite # pour l'usager root ou $ pour un usager sans privilège particulier.
- L'invite
mysql>
de la console MySQL est toujours présente. - La sortie de la commande est séparée de celle-ci par une ligne vide sans couleur de fond.
- L'invite de retour n'est jamais présent pour la plupart des commandes.
- Les affichages à surveiller sont en rouge, bleu, orange ou magenta.
# ping 192.168.1.149
192.168.1.149 is alive
Les liens de référence Internet sont en bleu de même que ceux intra-document mais, ces derniers débute par un " # ".
Manipulation, truc ou ruse pour se tirer d’embarras.
Une étape, note ou procédure à surveiller.
Danger pour la sécurité du système.
Indique que la commande est sur une seule ligne. Pour ce document en PDF, il faudra copier la commande entière dans un éditeur de texte ASCII tel que NotePad++ et la mettre sur une seule ligne avant de la copier à la console.
Une chaîne de caractères en magenta indique qu’il faut remplacer cette chaîne par vos propres paramètres.
Commande à exécuter si ce n'est déjà fait. |
Commande indiquée à titre d'information seulement. |
Mandataire inversé
Serveur directement relié à l'Internet
Normalement, notre Serveur SME est directement relié à l'Internet à travers un modem ADSL/VDSL tel qu'illustré ci-dessous.
Si nous voulons accéder à notre installation Web depuis l'Internet, il faut avoir un nom de domaine FQDN et celui-ci doit pointer vers une i-bay.
Server-Manager > Configuration > Domaines > Modifier.
Notre nom de domaine est: micronator.org et notre installation Web est située dans l'i-bay Primary (site primaire). Il faut donc que ce domaine pointe vers cette i-bay.
Serveurs DNS du domaine
Pour l'i-bay Primary, toujours utiliser: Serveur DNS de l'Internet.
Pour les autres i-bays, toujours utiliser: Résolu localement.
Serveur local sur un intranet
Référence: https://wiki.contribs.org/SME_Server:Documentation:ProxyPass.
Notre Serveur SME secondaire est sur le réseau LOCAL (192.168.1.0/24) de notre serveur principal. On parle alors d'un serveur intranet. Habituellement, ce genre de serveur n'a pas d'adresse IP publique pour son réseau externe mais, une adresse privée (192.168.1.11).
Serveur intranet physique. | Serveur intranet virtuel. |
Serveur mandataire inversé
Référence: https://fr.wikipedia.org/wiki/Proxy_inverse.
Un mandataire inversé (reverse proxy) est un type de serveur, habituellement placé en frontal des serveurs Web. Contrairement au serveur mandataire qui permet à un utilisateur d'accéder au réseau Internet, le mandataire inversé permet à un utilisateur d'Internet d'accéder à des serveurs internes (situés sur le réseau LOCAL du serveur principal/passerelle).
Préparation du serveur local de destination
Installation d'un Serveur SME
Voir le Cahier-2: SME-101.02 Serveur SME.
Pour un serveur de test, prendre un minimum de 8 GB pour le disque principal.
Lors de la configuration initiale, prendre les valeurs ci-dessous.
Mode de fonctionnement
Serveur uniquement |
Interface de liaison de canaux
Désactivé |
Configuration du serveur DHCP
Désactivé |
Mise à jour du Serveur
Avant de commencer quoi que ce soit, il est toujours préférable de mettre à jour le Serveur SME.
Voir le chapitre Mise à jour dans le Cahier-2.
Serveur DNS du domaine
On ajuste le pointeur des Serveurs DNS du domaine
pour qu'il pointe vers les Serveurs DNS de l'Internet
.
Ceci est une exception à la règle car, habituellement, un serveur local a toujours la propriété Serveurs DNS du domaine
pointant sur Résolu localement
. Cette exception est dûe au fait de l'utilisation d'un serveur mandataire inversé.
Il faut donc, exceptionnellement, changer la propriété Serveurs DNS du domaine
de notre serveur LOCAL.
Server Manager > Domaines > Modifier. | Serveur DNS du domaine > dérouler et choisir Serveurs DNS de l'Internet > Modifier.
|
On s'assure du succès de l'opération. |
Fichier /etc/hosts
On s'assure que le fichier /etc/hosts
du serveur local soit correctement configuré.
# cat /etc/hosts
#------------------------------------------------------------ # !!DO NOT MODIFY THIS FILE!! # # Manual changes will be lost when this file is regenerated. # # Please read the developer's guide, which is available # at http://www.contribs.org/development/ # # Copyright (C) 1999-2006 Mitel Networks Corporation #------------------------------------------------------------ 127.0.0.1 localhost 192.168.1.11 sme-92.micronator-101.com sme-92
Passerelle par défaut
On s'assure que la passerelle par défaut soit bien notre serveur principal dorgee.micronator.org (192.168.1.1).
Serveur physique
# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
Serveur virtuel
À la console du serveur.
# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
pc-00001.micron * 255.255.255.255 UH 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
default pc-00001.micron 0.0.0.0 UG 0 0 0 eth1
Le Serveur SME-9.2 virtuel passe par la carte réseau du poste de travail (pc-00001.micron).
À la console du poste de travail, dans un écran de commandes, on lance la commande ipconfig
.
C:\Users\michelandre> ipconfig Configuration IP de Windows ... Carte Ethernet Ethernet : Suffixe DNS propre à la connexion. . . : Adresse IPv4. . . . . . . . . . . . . .: 192.168.1.81 Masque de sous-réseau. . . . . . . . . : 255.255.255.0 Passerelle par défaut. . . . . . . . . : 192.168.1.1 ...
On vérifie l'adresse IP du serveur. (Nous sommes en mode Serveur uniquement.)
# ifconfig eth1 Link encap:Ethernet HWaddr 08:00:27:06:AE:18 inet adr:192.168.1.11 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1890 errors:0 dropped:0 overruns:0 frame:0 TX packets:1210 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:211092 (206.1 KiB) TX bytes:198261 (193.6 KiB) lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:1227 errors:0 dropped:0 overruns:0 frame:0 TX packets:1227 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:415992 (406.2 KiB) TX bytes:415992 (406.2 KiB)
L'adresse externe i.e. eth1 192.168.1.11, servira plus tard comme pointeur de destination pour le serveur mandataire inversé.
Préparation du Serveur principal
Vérification des domaines
Si auparavant on a fait quelques tests, on vérifie que le domaine micronator-101.com n'existe plus sur le serveur principal.
Comme on le voit, il n'existe aucune référence à micronator-101.com. Si oui, on doit supprimer ce domaine du serveur principal.
Transformation du serveur principal en mandataire inversé
La prochaine étape est de modifier le serveur principal, dorgee.micronator.org, pour qu'il devienne un serveur mandataire inversé de notre serveur Web LOCAL sme-92.micronator-101.com.
À l'aide de PuTTY, on se logue sur le serveur principal.
login as: root root@192.168.1.1's password: Mot-de-passe
On vérifie qu'on est bien sur le serveur principal.
# hostname
dorgee
On vérifie l'adresse IP de son réseau LOCAL.
# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:50:8B:AE:88:89 inet adr:192.168.1.1 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8106669 errors:0 dropped:0 overruns:0 frame:0 TX packets:14527260 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:910237336 (868.0 MiB) TX bytes:17641271800 (16.4 GiB)
Configuration du serveur principal
On crée le domaine virtuel micronator-101.com sur le serveur principal.
# db domains set micronator-101.com domain
On indique que le serveur de noms pour ce domaine virtuel est sur l'internet
.
# db domains setprop micronator-101.com Nameservers internet
On indique l'adresse de la cible c.-à-d. le Serveur SME LOCAL hébergeant le domaine micronator-101.com.
# db domains setprop micronator-101.com ProxyPassTarget http://192.168.1.11/
On indique le chemin d'un gabarit pour ce nouveau domaine virtuel.
# db domains setprop micronator-101.com TemplatePath ProxyPassVirtualHosts
On signale les changements de configuration au serveur principal afin qu'il crée le nouveau domaine virtuel.
# signal-event domain-create micronator-101.com
On s'assure que le nouveau domaine virtuel a bien été créé.
db domains show
... micronator-101.com=domain Nameservers=internet ProxyPassTarget=http://192.168.1.11/ TemplatePath=ProxyPassVirtualHosts ...
Dans le gestionnaire Server Manager, sur le serveur principal qui est devenu un mandataire inversé, un nouveau domaine a été créé pour micronator-101.com.
Résultat final
Serveur local physique |
Serveur local virtuel |
Vérification
On lance deux ping
à la console du serveur principal.
# ping -c 2 micronator-101.com
PING micronator-101.ddns.net (206.248.138.152) 56(84) bytes of data. 64 bytes from 206-248-138-152.dsl.teksavvy.com (206.248.138.152): icmp_seq=1 ttl=64 time=0.028 ms 64 bytes from 206-248-138-152.dsl.teksavvy.com (206.248.138.152): icmp_seq=2 ttl=64 time=0.041 ms --- micronator-101.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms
L'adresse IP 206.248.138.152 est celle du serveur principal et c'est lui qui répond car, un mandataire inversé ne transmet seulement que les requêtes Web.
On lance le navigateur TOR et on se rend à http://www.micronator-101.com.
Si nous avons recours à un service de DNS dynamique, il ne faut pas utiliser www avec un tel domaine.
Désinstallation du "service" mandataire inversé
Si on veut désinstaller ce service, pour quelque raison que ce soit, on exécute les commandes suivantes.
Sur le serveur principal
On supprime le domaine virtuel.
# db domains delete micronator-101.com
On signale les changements de configuration au serveur principal afin qu'il supprime le domaine virtuel.
# signal-event domain-modify
On vérifie avec grep
que le domaine micronator-101.com n'existe plus sur le serveur principal.
# db domains show | grep micronator-101.com
Aucune information n'est retournée car, le serveur virtuel n'existe plus sur le serveur principal.
Sur le serveur local
Sur le serveur local, il faut remettre le pointeur Serveurs DNS du domaine
vers Résolu localement
.
Remarques importantes
Mise en garde
La sécurité est à surveiller car, le Serveur SME local est maintenant accessible depuis l'Internet.
Certificat
Lorsqu'un internaute accède le serveur local avec une requête https:
- Son navigateur se connecte au serveur principal et une négociation SSL débute.
- Le navigateur et le serveur principal échange leur clé publique et la communication chiffrée débute.
- Le navigateur envoie sa requête (nom d'hôte + URL).
- Sur le serveur principal, le démon Apache débute son rôle de mandataire inversé:
- il crée une connexion avec le serveur local,
- il lui envoie la requête du navigateur de l'internaute
- et termine en retournant la réponse au navigateur de l'internaute.
C'est le certificat du serveur mandataire inversé qui est utilisé pour chiffrer la communication avec le navigateur de l'internaute. Il n'y a aucune possibilité que le certificat du serveur local puisse être présenté au navigateur de l'internaute et qu'il soit utilisé pour le chiffrage.
Courriel
Un mandataire inversé est utilisé pour servir d'intermédiaire seulement pour les requêtes Web.
Si le serveur qui sert de mandataire reçoit un courriel, c'est qmail
qui s'en occupe et non pas le démon Apache.
À toute fin pratique, le domaine local existe dans le gestionnaire Server Manager du serveur principal. Ainsi, si le récepteur du courriel n'existe pas en tant qu'utilisateur sur le serveur principal, le courriel est pris en charge par le paramètre Courriels destinés à des utilisateurs inconnus
du gestionnaire Server Manager du serveur principal.
Toutefois, on peut accéder à Webmail du serveur local depuis l'Internet car, l'accès à Webmail est une requête Web: https://www.micronator-101.com/webmail.
WordPress
Si WordPress, sur le serveur local, envoie un courriel à un usager existant sur le serveur local, cet usager recevra ce courriel car, le domaine existe sur le serveur local et le courriel y sera envoyé sans passer par l'Internet. Si l'usager n'existe pas sur le serveur local, le courriel sera envoyé dans l'Internet via le serveur principal qui sert de passerelle pour le serveur local.
Mot de la fin
On peut utiliser cette marche à suivre afin de faire une demande de certificat Let's Encrypt pour un serveur intranet. Vous n'aurez pas à configurer l'authentification par clé publique SSH, pour que root puisse commnuniquer avec le serveur passerelle, afin de récupérer le certificat émis par Let's Encrypt. Le certificat sera directement déposé dans le répertoire /etc/dehydrated/certs/FQDN-de-votre-domaine
du serveur local.
Victoire totale, hissons la bannière de la victoire.
- ↑ FQDN: Dans le DNS, un Fully Qualified Domain Name (FQDN, ou nom de domaine complètement qualifié) est un nom de domaine qui révèle la position absolue d'un nœud dans l'arborescence DNS en indiquant tous les domaines de niveau supérieur jusqu'à la racine. On parle également de domaine absolu, par opposition aux domaines relatifs. Par convention, le FQDN est ponctué par un point final.
Référence: https://fr.wikipedia.org/wiki/Fully_qualified_domain_name.