Aquesta és una revisió antiga del document
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:
- conecto desde A a B con:
ssh -R 12345:localhost:22 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
- 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@Bpara que quede la conexión «activa» aunque haga logout - este método tiene la ventaja que si escanean con
nmap -p 12340-12350 -sV @Bno hay puertos en uso
método PORT_FORWARDING
sean:
- A - ordenador con página web tras firewall (en este caso)
- B - ordenador en internet
- C - ordenador que quiere accder a A
método:
- activar:
# vim /etc/ssh/sshd_config
GatewayPorts clientspecified
- Reiniciar el servicio SSH:
$ service ssh reload
- Luego 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://172.10.5.36:6677