Tunel Inverso con SSH

De Recursos Educativos
Revisión del 22:52 11 nov 2020 de Lantolin (discusión | contribuciones) (Página creada con «'''Problema''': quiero acceder a una máquina A que está tras un NAT y/o un firewall, tengo cuenta SSH en esa máquina '''Solución''': mantener una sesion SSH abierta ha…»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegación Ir a la búsqueda

Problema: quiero acceder a una máquina A que está tras un NAT y/o un firewall, tengo cuenta SSH en esa máquina

Solución: mantener una sesion SSH abierta hacia un servidor de salto en Internet, con un tunel inverso; usar ese tunel inverso para hacer un SSH de la máquina de salto hacia la máquina A

Ejemplo:

# desde la maquina A
ssh -p 5847 -N -R 10022:127.0.0.1:22 nadie@maquina.de.salto
# desde la máquina de salto
ssh -p 10022 usuario-de-A@127.0.0.1

Para mantener la sesión abierta usamos autossh y para que autossh arranque al arrancar la máquina A, creamos una unidad systemd

[Unit]
Description=AutoSSH reverse tunnel service for jump.you.io 100022 -> 22
After=network.target
[Service]
Environment="AUTOSSH_GATETIME=0"
ExecStart=autossh -N -R 10022:127.0.0.1:22 nadie@maquina.de.salto
[Install]
WantedBy=multi-user.target

Referencia: AutoSSH reverse tunnel service config for systemd

Referencia: StackExchange