Author Topic: Redirection vers un serveur Web externe  (Read 1697 times)

PierreB

  • Zen Apprentice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Redirection vers un serveur Web externe
« on: December 30, 2013, 11:30:46 am »
Bonjour,

Je viens de démarrer une série de tests sur Zentyal 3.3 et ceci est mon premier post sur ce forum.

Ma configuration est la suivante:
- 3 interfaces (1 externe pppoE connectée à ma b-box3 (Belgacom), 2 internes lan + dmz)
- ip externe dynamique chez Joker.com
- module web activé (entre autres)

J'ai ajouté quelques hôtes virtuels, créé les index.htm dans /srv/www/hôtes
Tout cela fonctionne correctement.

Je souhaite déporter le service web sur un serveur autre que Zentyal.
J'ai donc mis une machine Virtualmin/Apache dans le lan (plus tard dans la DMZ), créé un serveur virtuel et ajouté un index.htm.
Le serveur Apache est opérationnel. Je peux effectuer un preview et visualiser le serveur virtuel.

Comment faire pour que Zentyal route mes requêtes vers ce serveur au lieu de lui-même ?
Exemple, demo.mondomaine.net
Ajouter un Virtual Host dans le module Web Server de Zentyal crée systématiquement un nouveau répertoire dans /srv/www.
Un message d'aide informe:
Quote
Virtual host demo.mondomaine.net added. A host demo has been added to mondomaine.net domain. Please, set the host IP address
Cela crée également en effet une entrée DNS mondomaine.net et un hôte demo. Il est possible de modifier l'IP de l'hôte de ce domaine. Ce que j'ai fait en désignant le serveur VirtualMin.
Pour autant, mon domaine pointe toujours vers le répertoire standard de Zentyal /srv/www/

Quelque chose m'échappe manifestement...
Quelqu'un a-t'il déjà tenté ce type de configuration?

Merci

christian

  • Guest
Re: Redirection vers un serveur Web externe
« Reply #1 on: December 30, 2013, 01:23:55 pm »
D'un strict point de vue technique, la meilleure solution est, à mon sens, d'utiliser un  reverse proxy sur le serveur Zentyal.
Cette fonctionnalité n'existe pas par défaut.

Nginx est (était) un bon candidat pour ce type de service mais depuis que Zentyal à décidé d'utiliser Nginx comme serveur Web pour l'interface d'admin (ce qui est dans l'absolu une bonne idée), utiliser le même Nginx comme reverse proxy va rendre les choses plus compliquée car il va falloir tenir compte de ce que fait Zentyal en terme de configuration (et de potentiels changements à venir).

Une autre solution serait un moteur genre HAproxy mais, là aussi, ce service fait partie des plans de Zentyal pour la 3.4 (je n'ai pas de détail sur ce qu'ils souhaitent en faire. Tu peux peut-être poser la question dans la section internationale...

Du coup, configurer Apache en mode reverse proxy devient une alternative intéressant. Apache est aussi géré par Zentyal mais une fois que toute l'admin sera passée sur Nginx, ça devrait être un peu plus souple.

Une autre solution, mais que je n'aime pas beaucoup, est de faire de la redirection de port vers tes serveurs internes.

PierreB

  • Zen Apprentice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Re: Redirection vers un serveur Web externe
« Reply #2 on: January 08, 2014, 08:59:13 am »
Merci pour ces précisions Christian.

J'utilise la version 3.3 community. Attendons de voir ce que la 3.4 apportera  :).

Je n'ai pas touché à nginx, que je connais bien, et utilise systématiquement comme reverse pour fournir de l'HTTPS.
Dans Zentyal, il semble être dédié à l'interface d'administration.

Dans l'immédiat, j'ai testé le reverse proxy sur apache, qui fonctionne parfaitement.
Dans le répertoire /etc/apache2/sites-available/user-ebox-monsite, j'ai créé un fichier "proxy" contenant:
Code: [Select]
ProxyRequests On
ProxyPreserveHost On
<Proxy *>
Order deny, allow
Allow from all
</Proxy>
ProxyPass / http://IP-Interne/
ProxyHTMLURLMap / /
Après avoir reloadé la config Apache, j'ai bien accès aux sites gérés par Virtualmin.

J'ai aussi essayé le forwarding du port 80 vers l'IP Interne. Ca marche tout aussi bien, voire même un peu mieux selon moi.

Je m'explique:
-D'une part, et c'est une réflexion que je te soumets, n'est-il pas plus sécurisé de dévier les requêtes au niveau réseau plutôt qu'au niveau applicatif ?
L'intérêt est d'isoler dans une dmz gérée par Zentyal l'ensemble des services supportés par VirtualMin (HTTP,HTTPS,FTP,SMTP,IMAP...)
En forwardant chacun de ces ports (80,443,21,25,143) vers mon IP Interne, le traffic n'atteint pas le serveur Zentyal.
Seul le port VPN est ouvert en entrée.
Ceci dit, Iptables est bien physiquement installé sur Zentyal, donc il est quand même exposé, mais je me dis qu'il est prévu pour ça..., non  ???

-D'autre part, d'un point de vue gestion, c'est quand même beaucoup plus complet d'administrer les domaines, users, quotas, accès FTP sur VirtualMin.
Dans le cas du reverse proxying, il faut créer les entrées des 2 côtés (Zentyal et VirtualMin).
Je reconnais que si j'avais plusieurs serveurs Virtualmin, le reverse serait plus souple. 8)

christian

  • Guest
Re: Redirection vers un serveur Web externe
« Reply #3 on: January 08, 2014, 01:59:10 pm »
Quote
-D'une part, et c'est une réflexion que je te soumets, n'est-il pas plus sécurisé de dévier les requêtes au niveau réseau plutôt qu'au niveau applicatif ?

C'est une question de goût  ;D
A titre personnel, je n'aime pas faire du forward au niveau IP vers des serveurs "à l'intérieur" car le risque est beaucoup plus important.
Si on se concentre sur HTTP, le reverse proxy est bien plus safe car la session de l'utilisateur externe s'arrête au niveau du reverse proxy.

Après, si le but est de faire un forward vers une DMZ  pourquoi pas... ou même vers le LAN, encore une fois, c'est une question de choix global.

Ce qu'un reverse proxy te permettrait, par exemple, par rapport à un forward IP, c'est de n'autoriser vers le LAN que les utilisateurs authentifiés. Juste un petit exemple  ;)

Quant à Virtualmin.... je ne comprends pas la logique si installé en parallèle de Zentyal  :-[