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 :

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
<Proxy>
AddDefaultCharset off
Order allow,deny
Allow from all
</Proxy>

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

<img src="IP-SERVEUR/cam1/video.cgi">

et voila le résultat final

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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.