LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

¿Qué es un Túnel SSH?

Un túnel SSH permite redirigir el tráfico de red a través de una conexión SSH encriptada. Esto aumenta la seguridad y privacidad entre el cliente y el servidor. Los túneles SSH son útiles para acceder a servicios de red de forma segura, evitar restricciones de red y conectarse a redes privadas.

Tipos de Túneles SSH

  1. Túnel Local: Redirige el tráfico de un puerto local al servidor SSH.
  2. Túnel Remoto: Redirige el tráfico desde un puerto en el servidor SSH hacia el cliente.
  3. Túnel Dinámico (SOCKS Proxy): Actúa como un proxy que permite redirigir tráfico de múltiples aplicaciones.

1. Túnel SSH Local

Un túnel SSH local redirige el tráfico desde el puerto local del equipo cliente a un servidor remoto, pasando por el servidor SSH. Esto es ideal si, por ejemplo, quieres acceder a un servicio en un servidor que solo es accesible desde la red interna a la que se conecta el servidor SSH.

ssh -L <mi_puerto_local>:<host_destino>:<puerto_remoto>  usuario@servidor_SSH

ssh -L NUESTRO_PUERTO:IP_MAQUINA_DESTINO:PUERTO_REMOTO-A-capturar USUARIO@PASARELA -N"

Ejemplo1

Conectar a una base de datos MySQL en un servidor remoto:

Imaginemos que tienes una base de datos MySQL en un servidor 192.168.1.34 (puerto 3306) y solo es accesible desde "mi_servidor.com". Con este túnel, puedes acceder a MySQL desde tu máquina local como si estuvieras en la red de "mi_servidor.com".

ssh -L 3307:192.168.1.34:3306 usuario@mi_servidor.com

Luego, puedes conectarte a localhost:3307 en tu máquina local, para acceder a la base de datos de forma segura.


Ejemplo2

+----------+
|Tu máquina|
|localhost |----+
+----------+    |
                |
            +----------+
            |GATEWAY / |
            |FIREWALL  |----+
            +----------+    |
                            |
                        +----------+
                        |MÁQUINA DE|
                        |  DESTINO |192.168.125.35
                        +----------+ 

+-------

Si tu accedes desde tu LOCALHOST a la máquina remota 192.168.125.35 (por ejemplo, a través de un gateway / firewall) y desde esa máquina (gateway / firewall) tienes que acceder a otra, el tunel sería.. El parámetro "-N", convertirá la conexión en una conexión permanente, no se te olvide ponerla.

sudo ssh  -L  443:192.168.125.35:443  user-remoto@gateway-firewall  -N

 

Te preguntará el password de user-remoto@gateway-firewal, y después accedes a la máquina de destino, suponiendo que por ejemplo sea una máquina se se administra desde un navegador web, a través por puerto seguro 443, sería, como arriba se indica y accedes desde tu navegador con https://localhost

En este momento, podemos usar nuestro navegador (local) en "https://localhost" para acceder a la máquina remota.


Ejemplo3

Capturamos el puerto 22, en nuestro puerto local 1111 y mandamos un archivo a través de maquina-remota a la máquina 192.168.187.24:

sudo  ssh -L 1111:192.168.187.24:22  usuario-remoto@maquina-remota  -N

(En éste momento te preguntará la clave del usuario-remoto@maquina-remota)

 

Hay que recordar, que la máquina 192.168.187.24, está detrás de: maquina-remota 

 

scp -P  1111  archivo.txt  usuario-192.168.187.24@localhost:/var/backups/temporal

(En éste momento, te preguntará la clave de usuario-192.168.187.24@192.168.187.24)

Y así mandaremos el archivo.txt directamente."



2. Túnel SSH Remoto

Un túnel SSH remoto permite redirigir el tráfico de un puerto en el servidor SSH al cliente SSH. Esto es útil si deseas exponer un servicio local hacia el servidor SSH y cualquier usuario en su red.

ssh -R <mi_puerto_remoto>:<host_destino>:<puerto_remoto> usuario@servidor_SSH

Ejemplo

Exponer un servidor web desde la máquina local al servidor SSH:

Supón que tienes un servidor web en tu máquina local (localhost:8080) y deseas que "mi_servidor.com" lo redireccione al puerto 9090 para que otros usuarios puedan acceder.

ssh -R 9090:localhost:8080 usuario@mi_servidor.com

Cualquier persona en "mi_servidor.com" puede acceder al servicio de tu máquina en localhost:9090.

sudo ssh  -L  443:192.168.125.35:443  user-remoto@remota-machine  -N

 

En este momento, podemos usar nuestro navegador (local) en "https://192.168.1.125.35" para acceder a la máquina remota.



3. Túnel Dinámico (SOCKS Proxy)

Permite utilizar un puerto en el cliente como proxy SOCKS para redirigir tráfico de múltiples aplicaciones.

ssh -D <puerto_proxy> usuario@servidor_SSH

Ejemplo

Redirigir el tráfico de navegación a través de un servidor SSH:

ssh -D 1080 usuario@mi_servidor.com


Opciones Avanzadas de SSH para Túneles

Ejecutar SSH en segundo plano con -f y mantener la conexión activa:

ssh -f -L 3307:10.0.0.10:3306 usuario@mi_servidor.com -N

Configurar el archivo SSH para mantener la conexión activa

 

Editar el archivo

sudo vi /etc/ssh/sshd_config

Añadir y editar las siguientes opciones

GatewayPorts yes

Ejemplo Práctico: Acceso a un Servidor de Base de Datos con Túneles Combinados

Crea un túnel SSH local para conectar una aplicación de base de datos local a un servidor remoto.

Conclusión

Configurar túneles SSH en Linux es esencial para un acceso seguro a servicios remotos y protección de datos, con múltiples aplicaciones prácticas para redes privadas.

 

Otros artículos que te pueden interesar.:

1. Tunelización SSH con Autossh

Pin It

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías