Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
httptunnel [Le 16/11/2009, 20:40]
Mr. FX Ajout des informations LSB au début du script
httptunnel [Le 26/11/2023, 14:11] (Version actuelle)
Amiralgaby [En cas de soucis] utilisation de ss plutôt que netstat
Ligne 1: Ligne 1:
-{{tag>BROUILLON Gutsy Hardy Proxy}}+{{tag>Trusty Xenial ​Proxy}}
 ---- ----
  
Ligne 5: Ligne 5:
 {{http-tunnel.png|}}\\ {{http-tunnel.png|}}\\
 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'​entreprise. 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'​entreprise.
 +===== Pré-requis =====
 + 
 +  * Disposer des [[:​sudo|droits d'​administration]].
 +  * Disposer d'une connexion à Internet configurée et activée.
  
 +//Voir aussi SSH et Crokscrew [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=213500]] , une solution plus simple uniquement coté client pour passer le proxy. Pour avoir des tunnels, l'​emploi des tunnels SSH est alors plus sure puisque automatiquement crypté.
 +//
 ===== Installation ===== ===== Installation =====
  
-[[tutoriel:​comment_installer_un_paquet|Installer le paquet]] **[[apt://httptunnel|HTTP-Tunnel]]**+[[tutoriel:​comment_installer_un_paquet|Installer le paquet]] **[[apt>httptunnel]]**
  
 ===== Fonctionnement ====== ===== 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 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).+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).
  
 <​code>​ <​code>​
Ligne 63: Ligne 69:
 ===== Script de démarrage ===== ===== Script de démarrage =====
  
 +<​note>​
 +Il est possible que vous rencontriez l'​erreur suivante (avec la version 3.3+dfsg-3) lorsque **hts** est lancé en tant que **root** :
 +  tunnel_accept:​ couldn'​t write GET header: Invalid argument
 +Le problème est discuté là :
 +
 +  * [[https://​github.com/​larsbrinkhoff/​httptunnel/​issues/​3|GitHub]]
 +  * [[http://​askubuntu.com/​questions/​694510/​invalid-argument-error-in-httptunnel-client/​694568|AskUbuntu]]
 +
 +Le bug a été corrigé sur [[https://​github.com/​larsbrinkhoff/​httptunnel/​commit/​a578fb44f37c9ef8689d1030e19a69a73e914820|GitHub]]
 +
 +Installer le [[http://​packages.ubuntu.com/​wily/​httptunnel|package httptunnel 3.3+dfsg-4]] de [[Wily]] corrige le problème.
 +</​note>​
 +<note important>​À partir d'​[[:​xenial|Ubuntu 16.04]], le système d'​initialisation par défaut d'​Ubuntu est [:​[Systemd]].
 +Reportez-vous au tutoriel suivant : [[Créer un service avec Systemd]]
 +</​note>​
 Ci dessous un script de démarrage pour **/​etc/​init.d/​** pour ajouter au démarrage du système le serveur HTTP-Tunnel. Ci dessous un script de démarrage pour **/​etc/​init.d/​** pour ajouter au démarrage du système le serveur HTTP-Tunnel.
  
-Créez un fichier appelé **/​etc/​init.d/​httptunnel ** et rendez le éxecutable ​:+Créez un fichier appelé **/​etc/​init.d/​httptunnel ** et rendez-le exécutable ​:
 <​code>​ <​code>​
 sudo touch /​etc/​init.d/​httptunnel && sudo chmod 755 /​etc/​init.d/​httptunnel sudo touch /​etc/​init.d/​httptunnel && sudo chmod 755 /​etc/​init.d/​httptunnel
Ligne 89: Ligne 110:
 \\ \\
 [[tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​init.d/​httptunnel** en tant que root (sinon vous n'​aurez pas les droits en écriture), et copier/​coller le script ci-dessous dedans. [[tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​init.d/​httptunnel** en tant que root (sinon vous n'​aurez pas les droits en écriture), et copier/​coller le script ci-dessous dedans.
-<​file>​+<​file ​bash httptunnel>
 #!/bin/sh #!/bin/sh
 # #
 ### BEGIN INIT INFO ### BEGIN INIT INFO
 # Provides: ​         httptunnel # Provides: ​         httptunnel
 +# Required-Start: ​   $syslog $remote_fs $network
 +# Required-Stop: ​    ​$syslog $remote_fs $network
 # Default-Start: ​    2 3 4 5 # Default-Start: ​    2 3 4 5
 # Default-Stop: ​     0 1 6 # Default-Stop: ​     0 1 6
Ligne 161: Ligne 184:
 </​file>​ </​file>​
  
-Ce script peut donc être appelé par la commande **/​etc/​init.d/​httptunnel** et accepte 4 arguments différents **start** pour lancer le service**stop** pour l'arretêr, ​**status** pour afficher un état des lieux et **view_log** pour afficher le journal. +Ce script peut donc être appelé par la commande **/​etc/​init.d/​httptunnel** et accepte 4 arguments différents ​
- +  * **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 ===== ===== 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. 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.
  
 <​code>​ <​code>​
-sudo netstat ​-| grep le_n°_de_port+sudo ss -lap | grep -F ":​56986"​ # remplacer 56986 par le numéro de port
 </​code>​ </​code>​
  
-Si le port est déja occupé cette commande affichera quelque chose dans le résultat, autrement elle n'​affichera rien. Bon courage+Si le port est déjà ​occupé cette commande affichera quelque chose dans le résultat, autrement elle n'​affichera rien. Bon courage
  
  
Ligne 177: Ligne 202:
 ===== Voir aussi ===== ===== Voir aussi =====
 \\ \\
-[[http://​www.commentcamarche.net/​forum/​affich-59147-tunnelling-ip-over-http|Documentation commentcamarche]]\\ +[[https://​www.commentcamarche.net/​forum/​affich-59147-tunnelling-ip-over-http|Documentation commentcamarche]]\\ 
-[[http://​en.wikipedia.org/​wiki/​HTTP_tunnel_(software)|Documentation Wikipedia]] en anglais\\ +[[https://​en.wikipedia.org/​wiki/​HTTP_tunnel_(software)|Documentation Wikipedia]] en anglais\\ 
-[[http://www.nocrew.org/software/httptunnel.html|Site Officiel]]+[[https://github.com/larsbrinkhoff/​httptunnel|Site Officiel]]
 ---- ----
 //​Contributeurs : [[utilisateurs:​maclane45|maclane45]]//​ //​Contributeurs : [[utilisateurs:​maclane45|maclane45]]//​
  • httptunnel.1258400435.txt.gz
  • Dernière modification: Le 18/04/2011, 14:40
  • (modification externe)