59 votes

Est-ce que je peux créer un tunnel SSH pour faire passer le HTTP à travers le serveur comme s'il s'agissait d'un proxy?

Disons que j'ai un serveur et un client. J'ai besoin de créer une connexion du client vers un site web via le serveur comme s'il s'agissait d'un proxy.

Est-il possible de le faire en utilisant un tunnel SSH, ou dois-je installer un service proxy sur le serveur ?

3voto

Deloo Points 1

Tutoriel simple pour le tunneling HTTP avec SSH

Je n'ai pas compris les réponses principales au premier coup d'œil, alors j'ai cherché un tutoriel. Voici ce que j'ai appris et accompli.

Configuration

Vous êtes sur votre machine client, c'est-à-dire n'importe quel ordinateur sur lequel vous pouvez taper des commandes. Vous souhaitez vous connecter à une machine appelée remotehost, tout en faisant transiter votre trafic par une machine appelée proxyhost. Vous pouvez vous connecter avec ssh à proxyhost. remotehost est inaccessible depuis votre client, mais peut être atteint depuis proxyhost.

Étapes

  1. Sur votre client, exécutez cette commande :
  2. ssh :: @
    • est un port libre sur votre client, comme 8000;
    • est le nom de domaine ou l'adresse IP de la machine remotehost. Notez que ce nom de domaine ou cette adresse IP peut être sans signification ou inaccessible pour votre client. L'élément important est qu'il soit significatif et accessible pour votre proxyhost. *. est le port que vous souhaitez atteindre sur remotehost, comme 80 pour http ou 443 pour https. *. @ est la façon dont vous accédez à proxyhost avec ssh et votre compte sur cette machine.
  3. À ce stade, vous pouvez naviguer sur localhost: et utiliser les ressources de remotehost.

1voto

perfecto25 Points 268

Vous pouvez utiliser SSHUTTLE, voici un tutoriel sur comment l'utiliser,

https://etherarp.net/sshuttle-a-vpn-for-the-lazy/

voici un tutoriel sur comment le configurer pour fonctionner en tant que service,

https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe

0voto

Farazdak Points 1

J'ai rencontré quelques difficultés en essayant de transférer des sockets. Surtout dans la situation où nginx utilise un socket pour servir un site web basé sur flask :

Voici mon expérience :

Le transfert de socket pourrait être écrit comme ceci :

ssh -R /run/temp1.sock:/run/temp2.sock somehost -N

temp1.sock fait référence à un socket sur le site distant. ssh n'accepte pas d'utiliser un socket distant existant, mais doit le créer. Il est créé avec des permissions 600, donc après sa création, il faut le rendre disponible pour nginx en ajoutant des privilèges d'écriture/lecture à l'utilisateur www-data.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X