= ssh tunel inverso (o reverso)
== método SSH
sean:
* A - ordenador al que me quiero conectar desde "donde sea"
* B - ordenador con acceso "pleno"
* C - cualquier ordenador
* A y C pueden estar sin acceso público SSH
el método sería:
- dejo la conexión abierta a A (conecto desde A a B):ssh -R 12345:localhost:22 usuario_B@B
- alternativamente, usar ''ssh reverseB''Host reverseB
HostName B
User usuario_B
RemoteForward 12345 localhost:22
IdentityFile ~/.ssh/usuario_B@B
- conecto desde C a B con SSH (como siempre) ssh usuario_B@B
- una vez en B, conecto con A con:ssh -p 12345 usuario_A@localhost
- alternativamente a estos dos últimos pasos, usar ''ssh test2-reverse''Host test2-reverse
Hostname localhost
User usuario_A
ProxyCommand ssh computerB -W %h:12345
ForwardAgent yes
IdentityFile ~/.ssh/usuario_A@A
Host computerB
Hostname B
User usuario_B
RemoteForward 12345 localhost:22
IdentityFile ~/.ssh/usuario_B@B
* desde A establezco una conexión SSH haciendo que B escuche en 12345 y se lo envíe a A
* desde C conecto a B en primera instancia y desde ahí conecto con A usando la conexión ya abierta
* puedo usar ''nohup ssh -N -f -R 12345:localhost:22 usuario_B@B'' para que quede la conexión "activa" aunque haga logout
* este método tiene la ventaja que si escanean con ''nmap -p 12340-12350 -sV @B'' no hay puertos en uso
/via: [[http://unbrutocondebian.blogspot.com.es/2013/08/tunel-inverso-ssh.html|acceso SSH a ordenador tras Firewall desde un segundo]]
== método PORT_FORWARDING
sean:
* A - ordenador con página web tras firewall (en este caso)
* B - ordenador en internet
* C - ordenador que quiere acceder a página web en A
método:
* activar en B:
GatewayPorts clientspecified
* Reiniciar el servicio SSH en B:service ssh reload
* Desde el A ejecutar el siguiente comando: ssh -N -f -R B:6677:localhost:80 user@B
* Y una vez hecho esto ya estaría el túnel creado. Para conectarse desde el C habría que escribir lo siguiente en el navegador:http://:6677