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 07/10/2008, 17:42]
maclane45
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}}
 ---- ----
  
 ====== HTTP-Tunnel,​ ou comment encapsuler dans des paquets HTTP ======= ====== HTTP-Tunnel,​ ou comment encapsuler dans des paquets HTTP =======
 {{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'​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 ​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'​être le plus clair possible.+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 39: Ligne 41:
  
 <​code>​ <​code>​
-hts -F localhost:10000 22+hts -F localhost:​22 ​10000
 </​code>​ </​code>​
  
Ligne 58: Ligne 60:
  
 <​code>​ <​code>​
-ssh utilisateur@localhost:23000+ssh utilisateur@localhost ​-p 23000
 </​code>​ </​code>​
  
Ligne 65: Ligne 67:
 </​note>​ </​note>​
  
 +===== 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à :
  
-===== Script de démarrage =====+  * [[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 83: Ligne 98:
 sudo update-rc.d httptunnel defaults sudo update-rc.d httptunnel defaults
  
- Adding system startup for /​etc/​init.d/​httptunnel ... +Adding system startup for /​etc/​init.d/​httptunnel ... 
-   ​/​etc/​rc0.d/​K20httptunnel -> ../​init.d/​httptunnel +  /​etc/​rc0.d/​K20httptunnel -> ../​init.d/​httptunnel 
-   ​/​etc/​rc1.d/​K20httptunnel -> ../​init.d/​httptunnel +  /​etc/​rc1.d/​K20httptunnel -> ../​init.d/​httptunnel 
-   ​/​etc/​rc6.d/​K20httptunnel -> ../​init.d/​httptunnel +  /​etc/​rc6.d/​K20httptunnel -> ../​init.d/​httptunnel 
-   ​/​etc/​rc2.d/​S20httptunnel -> ../​init.d/​httptunnel +  /​etc/​rc2.d/​S20httptunnel -> ../​init.d/​httptunnel 
-   ​/​etc/​rc3.d/​S20httptunnel -> ../​init.d/​httptunnel +  /​etc/​rc3.d/​S20httptunnel -> ../​init.d/​httptunnel 
-   ​/​etc/​rc4.d/​S20httptunnel -> ../​init.d/​httptunnel +  /​etc/​rc4.d/​S20httptunnel -> ../​init.d/​httptunnel 
-   ​/​etc/​rc5.d/​S20httptunnel -> ../​init.d/​httptunnel+  /​etc/​rc5.d/​S20httptunnel -> ../​init.d/​httptunnel
  
 </​code>​ </​code>​
 \\ \\
-[[tutoriel:​comment_editer_un_fichier|Editez ​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
 +# Provides: ​         httptunnel
 +# Required-Start: ​   $syslog $remote_fs $network
 +# Required-Stop: ​    ​$syslog $remote_fs $network
 +# Default-Start: ​    2 3 4 5
 +# Default-Stop: ​     0 1 6
 +# Short-Description:​ Start httptunnel as daemon at boot time
 +### END INIT INFO
 # #
 # Declaration des variables # Declaration des variables
Ligne 160: 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 
  
  
 ===== 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.1223394124.txt.gz
  • Dernière modification: Le 07/10/2008, 17:54
  • (modification externe)