Auteur Sujet: Forward Proxy ? Reverse Proxy?  (Lu 7509 fois)

0 Membres et 1 Invité sur ce sujet

DamienC

  • Abonné Sosh fibre
  • *
  • Messages: 2 217
  • FTTH ↓ 300Mbps ↑ 300 Mbps sur Brest (29)
Forward Proxy ? Reverse Proxy?
« le: 30 janvier 2020 à 14:38:13 »
Bonjour,

Cela fait un moment que j'essai sans succès.
Mon objectif est que les clients se connectent sur un serveur web (port 80 ou 443) et que ce serveur web se charge de se connecter a d'autres serveurs web (réseaux non accessibles directement aux clients) en forwardant tout le contenu des backend, donc pas uniquement une redirection comme un simple reverse proxy.

J'ai mis en PJ un schéma. En gros il ne faut pas que les clients aient besoin d'intéroger en direct les serveurs derrière le forward proxy.

J'ai essayé avec nginx, en mode reverse; je charge que les entêtes HTML (normal, c'est son rôle) et également avec apache2 et son mod "ProxyVia" mais je ne pense pas que cela réponde à ma probèmatique.

Avez-vous des tips?

Cordialement,
DamienC


Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 448
  • Lyon (69) / St-Bernard (01)
    • Twitter
Forward Proxy ? Reverse Proxy?
« Réponse #1 le: 30 janvier 2020 à 14:38:48 »
Un Load Balancer, donc ?

DamienC

  • Abonné Sosh fibre
  • *
  • Messages: 2 217
  • FTTH ↓ 300Mbps ↑ 300 Mbps sur Brest (29)
Forward Proxy ? Reverse Proxy?
« Réponse #2 le: 30 janvier 2020 à 14:47:58 »
Un Load Balancer, donc ?
Bas pour moi un load balancer redistribue les requêtes vers divers backend, mais les clients communiquent directement avec ces backends non? Il se contente juste de forward les requêtes et non pas le contenu HTML/PHP/CSS/IMG?

Car la les clients ne peuvent pas du tout d'aucune manière communiquer avec les backend.
Uniquement le proxy est autorisé à communiquer à la fois avec les backends et les clients

DamienC

  • Abonné Sosh fibre
  • *
  • Messages: 2 217
  • FTTH ↓ 300Mbps ↑ 300 Mbps sur Brest (29)
Forward Proxy ? Reverse Proxy?
« Réponse #3 le: 30 janvier 2020 à 16:14:31 »
J'ai essayé avec la conf apache suivante:

<VirtualHost *:80>

        ServerName xxxxxxxxxxxxxx
        ServerAdmin xxxxxxxxxxxxxxx
        DocumentRoot /var/www/xxxx

    <Proxy *>
            AddDefaultCharset off
            Order deny,allow
    #Deny from all
    Allow from all
    </Proxy>

        ProxyPreserveHost On
        ProxyPass /xxx http://xxxbackend/
        ProxyPassReverse /xxx http://xxxbackend/
        ProxyRequests Off

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Lorsque j'accède à l'url /xxx je suis bien forward vers le serveur en question mais mon navigateur cherche à charger le body etc depuis le backend et non pas depuis le reverse...
Je sèche complet

kazyor

  • Expert des Télécoms
  • Expert
  • *
  • Messages: 1 339
  • Lyon 7ème (69)
Forward Proxy ? Reverse Proxy?
« Réponse #4 le: 30 janvier 2020 à 16:33:12 »
Lorsque j'accède à l'url /xxx je suis bien forward vers le serveur en question mais mon navigateur cherche à charger le body etc depuis le backend et non pas depuis le reverse...
Je sèche complet

Tu n'as que de simples pages web (html/php/js/css) ?
Ne serait-ce pas parce que xxxbackend est écrit en dur dans les sources ?

DamienC

  • Abonné Sosh fibre
  • *
  • Messages: 2 217
  • FTTH ↓ 300Mbps ↑ 300 Mbps sur Brest (29)
Forward Proxy ? Reverse Proxy?
« Réponse #5 le: 30 janvier 2020 à 21:24:48 »
Tu n'as que de simples pages web (html/php/js/css) ?
Ne serait-ce pas parce que xxxbackend est écrit en dur dans les sources ?
Il s'agit d'Observium. Donc grosso-modo HTML/PHP/CSS oui

Sans doute, mais n'exist-il pas une solution capable de tout réécrire à la volée?
Comment fonctionne les proxy que l'on trouve sur le web où il suffit de mettre l'URL et le serveur se charge de télécharger le contenu demandé puis de le redistribuer?

Ilyazam

  • Abonné MilkyWan
  • *
  • Messages: 118
  • proche Rennes (35)
Forward Proxy ? Reverse Proxy?
« Réponse #6 le: 30 janvier 2020 à 22:22:31 »
En gros il te faut un reverse proxy qui gère la translation des URLs / liens avec le nom de domaine complet / headers de redirection.

Il faudrait que tu fasse une capture des requêtes sur la console réseau de ton navigateur pour voir quel est le comportement exact (quel script / partie de la page est appelé en direct, est-ce qu'il y a une redirection avec un code 301/302).
Sur Firefox la console s'affiche avec CTRL+MAJ+E

kazyor

  • Expert des Télécoms
  • Expert
  • *
  • Messages: 1 339
  • Lyon 7ème (69)
Forward Proxy ? Reverse Proxy?
« Réponse #7 le: 30 janvier 2020 à 23:11:29 »
Il s'agit d'Observium. Donc grosso-modo HTML/PHP/CSS oui

Sans doute, mais n'exist-il pas une solution capable de tout réécrire à la volée?
Comment fonctionne les proxy que l'on trouve sur le web où il suffit de mettre l'URL et le serveur se charge de télécharger le contenu demandé puis de le redistribuer?

Tu es dans un contexte entreprise ?
Un proxy transparent style squid ?

DamienC

  • Abonné Sosh fibre
  • *
  • Messages: 2 217
  • FTTH ↓ 300Mbps ↑ 300 Mbps sur Brest (29)
Forward Proxy ? Reverse Proxy?
« Réponse #8 le: 31 janvier 2020 à 00:08:29 »
Tu es dans un contexte entreprise ?
Un proxy transparent style squid ?
Yes j'ai une dizaine d'Observium sur divers sites, chaque Observium est capable de communiquer avec un serveur "central" en HTTP/HTTPS/SSH/SNMP

Je souhaite pouvoir consulter tous les Observium sur l'ensemble des réseaux du groupe; pour des raisons de sécurité/simplicité sur les firewall, j'autorise en source "all" et en destination mon serveur central.
Ainsi, chaque PC de chaque site peut taper l'interface web du serveur central.
Donc en gros; les clients ne peuvent communiquer qu'avec le serveur central et ce serveur central est le seul à pouvoir communiquer avec les divers Observium.

Il faut donc un forward proxy ou autre, mais pas un simple load balancer.

Car à l'heure actuelle, je charge les données de la page mais sans CSS, sans images, sans rien... Car les clients tentent de charger ce contenu sur les serveurs Observium en direct, et ça se n'est pas faisable :/

J'ai pensé à Squid mais comment faire pour avoir une seule page web regroupant tous les serveurs??

En gros il te faut un reverse proxy qui gère la translation des URLs / liens avec le nom de domaine complet / headers de redirection.

Il faudrait que tu fasse une capture des requêtes sur la console réseau de ton navigateur pour voir quel est le comportement exact (quel script / partie de la page est appelé en direct, est-ce qu'il y a une redirection avec un code 301/302).
Sur Firefox la console s'affiche avec CTRL+MAJ+E
J'ai déjà check, les headers sont bien rewrite par le proxy, mais pas le body. J'ai testé avec nginx, nginx plus, apache2... Et même... IIS...

xp25

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 5 938
Forward Proxy ? Reverse Proxy?
« Réponse #9 le: 31 janvier 2020 à 00:34:33 »
Tu cherch à faire ça en gros ? : http://blogmotion.fr/programmation/php-sql/reverse-proxy-rules-6608

Citer
Le reverse proxy (proxy inverse) est souvent utilisé en entreprise. Il permet d’atteindre des applications depuis Internet sans laisser entrer le visiteur sur le réseau de l’entreprise. C’est une pierre angulaire de la sécurité dans le cas de l’utilisation de serveurs web.


DamienC

  • Abonné Sosh fibre
  • *
  • Messages: 2 217
  • FTTH ↓ 300Mbps ↑ 300 Mbps sur Brest (29)
Forward Proxy ? Reverse Proxy?
« Réponse #10 le: 31 janvier 2020 à 07:47:54 »

Steph

  • Abonné K-Net
  • *
  • Messages: 7 596
  • La Balme de Sillingy 74
    • Uptime K-net
Forward Proxy ? Reverse Proxy?
« Réponse #11 le: 31 janvier 2020 à 08:12:54 »
Du coup, je suis perdu...
Message 10 contradictoire avec message 1?