Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| httptunnel [Le 05/10/2008, 17:09] – MacLane45 | httptunnel [Le 16/09/2026, 21:33] (Version actuelle) – Mise en forme (https://forum.ubuntu-fr.org/viewtopic.php?pid=22907707#p22907707) nany | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>gutsy, hardy}} | + | {{tag>Trusty Xenial Proxy}} |
| + | ---- | ||
| - | + | ====== HTTP-Tunnel, ou comment encapsuler dans des paquets HTTP ======= | |
| - | ====== HTTP-Tunnel | + | |
| {{http-tunnel.png|}}\\ | {{http-tunnel.png|}}\\ | ||
| - | HTTP-Tunnel sert à encapsuler des paquets d'un autre protocole (FTP, SHH, etc) dans des paquets HTTP. Ceci permet de passer à travers de certains pare-feux ou proxys qui bloquent les paquets, notamment sur des réseaux sécurisés d' | + | HTTP-Tunnel sert à encapsuler des paquets d'un autre protocole (FTP, SSH, etc) dans des paquets HTTP. Ceci permet de passer à travers de certains pare-feux ou proxys qui bloquent les paquets, notamment sur des réseaux sécurisés d' |
| - | \\ | + | ===== Pré-requis ===== |
| + | |||
| + | * Disposer des [[: | ||
| + | * Disposer d'une connexion à Internet configurée et activée. | ||
| - | ==== Nécessaire | + | //Voir aussi SSH et Crokscrew [[https:// |
| + | ===== Installation ===== | ||
| - | [[tutoriel: | + | [[tutoriel: |
| - | \\ | + | |
| - | En ligne de commandes dans un terminal :\\ | + | |
| - | < | + | ===== Fonctionnement ====== |
| - | sudo apt-get install httptunnel | + | |
| - | </ | + | |
| + | Le paquet **http-tunnel** doit être installé sur le client et sur le serveur. Ce paquet est composé du serveur http-tunnel qu'on appelle par la commande **hts** et du client http-tunnel qu'on appelle par la commande **htc**. Le principe est que le serveur http-tunnel écoute sur un port TCP donné (toujours au dessus de 1024) et que le client se connecte sur ce port afin de créer un tunnel. Ensuite le client FTP ou SSH désiré se connecte sur le client **htc** (en local la plupart du temps, nous allons y revenir), et le serveur **hts** redirige le flux vers le serveur SSH (en local aussi). | ||
| - | ==== Principe de fonctionnement ===== | ||
| - | |||
| - | Le paquet **http-tunnel** doit être installé sur le client et sur le serveur. Ce paquet est composé du serveur http-tunnel qu'on appelle par la commande **hts** et du client http-tunnel qu'on appelle par la commande **htc**. Le principe est que le serveur http-tunnel écoute sur un port TCP donné (toujours au dessus de 1024) et que le client ce connecte sur ce port afin de créer un tunnel. Ensuite le client FTP ou SSH désiré se connecte sur le client **htc** (en local la plupart du temps, nous allons y revenir) et le serveur **hts**, redirige le flux vers le serveur SSH (en local aussi). Je vais essayer d' | ||
| - | \\ | ||
| < | < | ||
| ______________ | ______________ | ||
| Ligne 36: | Ligne 33: | ||
| </ | </ | ||
| - | ==== Lancement du serveur | + | |
| - | \\ | + | ===== Configuration |
| Dans cet exemple le serveur **hts** écoute sur le port TCP 10000 de l' | Dans cet exemple le serveur **hts** écoute sur le port TCP 10000 de l' | ||
| - | tout ce qui arrive vers le port 22 de la même machine (localhost) pour le lancer on utilise la ligne de commande suivante :\\ | + | tout ce qui arrive vers le port 22 de la même machine (localhost) pour le lancer on utilise la ligne de commande suivante : |
| - | \\ | + | |
| < | < | ||
| - | hts -F localhost:10000 22 | + | hts -F localhost: |
| </ | </ | ||
| - | ==== Lancement du client ==== | ||
| - | Sur le client on transfère le port de connexion SSH (23000) vers le serveur HTTP-Tunnel (monsite.com: | + | ===== Utilisation ===== |
| - | \\ | + | |
| + | Sur le client on transfère le port de connexion SSH (23000) vers le serveur HTTP-Tunnel (monsite.com: | ||
| < | < | ||
| htc -F 23000 -P le_proxy: | htc -F 23000 -P le_proxy: | ||
| Ligne 57: | Ligne 56: | ||
| Il faut impérativement lancer le serveur HTTP-Tunnel avant le client, sinon la connexion qui passe au travers ne s' | Il faut impérativement lancer le serveur HTTP-Tunnel avant le client, sinon la connexion qui passe au travers ne s' | ||
| </ | </ | ||
| - | Ensuite il suffit de lancer la commande suivante sur le client pour se connecter au serveur.\\ | + | Ensuite il suffit de lancer la commande suivante sur le client pour se connecter au serveur. |
| < | < | ||
| - | ssh utilisateur@localhost:23000 | + | ssh utilisateur@localhost |
| </ | </ | ||
| Ligne 67: | Ligne 66: | ||
| </ | </ | ||
| + | ===== Script de démarrage ===== | ||
| + | < | ||
| + | Il est possible que vous rencontriez l' | ||
| + | tunnel_accept: | ||
| + | Le problème est discuté là : | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | Le bug a été corrigé sur [[https:// | ||
| + | Installer le [[http:// | ||
| + | </ | ||
| + | <note important> | ||
| + | Reportez-vous au tutoriel suivant : [[Créer un service avec Systemd]] | ||
| + | </ | ||
| + | Ci dessous un script de démarrage pour **/ | ||
| - | + | Créez un fichier appelé **/ | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Script de démarrage ==== | + | |
| - | \\ | + | |
| - | Ci dessous un script de démarrage pour **/ | + | |
| - | \\ | + | |
| - | Créez un fichier appelé **/ | + | |
| < | < | ||
| sudo touch / | sudo touch / | ||
| Ligne 100: | Ligne 97: | ||
| sudo update-rc.d httptunnel defaults | sudo update-rc.d httptunnel defaults | ||
| - | Adding system startup for / | + | Adding system startup for / |
| - | | + | / |
| - | | + | / |
| - | | + | / |
| - | | + | / |
| - | | + | / |
| - | | + | / |
| - | | + | / |
| </ | </ | ||
| \\ | \\ | ||
| - | Editez | + | [[tutoriel: |
| - | < | + | < |
| - | sudo nano /etc/ | + | |
| - | gksudo gedit / | + | |
| - | </ | + | |
| - | Copier/ | + | |
| - | < | + | |
| #!/bin/sh | #!/bin/sh | ||
| + | # | ||
| + | ### BEGIN INIT INFO | ||
| + | # Provides: | ||
| + | # Required-Start: | ||
| + | # Required-Stop: | ||
| + | # Default-Start: | ||
| + | # Default-Stop: | ||
| + | # Short-Description: | ||
| + | ### END INIT INFO | ||
| # | # | ||
| # Declaration des variables | # Declaration des variables | ||
| Ligne 182: | Ligne 183: | ||
| </ | </ | ||
| - | Ce script peut donc être appelé par la commande **/ | + | Ce script peut donc être appelé par la commande **/ |
| + | * **start** pour lancer le service | ||
| + | * **stop** pour l'arrêter ; | ||
| + | * **status** pour afficher un état des lieux ; | ||
| + | * **view_log** pour afficher le journal. | ||
| + | ===== En cas de soucis ===== | ||
| + | Si votre tunnel ne se crée pas coté serveur ou coté client, pensez à vérifier si le port demandé en écoute pour **hts** ou **htc** est bien libre. | ||
| - | |||
| - | |||
| - | ==== En cas de soucis ==== | ||
| - | Si votre tunnel ne se crée pas coté serveur ou coté client, pensez à vérifier si le port demandé en écoute pour **hts** ou **htc** est bien libre.\\ | ||
| - | \\ | ||
| < | < | ||
| - | sudo netstat | + | sudo ss -lap | grep -F ": |
| </ | </ | ||
| - | \\ | ||
| - | Si le port est déja occupé cette commande affichera quelque chose dans le résultat, autrement elle n' | ||
| + | Si le port est déjà occupé cette commande affichera quelque chose dans le résultat, autrement elle n' | ||
| + | ===== Voir aussi ===== | ||
| + | \\ | ||
| + | [[https:// | ||
| + | [[https:// | ||
| + | [[https:// | ||
| + | |||
| + | ---- | ||
| - | ==== Liens ==== | ||
| - | \\ | ||
| - | [[http:// | ||
| - | [[http:// | ||
| - | [[http:// | ||
| - | \\ | ||
| // | // | ||
