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.
-
Comentarios
Online: 0
Por favor inicie sesión para poder escribir comentarios.