Reverse ssh : Accéder à un serveur derrière un NAT - Firewall : Différence entre versions
De wikiGite
(Page créée avec « Fichier:Reverse.png Le serveur A se trouvant derriere le par-feu créé un tunnel vers le serveur B. Depuis B on se connecte au serveur A au travers du tunnel ssh. == P... ») |
|||
Ligne 5 : | Ligne 5 : | ||
== Prérequis == | == Prérequis == | ||
Ajouter cette ligne dans /etc/ssh/sshd_config : | Ajouter cette ligne dans /etc/ssh/sshd_config : | ||
− | + | <source lang="bash">AllowTcpForwarding yes</source> | |
Par sécurité créer un utilisateur dédié au tunnel sur B : | Par sécurité créer un utilisateur dédié au tunnel sur B : | ||
− | + | <source lang="bash">adduser userssh</source> | |
== Reverse ssh == | == Reverse ssh == | ||
Créez le tunnel sur le serveur A : | Créez le tunnel sur le serveur A : | ||
− | + | <source lang="bash">ssh -NR 22222:localhost:22 userssh@serveurB</source> | |
Se connecter au tunnel depuis le serveur B | Se connecter au tunnel depuis le serveur B | ||
− | + | <source lang="bash">ssh -p 22222 rootA@127.0.0.1</source> | |
== Service au démarrage de A == | == Service au démarrage de A == | ||
− | + | <source lang="bash">aptitude install autossh</source> | |
Générer une paire de clef avec root | Générer une paire de clef avec root | ||
− | + | <source lang="bash">ssh-keygen -t dsa</source> | |
Faire un echange de clef avec le serveur B: | Faire un echange de clef avec le serveur B: | ||
− | + | <source lang="bash">ssh-copy-id -i /root/.ssh/id_dsa.pub userssh@serveurB</source> | |
ajouter dans /etc/rc.local : | ajouter dans /etc/rc.local : | ||
− | + | <source lang="bash">autossh -i /root/.ssh/id_dsa -NR 22222:localhost:22 userssh@serveurB &</source> | |
Ligne 37 : | Ligne 37 : | ||
Sur A : | Sur A : | ||
− | + | <source lang="bash">ssh -NR 22280:localhost:80 userssh@serveurB</source> | |
Sur B : | Sur B : | ||
− | + | <source lang="bash">firefox "http://127.0.0.1:22280"</source> |
Version du 24 avril 2012 à 23:33
Le serveur A se trouvant derriere le par-feu créé un tunnel vers le serveur B. Depuis B on se connecte au serveur A au travers du tunnel ssh.
Prérequis
Ajouter cette ligne dans /etc/ssh/sshd_config :
AllowTcpForwarding yes
Par sécurité créer un utilisateur dédié au tunnel sur B :
adduser userssh
Reverse ssh
Créez le tunnel sur le serveur A :
ssh -NR 22222:localhost:22 userssh@serveurB
Se connecter au tunnel depuis le serveur B
ssh -p 22222 rootA@127.0.0.1
Service au démarrage de A
aptitude install autossh
Générer une paire de clef avec root
ssh-keygen -t dsa
Faire un echange de clef avec le serveur B:
ssh-copy-id -i /root/.ssh/id_dsa.pub userssh@serveurB
ajouter dans /etc/rc.local :
autossh -i /root/.ssh/id_dsa -NR 22222:localhost:22 userssh@serveurB &
Se connecter à d'autres port
On souhaite par exemple se connecter à un serveur web se trouvant sur A.
Sur A :
ssh -NR 22280:localhost:80 userssh@serveurB
Sur B :
firefox "http://127.0.0.1:22280"