SSH redireccion de puerto remoto


Introducción

SSH es una excelente herramienta no solo para conectarte e interactuar con servidores remotos. En este artículo vamos a explorar el reenvío de puertos remotos con SSH y qué significa. También exploraremos el Reenvío de puertos locales con SSH y el Proxy Socks con SSH y cómo usar esas funcionalidades.


Explicación

El reenvío de puertos remotos te permite redirigir un puerto desde tu máquina local hacia una máquina remota. Por ejemplo, si querés conectarte a un servicio local desde un servidor remoto pero solo temporalmente. Supongamos que querés conectarte a una instancia de MySQL en el puerto por defecto (3306).


El comando

ssh -Nn -R 3306:localhost:3306 user@example.com

Los parámetros y su significado Saqué una porción del significado de los parámetros de la página del manual, pero en resumen significa reenvío de puerto remoto sin ejecutar un shell.

-N No ejecuta un comando remoto. Esto es útil solo para redirigir puertos.
-n Redirige stdin desde /dev/null (evita leer desde stdin). Esto debe usarse cuando SSH se ejecuta en segundo plano.
-R Especifica que las conexiones al puerto TCP o socket Unix en el host remoto (servidor) deben redirigirse hacia el lado local.

Configuración del servidor

Hay dos parámetros de configuración que pueden cambiar el comportamiento del reenvío de puertos locales y remotos. Estos parámetros son GatewayPorts y AllowTcpForwarding.


GatewayPorts

Por defecto, esta opción está configurada en no, lo que significa que solo la computadora remota podrá conectarse al puerto redirigido. Podés configurarlo en yes o clientspecified para permitir que otras máquinas usen ese puerto remoto redirigido (es útil, pero también puede ser peligroso).


AllowTcpForwarding

Por defecto, esta opción está configurada en yes. Podés restringir el reenvío de puertos locales y remotos configurándola en no, o permitir solo el reenvío local configurándola en local.


Notas finales

Como podés ver, esta opción es muy útil para saltarse firewalls o crear un reenvío de puertos temporal. Si querés hacerlo automático y no tan temporal, podés revisar autossh. Para probar las conexiones y los túneles sin instalar nada adicional, podés usar nc (netcat): en el servidor ejecutás nc -l -p PUERTO, y en el cliente, nc HOST PUERTO.


Errata

Si encontrás algún error o tenés alguna sugerencia, por favor enviame un mensaje para que lo corrija.



No tienes cuenta? Regístrate aqui

Ya registrado? Iniciar sesión a tu cuenta ahora.

Iniciar session con GitHub
Iniciar sesion con Google
  • Comentarios

    Online: 0

Por favor inicie sesión para poder escribir comentarios.

by Gabriel Garrido