Cómo redirigir puertos localmente con SSH

Uno de los muchos usos que tiene SSH es el de redirigir puertos, una característica que te permite crear un túnel entre tu cliente SSH y el servidor al que te estés conectando, para que el tráfico que entre por uno de los extremos se reenvíe desde el otro, y a la vez el tráfico que reciba tu servidor te lo traiga a ti.

Entre los usos que tiene esto: podrías usar tu servidor como intermediario al hacer una conexión de red. Imagina que hay otro servidor en internet que tiene un firewall configurado para que sólo se pueda entrar desde la IP de tu servidor (o incluso, imagina que tienes un servicio en tu servidor que sólo se puede acceder desde localhost). Aunque localmente desde tu ordenador no vas a poder conectarte a él, si montas una redirección de puertos al conectarte a tu servidor, podrías usarlo de intermediario y entonces conectarte a ese servicio.

Cómo montar un port forwarding local

Te pongo un ejemplo. Si me conecto a mi servidor del siguiente modo:

ssh -L 4500:servidor2.example.com:8400 admin@servidor1.example.com

Estoy estableciendo una conexión SSH con servidor1.example.com. Sin embargo, también estoy levantando una redirección de puerto local. SSH se pondrá a escuchar en el puerto 4500 de mi máquina. Si me trato de conectar a él (por ejemplo, visitando http://localhost:4500 en mi navegador web), todo el tráfico que le envíe a ese puerto será reenviado a mi servidor como si fuese un proxy. En mi servidor, ese tráfico desviado será reenviado a servidor2.example.com:8400. Esta es una conexión separada e independiente; de hecho, el servidor2 verá que el tráfico le viene de servidor1, no de mi ordenador. En la otra dirección, lo que sea que servidor2.example.com:8400 le responda a mi servidor, mi servidor me lo mandará a mí, y será la respuesta que yo vea desde el puerto 4500.

Un ejemplo muy habitual que mencionaba antes es conectarte a un panel de control que tengas en tu servidor pero que esté solamente accesible desde 127.0.0.1, para que no puedan acceder desconocidos a él. Si te conectas a tu servidor como:

ssh -L 3000:localhost:3000 admin@servidor.example.com

Lo que ocurrirá es que a partir de ese momento, si en tu navegador web visitas http://localhost:3000, esa petición será enviada a tu servidor, desde donde volverá a ser lanzada, en este caso, a localhost:3000 también, por lo que si en tu servidor tienes algo escuchando en el puerto 3000, aunque tenga un bind a 127.0.0.1 (que, de hecho, sería el caso de uso ideal, para no tener que exponerlo a la internet abierta), tu petición será atendida por ese servicio porque se pensará que le está hablando el propio servidor y que es una conexión local. Lo que sea que te diga, te volverá a tu máquina para que lo puedas ver.

Ventajas y usos

Una de las ventajas de usar túneles SSH es que el tráfico entre tu ordenador y tu servidor SSH va cifrado porque así es como funciona el protocolo SSH. Si por lo que sea estás en una ubicación de red poco confiable, derivar el tráfico a través de un túnel de este estilo en vez de conectarte directamente al recurso puede ser un alivio que no alcanza el nivel de una VPN pero que proporciona cierto nivel de seguridad.

Además, como ya has visto, te permite tener servicios internos en localhost que puedes usar para mantenimiento, y que requieran una conexión activa mediante SSH para verificar la identidad.

Avatar de Dani

Escrito por:

Cómo reaccionar o responder a este post desde el fediverso

Copia la URL de este post en el cuadro de búsqueda de tu instancia de Mastodon, servicio del fediverso o aplicación que uses para comunicarte. Deberá aparecer como resultado de búsqueda el post que enlaza a este artículo. Con eso ya puedes responder, darle me gusta, repostear o citar.

Comentarios

Una respuesta a «Cómo redirigir puertos localmente con SSH»

  1. Avatar de Mario

    @nosgustalinux amo aprender nuevas cosas gracias.

To respond on your own website, enter the URL of your response which should contain a link to this post’s permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post’s URL again. (Find out more about Webmentions.)

No respondo comentarios de ayuda a través de este blog, así que no los trates como una bandeja de ayuda porque salvo que alguien más responda, probablemente tu comentario pase desapercibido.

Los comentarios en las entradas de blog se cierran a los 14 días para reducir el volumen de spam que se recibe. Es probable que tu comentario se modere si es la primera vez que comentas desde ese e-mail, pero lo reviso diariamente, así que si tienes una opinión en un artículo reciente, te invito a dejarla igualmente si aporta algo.

Posee tu respuesta: también puedes responder a este post desde el fediverso o enviar una webmention desde tu blog. Será aceptada automáticamente como un comentario más incluso cuando los comentarios del blog estén cerrados.

Blog libre de IA

(Si esto de momento no te preocupa, no pasa nada: en unos años lo entenderás y lo apreciarás.)

Recibe novedades

Puedes seguir este blog desde tu agregador de noticias o desde tu lector RSS favorito:

También puedes seguir este blog desde el fediverso, como Mastodon o Pleroma. Pulsa el botón y te ayudo:

Nos Gusta Linux
Nos Gusta Linux
@nosgustalinux@nosgustalinux.es

Actualidad, guías, software útil y reviews sobre GNU/Linux. Temas de los que se hablan aquí: tutoriales, noticias sobre lanzamientos, reviews de software, a veces algo de BSD, y ahora también cubriendo un poco del fediverso. Este perfil comparte enlaces a las nuevas entradas publicadas en el blog.

This account is powered by a small server, so PLEASE: #nobot #nobots. Disrespectful bots will be blocked and reported.

100 publicaciones
67 seguidores

También en YouTube