Mis en place d'un Reverse Proxy avec Apache

Mis en place d'un Reverse Proxy avec Apache

Jjourdin, Architecture Vulture 2, size & remove un needed by Clément Breuil, CC BY-SA 3.0

Quoi Un proxy Renversant ? Non, Tout simplement c'est un serveur proxy placé entre l'utilisateur et le serveur web. mais l'utilisateur ne vois pas le serveur web. C'est transparent.

J'ai 4 Cameras, les cameras ne sont pas trop bien faite coté gestion, pas possible de voir le live des 4 cameras sur 1 écran, obliger de se ré-identifier tout le temps, bref c'est pas trop bien pour moi, j'ai donc décider de crée une interface qui me permet de voir les 4 cameras en même temps mais j'avais toujours besoin de rentré  les identifiant 4 fois donc j'ai employer du ReverseProxy pour me debarrasé de sa et encore mieux, de pouvoir isoler les cameras dans un réseaux inaccessible physiquement et logiquement. Petite Illustration pour mon cas : Mis en place d'un Reverse Proxy avec Apache Les ordinateur dont l'adressage en 192.168.2.0/24 ne peuvent pas discuter avec les cameras directement car elle sont pas dans le même réseaux et aucun routeur ne sait comment router vers les camera et elle sont séparer physiquement. Le seul équipement pouvant joindre les camera c'est le serveur qui a un port dans le réseaux des ordinateurs et un autre dans le réseaux des camera.  
  • Configuration de Apache
Tout d’abord, on va exécuter des commande dans le shell (Réaliser sur une debian7, je prend en compte que vous avez déja installé apache, php)
sudo a2enmod headers
sudo a2enmod http_proxy
sudo a2enmod proxy
  • headers Va nous permettre si l’accès a la cameras se fait via un Apache Auth
  • http_proxy et proxy servent a faire les reverse proxy
Maintenant on va modifier les fichier de config
/etc/apache2/sites-enabled/cameras.societe.net
et ajouter les lignes suivante
ProxyRequests off
RequestHeader set Authorization "Basic YWRtaW46" # Cette ligne peut être facultative si l’accès web de vos cameras n'est pas protéger par un Apache Auth
ProxyPass /cam1/video.cgi http://IP-CAMERA1/videostream.cgi
ProxyPass /cam2/video.cgi http://IP-CAMERA2/videostream.cgi
ProxyPass /cam3/video.cgi http://IP-CAMERA3/videostream.cgi
ProxyPass /cam4/video.cgi http://IP-CAMERA4/videostream.cgi

AddDefaultCharset off
Order allow,deny
Allow from all
Si votre cameras est protéger par un Apache Auth il faut remplacer le (YWRtaW46) par votreidentifiant:motdepass encoder en base 64 (YWRtaW46) correspond a (admin:) si vous n’avez pas envie d'utiliser de site qui encode en base64 comme celui ci Connecter vous a votre cameras et clique droit dans votre navigateur et (Procéder a l'inspection de l’élément) faite un F5, la page, dans l'onglet Network cliquer sur le premier fichier le plus haut, et regardé l'onglet header il y aura marqué (Authorization: Basic c2lsZW50dDpj) basiauthEn rouge c'est votre Identifiant:motdepasse en base64 que vous copier coller dans le fichier de conf
ProxyRequests off
RequestHeader set Authorization "Basic c2lsZW50dDpj"
ProxyPass /cam1/video.cgi http://IP-CAMERA1/videostream.cgi
Donc quand le serveur Apache reçois une requête avec /cam1/video.cgi il doit récupéré le contenue de http://192.168.1.240/videostream.cgi puis nous le renvoyé et comme il est sécurisé par mot de passe on lui précise les identifiant avec cette ligne RequestHeader set Authorization "Basic c2lsZW50dDpj" On redémarre le service apache2
sudo service apache2 restart
  • Création de la page HTML
il faut que vous crée une page HTML toute simple avec un champs image dans mon cas, avec
et voila le résultat final Mis en place d'un Reverse Proxy avec Apache
  • Avantage
    • Possibilité de cloîtré au niveaux du réseaux des équipements sensible tel que des cameras (Sécurité)
    • Une seule fois a écrire le mot de passe (Facilité)