Túneles SSH: Configuración y Casos Prácticos de Uso
Túnel SSH Seguro en AlexHost VPS: Una Guía Completa de Reenvío de Puertos y Acceso Seguro
En el mundo digital interconectado de hoy, el acceso remoto seguro es esencial para los desarrolladores, administradores de sistemas y profesionales de TI que gestionan servidores o aplicaciones. Secure Shell (SSH) es el protocolo más utilizado para la comunicación cifrada, pero sus capacidades de túnel lo llevan al siguiente nivel. Los túneles SSH permiten reenviar tráfico entre redes de forma segura, sortear cortafuegos y acceder a servicios restringidos, todo ello manteniendo el cifrado y la privacidad. Ya se trate de acceder a una base de datos bloqueada, exponer una aplicación local para realizar pruebas o navegar de forma segura a través de una red Wi-Fi pública, los túneles SSH son una herramienta versátil para situaciones del mundo real.
¿Qué es un túnel SSH?
Un túnel SSH es un método de transmisión de datos arbitrarios a través de una conexión SSH cifrada entre dos sistemas. Esencialmente, le permite reenviar de forma segura el tráfico de red de una máquina a otra mediante la creación de un túnel a través del cual viajan los datos. Los túneles SSH se pueden utilizar de tres maneras principales
- Reenvío local de puertos
- Reenvío remoto de puertos
- Reenvío dinámico de puertos
Cada uno de estos métodos tiene sus casos de uso específicos, y cubriremos cada uno en detalle a continuación
1. Reenvío de puerto local
El reenvío local de puertos es la forma más común de túnel SSH. Le permite reenviar tráfico desde un puerto local en su máquina a un servicio remoto a través de una conexión SSH
Cómo funciona el reenvío local de puertos
Cuando usted crea un túnel SSH local, el tráfico enviado a un puerto específico en su máquina local es reenviado al servidor SSH, que entonces lo envía al destino deseado (como una base de datos o un servidor web)
Ejemplo de uso: Acceso a una base de datos remota
Imagine que necesita acceder a una base de datos en un servidor remoto, pero el puerto de la base de datos está bloqueado por un cortafuegos. En lugar de abrir el puerto públicamente, puede utilizar el reenvío local de puertos para acceder de forma segura a la base de datos
Comando para el reenvío local de puertos
En este ejemplo
- -L 5432:localhost:5432: Especifica el reenvío de puerto local. El primer 5432 es el puerto en su máquina local, localhost:5432 se refiere a la base de datos remota.
- user@remote-server: Se conecta al servidor SSH remoto.
Ahora, puede acceder a la base de datos remota desde su máquina local conectándose a localhost:5432
2. Reenvío remoto de puertos
El reenvío remoto de puertos le permite reenviar tráfico desde un servidor remoto a una máquina local. Esto es útil cuando quieres exponer un servicio que se ejecuta en tu máquina local a un servidor remoto o a sus usuarios
Cómo funciona el reenvío remoto de puertos
Con el reenvío remoto de puertos, cualquier tráfico que alcance un puerto especificado en la máquina remota será reenviado a un puerto de tu máquina local. Esta configuración se utiliza a menudo cuando se necesita exponer un servicio al servidor remoto que sólo es accesible en su red local
Ejemplo de Caso de Uso: Exponer una Aplicación Web Local a un Servidor Remoto
Imagina que estás desarrollando una aplicación web localmente en tu máquina, y quieres mostrársela a un colega en un servidor remoto. En lugar de desplegar la aplicación, puede utilizar la redirección remota de puertos para permitir el acceso a su aplicación local
Comandos para la redirección remota de puertos
ssh -R 8080:localhost:3000 user@remote-serverEn este ejemplo
- -R 8080:localhost:3000: Especifica el reenvío remoto de puertos. El puerto 8080 de la máquina remota se reenviará a localhost:3000 en su máquina local, donde se ejecuta la aplicación web.
- user@remote-server: Se conecta al servidor SSH remoto.
Ahora, cualquier persona en el servidor remoto puede acceder a su aplicación web a través de http://remote-server:8080
3. Reenvío dinámico de puertos
El reenvío dinámico de puertos convierte su cliente SSH en un servidor proxy SOCKS, permitiéndole dirigir el tráfico desde su máquina local a través del túnel SSH a cualquier destino. Esto es especialmente útil cuando desea canalizar todo el tráfico (como la navegación web) a través de una conexión segura
Cómo funciona el reenvío dinámico de puertos
Con el reenvío dinámico de puertos, el cliente SSH escucha en un puerto local y reenvía todo el tráfico saliente a través del servidor SSH. Esta configuración le permite utilizar el servidor SSH como un proxy para su conexión a Internet, evitando los cortafuegos y asegurando el tráfico
Ejemplo de uso: eludir las restricciones de la red
Imagina que estás en una red Wi-Fi pública y ciertos sitios web o servicios están bloqueados. Puede utilizar el redireccionamiento dinámico de puertos para eludir estas restricciones y acceder a Internet de forma segura a través de su servidor SSH
Comando para el reenvío dinámico de puertos
En este ejemplo
- -D 8080: Especifica el reenvío dinámico de puertos. Su máquina local actuará como proxy SOCKS en el puerto 8080.
- user@remote-server: Se conecta al servidor SSH remoto.
Una vez que el túnel está activo, puede configurar su navegador o cualquier aplicación para utilizar localhost:8080 como proxy SOCKS, lo que le permite enrutar de forma segura todo el tráfico a través del servidor remoto
Configuración de túneles SSH con un archivo de configuración
Si utiliza túneles SSH con frecuencia, puede simplificar el proceso creando un archivo de configuración SSH. El archivo de configuración le permite definir accesos directos para sus conexiones SSH y ajustes de reenvío de puertos, lo que facilita la configuración de túneles sin necesidad de escribir comandos largos cada vez
Ejemplo de archivo de configuración SSH
Añada la siguiente configuración a ~/.ssh/config
Ahora, puede configurar un reenvío de puerto local a la base de datos remota con sólo
ssh remote-dbEjemplos prácticos de túneles SSH
1. Tráfico Web Seguro a través de un Proxy SOCKS
Si trabaja en un entorno restringido y necesita acceder a sitios web bloqueados, puede configurar el reenvío dinámico de puertos para dirigir todo su tráfico a través de un servidor SSH seguro
ssh -D 9090 user@ssh-serverA continuación, configura tu navegador para que utilice localhost:9090 como proxy SOCKS
2. Acceso a un servicio interno remoto
Supongamos que necesita acceder a un servicio interno que sólo está disponible en una red privada remota. Puede utilizar el reenvío de puertos local para conectarse de forma segura a ese servicio desde su máquina local
ssh -L 8080:internal-service:80 user@remote-serverEsto le permitirá acceder al servicio interno en http://localhost:8080
3. Exposición de un servidor de desarrollo local
Si desea compartir un servidor de desarrollo local con colegas en un servidor remoto, utilice el reenvío remoto de puertos
ssh -R 4000:localhost:3000 user@remote-serverLos colegas en el servidor remoto pueden ahora acceder a su aplicación local en http://remote-server:4000
Conclusión: Dominar el túnel SSH para un acceso seguro en AlexHost VPS
El túnel SSH asegura el reenvío de tráfico para el acceso remoto o la navegación. En el VPS de AlexHost, aproveche NVMe para túneles de baja latencia, acceso root para configuraciones y protección DDoS para seguridad. ¡Comience a hacer túneles hoy mismo!


