175
modifications
m (Ajout catégorie) |
Aucun résumé des modifications |
||
(13 versions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 4 : | Ligne 4 : | ||
Pour ce faire il vous faut : | Pour ce faire il vous faut : | ||
* 2 ordinateurs : un dans le réseau filtré et un hors de ce réseau mais accessible ; | * 2 ordinateurs : un dans le réseau filtré et un hors de ce réseau mais accessible ; | ||
* Un serveur SSH fonctionnel sur la machine hors du réseau ; | * Un serveur [[Ssh|SSH]] fonctionnel sur la machine hors du réseau ; | ||
* Penser à préparer la recette avant de vous retrouver dans le réseau filtré ; | * Penser à préparer la recette avant de vous retrouver dans le réseau filtré ; | ||
* Le paquet httptunnel installé sur les deux machines. | * Le paquet httptunnel installé sur les deux machines. | ||
=Configuration de la machine complice= | =Configuration de la machine complice= | ||
Nous allons ici nous servir du couple hts et htc, ils sont | Nous allons ici nous servir du couple hts et htc, ils sont tous deux dans le paquet httptunnel, il va donc falloir installer ce paquet sur chacune des deux machines. | ||
Sur la machine complice lancer la commande : | Sur la machine complice lancer la commande : | ||
Ligne 15 : | Ligne 15 : | ||
hts --forward-port localhost:22 80 | hts --forward-port localhost:22 80 | ||
</code> | </code> | ||
Ceci aura pour effet de créer un bout du tunnel sur le port 80 de la machine « complice » et la connexion provenant de ce port | Ceci aura pour effet de créer un bout du tunnel sur le port 80 de la machine « complice » et la connexion provenant de ce port sera transférée sur le port local 22 (ssh). | ||
Cette commande retourne immédiatement et ne | Cette commande retourne immédiatement et ne dit rien, elle crée un daemon qui enregistre ses journaux (bien utiles) dans /var/log/syslog. | ||
==Automatisation== | |||
Afin d'automatiser le lancement de hts au démarrage de l'ordinateur, il est possible de créer un script dans /etc/init.d. Voici un exemple fait à partir du skeleton : | |||
<code>#! /bin/sh | |||
### BEGIN INIT INFO | |||
# Provides: tunnel | |||
# Required-Start: $remote_fs | |||
# Required-Stop: $remote_fs | |||
# Default-Start: 2 3 4 5 | |||
# Default-Stop: 0 1 6 | |||
# Short-Description: tunnel HTTP | |||
# Description: Create a HTTP tunnel on port 80 to port 22 of localhost | |||
### END INIT INFO | |||
# Do NOT "set -e" | |||
# PATH should only include /usr/* if it runs after the mountnfs.sh script | |||
PATH='/sbin:/usr/sbin:/bin:/usr/bin' | |||
DESC='Tunnel HTTP' | |||
NAME='hts' | |||
DAEMON=/usr/bin/$NAME | |||
PIDFILE=/var/run/$NAME.pid | |||
DAEMON_ARGS="--forward-port localhost:22 8080 --pid-file $PIDFILE" | |||
SCRIPTNAME='/etc/init.d/tunnel' | |||
# Exit if the package is not installed | |||
[ -x "$DAEMON" ] || exit 0 | |||
# Read configuration variable file if it is present | |||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME | |||
# Load the VERBOSE setting and other rcS variables | |||
. /lib/init/vars.sh | |||
# Define LSB log_* functions. | |||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. | |||
. /lib/lsb/init-functions | |||
do_start() | |||
{ | |||
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ | |||
$DAEMON_ARGS \ | |||
|| return 2 | |||
} | |||
do_stop() | |||
{ | |||
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME | |||
RETVAL="$?" | |||
[ "$RETVAL" = 2 ] && return 2 | |||
# hts don't delete this pidfile when it exit. | |||
rm -f $PIDFILE | |||
return "$RETVAL" | |||
} | |||
do_reload() { | |||
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME | |||
return 0 | |||
} | |||
case "$1" in | |||
start) | |||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" | |||
do_start | |||
case "$?" in | |||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | |||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | |||
esac | |||
;; | |||
stop) | |||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" | |||
do_stop | |||
case "$?" in | |||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | |||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | |||
esac | |||
;; | |||
restart|force-reload) | |||
log_daemon_msg "Restarting $DESC" "$NAME" | |||
do_stop | |||
case "$?" in | |||
0|1) | |||
do_start | |||
case "$?" in | |||
0) log_end_msg 0 ;; | |||
1) log_end_msg 1 ;; # Old process is still running | |||
*) log_end_msg 1 ;; # Failed to start | |||
esac | |||
;; | |||
*) | |||
log_end_msg 1 | |||
;; | |||
esac | |||
;; | |||
*) | |||
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 | |||
exit 3 | |||
;; | |||
esac | |||
:</code> | |||
=Configuration de votre machine= | =Configuration de votre machine= | ||
Ligne 67 : | Ligne 168 : | ||
Order deny,allow | Order deny,allow | ||
Allow from all | Allow from all | ||
</Proxy> | </Proxy> | ||
ProxyPass / http://localhost:8888 | ProxyPass / http://localhost:8888/ | ||
</VirtualHost> | </VirtualHost> | ||
</code> | </code> | ||
'''Note:''', Cette configuration devrait marcher, mais il est arrivé que le dialogue se fasse tout de même sur le port 8888 (en théorie non). Cela est du à un bug dans apache, cf [https://issues.apache.org/bugzilla/show_bug.cgi?id=19954 ce rapport de bug] | |||
Remettez apache en route: | |||
<code> | <code> | ||
$ su | $ su | ||
Ligne 91 : | Ligne 192 : | ||
<code>htc --forward-port 1234 ssh.votredomaine.org</code> fonctionnera. | <code>htc --forward-port 1234 ssh.votredomaine.org</code> fonctionnera. | ||
[[ | [[Catégorie:Réseau]] | ||
[[ | [[Niveau de difficulté::Expérimenté]] | ||
[[Protocole::Wifi]] |
modifications