Sur la machine cliente (qui accède à la VM), vous allez “forwarder” un port via ssh et demander à votre navigateur Web de passer par un proxy situé sur l'hôte local et utilisant ce même port. (à reformuler)
En face, côté VM, vous allez installer un proxy http qui va recevoir les requêtes forwardées.
Le résultat, c'est que vous aurez une fenêtre dans votre navigateur qui vous donnera accès à votre réseau local exactement comme si vous étiez chez vous !
Avant de commencer, si c'est la première fois que vous lancez la VM Ubuntu server (: il n'y avait que 2VM dispos à l'époque), je vous conseille vivement de créer un nouvel utilisateur et de supprimer le compte vmadmin (ou au moins d'en changer le mot de passe).
Libre à vous également de changer le port d'écoute du démon ssh, ou encore de fixer l'IP de votre VM. Notez que vous aurez besoin de l'IP et du port écouté par le démon plus loin (pour le tuto, l'IP de la VM sera 192.168.0.bbb et le port écouté par sshd zzzzz).
Je vous propose donc d'utiliser le serveur mandataire squid (http://www.squid-cache.org/) :
sudo apt-get install squid
Pour être tout à fait franc avec vous, vous n'êtes pas vraiment obligés d'utiliser ce serveur mandataire. En effet, le démon ssh installé sur Ubuntu server est capable de jouer ce rôle, à la différence près que le serveur mandataire serait alors de type SOCKS. D'après quelques tests, je ne peux que vous conseiller d'installer squid, mais libre à vous ;)
Donc, le fichier de configuration de squid se trouve ici :
sudo vi /etc/squid/squid.conf
La configuration par défaut devrait fonctionner, vous pouvez néanmoins :
## Spécifier le port écouté ici http_port xxxx ## Pour éviter d'avoir des problèmes avec le nom d'hôte et de domaine, ajouter la directive visible_hostname none ## Par défaut, le proxy est paramétré comme suit (ce qui convient parfaitement à l'utilisation décrite ici) http_access allow localhost http_access deny all ## -> Pour une gestion plus fine de l'accès au proxy, n'hésitez pas à jouer avec les ACL ## Par défaut, voici les paramètres de cache (swap) à changer en fonction de votre VM, vos besoins cache_mem 8 MB cache_dir /var/spool/squid
Une fois les paramètres réglés à votre convenance :
sudo squid start
Ou si squid tourne déjà :
sudo squid -k reconfigure
On vérifie enfin que squid écoute bien le bon port xxxx :
~$ sudo netstat -nap | grep squid tcp 0 0 0.0.0.0:xxxx 0.0.0.0:* LISTEN 772/(squid)<code> Ne vous souciez pas des lignes udp. Voilà, c'est tout pour le serveur. ===== Paramétrages de votre routeur ===== Sur votre routeur, vous n'avez rien à faire si vous avez accès à votre VM en ssh depuis l'extérieur. Si ce n'est pas le cas, vous avez __uniquement__ besoin de rediriger un port tcp sur le port écouté par le démon ssh de votre VM. Par exemple, en supposant que le port redirigé sur le routeur soit le même que celui écouté par sshd : <code>zzzzz->tcp 192.168.0.bbb->zzzzz
Cette redirection suffit car les requêtes http seront entièrement tunnelisées ou encapsulées par ssh.
Vous devez au préalable :
Il ne reste plus qu'à forwarder le port vers notre VM distante. Il faut utiliser un port libre sur votre client. J'utiliserai 50000 dans cet exemple mais vous pouvez utiliser n'importe quel autre port du moment qu'il n'est pas déjà utilisé.
Pour faire le forwarding de port, nous allons utiliser le flag -L de ssh (nous pourrions également utiliser -D) :
ssh -L50000:127.0.0.1:xxxx -p zzzzz login@99.999.99.999
Pour plus de confort, je vous conseille d'utiliser également les options suivantes :
ssh -N -T -f -L50000:127.0.0.1:xxxx -p zzzzz login@99.999.99.999
-f : exécution en arrière plan (le terminal rend la main), et l'entrée standard est redirigée vers /dev/null -N : aucune commande distante, juste un forward -T : désactive les pseudos terminaux
Si vous utilisez windows et Putty, il faut remplir vos paramètres de 'Session' comme si vous vous connectiez normalement en ssh à la VM. Puis, dans la partie 'Connection/SSH/Tunnels', ajouter :
Voilà, il suffit maintenant de dire à votre navigateur Web préféré qu'il doit utiliser un proxy qui se trouve sur votre machine (localhost) et qu'il écoute le port 50000.
Je vous conseille d'utiliser Firefox et le module FoxyProxy (https://addons.mozilla.org/fr/firefox/addon/foxyproxy-standard/) qui permet de définir des motifs d'URL qui déclencheront l'utilisation d'un proxy particulier précédemment défini.
Une fois le module installé, cliquez sur le petit renard en bas à droite de Firefox et faites 'Ajouter un nouveau proxy' :
.*vhs.*
Faites attention à bien 'activer' ce proxy dans la partie 'proxies' du module et le tour est joué. Chaque fois qu'une url contiendra la chaîne 'vhs', le proxy sera utilisé. Si l'IP du VHS-4 est [b]192.168.0.aaa[/b] et que vous tapez par exemple dans la barre de votre navigateur :
https://192.168.0.aaa/vhs
( IP de la v2)
le proxy sera activé et vous accéderez à l'interface de gestion que vous connaissez déjà très bien.
Vous pouvez effectivement observer tout ce qui transite par squid en surveillant sur la VM le fichier :
sudo tail -f /var/log/squid/access.log
De plus, passant par sshd pour accéder à la machine, vous pouvez surveiller les logs du démon ssh :
grep sshd /var/log/auth.log | tail -50
Avec l'aimable autorisation d'Houssenka pour la reproduction de ce tuto du forum Pour discuter ou poser des questions par ici!