SME-101.08 Serveur mandataire inversé

From SME Server
Revision as of 23:17, 30 October 2018 by Michelandre (talk | contribs) (Michelandre moved page Mandataire inversé to SME-101.08 Serveur mandataire inversé: Pour être intégré dans le Cours SME-10)
Jump to navigationJump to search


Description générale

Cette marche à suivre 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.

Icone-NoteAPT.png  Le serveur local peut être physique ou virtuel.

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.

MandataireInv-001-ReseauSTD.png


MandataireInv-002-SM-Domaine-Passerelle.png

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.








MandataireInv-003-SM-ServeurDNS.png

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.
MandataireInv-004-ServeurInternePhysique.png
MandataireInv-005-ServeurInterneVirtuel.png


Serveur mandataire inversé

Référence: https://fr.wikipedia.org/wiki/Proxy_inverse.

MandataireInv-006-DiagrammeExplicatif.png

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 de destination

Installation d'un Serveur SME

Voir le Cahier-2: Installation d'un Serveur SME: https://www.micronator.org/affaires/produit/micronator-101-cahier-2installation-dun-serveur-sme/.

Pour un serveur de test, prendre un minimum de 8 GB pour le disque principal.

Icone-SeTirerDembarrasAPT.png  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é

MandataireInv-007-ModeDeFonctionnement.png
MandataireInv-008-LiaisonDeCanaux.png
MandataireInv-009-ConfigurationDHCP.png


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: Installation d'un Serveur SME - https://www.micronator.org/affaires/produit/micronator-101-cahier-2installation-dun-serveur-sme/.

Serveur DNS du domaine

On ajuste le pointeur des Serveurs DNS du domaine pour qu'il pointe vers les Serveurs DNS de l'Internet.

Icone-NoteAPT.png  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é.

Icone-SeTirerDembarrasAPT.png  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.
MandataireInv-010-ResoluLocalement.png
MandataireInv-011-ServeursDNSdeInternet.png
MandataireInv-012-RapportDeEtat.png


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.org 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

Icone-NoteAPT.png  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.

> 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)

Icone-AsurveillerAPT.png  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

Icone-SeTirerDembarrasAPT.png  Si auparavant on avait fait quelques tests, on vérifierait que le domaine micronator-101.org n'existe plus sur le serveur principal..

MandataireInv-013-VerificationDesDomaines.png

Icone-AsurveillerAPT.png  Comme on le voit, il n'existe aucune référence à micronator-101.org. Si oui, on doit supprimer ce domaine du serveur principal.

Icone-NoteAPT.png  Le FQDN du serveur principal est: micronator.org.








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.org.

À 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.org sur le serveur principal.

# db domains set micronator-101.org domain

On indique que le serveur de noms pour ce domaine virtuel est sur l'internet.

# db domains setprop micronator-101.org Nameservers internet

On indique l'adresse de la cible i.e. le Serveur SME local hébergeant le domaine micronator-101.org.

# db domains setprop micronator-101.org ProxyPassTarget http://192.168.1.11/

On indique le chemin d'un gabarit pour ce nouveau domaine virtuel.

# db domains setprop micronator-101.org 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.org

On s'assure que le nouveau domaine virtuel a bien été créé.

 db domains show

...
micronator-101.org=domain
    Nameservers=internet
    ProxyPassTarget=http://192.168.1.11/
    TemplatePath=ProxyPassVirtualHosts
...


MandataireInv-014-DomaineLocalSurPrincipal.png

Dans le gestionnaire Server Manager, sur le serveur principal qui est devenu un mandataire inversé, un nouveau domaine a été créé pour micronator-101.org.








Résultat final

Serveur local physique

Serveur local virtuel

MandataireInv-015-ResultatPourPhysique.png
MandataireInv-016-ResultatPourVirtuel.png

Vérification

On lance deux ping à la console du serveur principal.

# ping -c 2 micronator-101.org

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.ddns.net 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.org.

Icone-SeTirerDembarrasAPT.png  Si nous avons recours à un service de DNS dynamique, il ne faut pas utiliser www avec un tel domaine.

MandataireInv-017-PageDexemple.png


Le mandataire inversé fonctionne correctement.


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.org

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.org n'existe plus sur le serveur principal.

# db domains show | grep  micronator-101.org

Icone-NoteAPT.png  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.

Icone-AstuceAPT.png  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.org/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

Icone-NoteAPT.png  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.


caption  Victoire totale, hissons la bannière de la victoire.