Túneles SSH y técnicas de port forwarding
Domine el port forwarding local, remoto y dinámico, y comprenda sus usos legítimos y aquellos con implicaciones de seguridad.
Túneles SSH y técnicas de port forwarding es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.
Concepto del reenvío de puertos local
El reenvío de puertos local (ssh -L local_port:destination_host:destination_port user@ssh_server) vincula un puerto en su equipo local. El tráfico enviado a ese puerto local viaja a través de la conexión SSH cifrada hasta el servidor SSH, que después se conecta al destino. Su aplicación local se comunica con localhost mientras SSH entrega el tráfico de forma segura al destino remoto.
Caso de uso del reenvío local: acceso a bases de datos
Un caso de uso habitual del reenvío de puertos local es acceder a una base de datos interna situada detrás de un firewall. Con ssh -L 5432:db.internal:5432 user@bastion, su cliente local de PostgreSQL se conecta a localhost:5432. El host bastión reenvía este tráfico al servidor de base de datos interno, que de otro modo sería inaccesible desde Internet.
Concepto del reenvío de puertos remoto
El reenvío de puertos remoto (ssh -R remote_port:local_host:local_port user@ssh_server) vincula un puerto en el servidor SSH remoto. Cuando los clientes externos se conectan a ese puerto remoto, el tráfico vuelve a través del túnel SSH hasta su equipo local. Esto permite exponer un servicio que se ejecuta localmente al mundo mediante un servidor accesible desde Internet.
Caso de uso del reenvío remoto: detrás de NAT
El reenvío remoto resulta especialmente útil cuando su equipo está detrás de NAT y no puede recibir conexiones entrantes directamente. Al crear un túnel inverso hasta un servidor público, permite que los clientes externos accedan a su servicio local a través del servidor público. Esta técnica también la utilizan algunas herramientas de acceso remoto y sistemas de gestión de dispositivos IoT.
Reenvío dinámico de puertos: proxy SOCKS5
El reenvío dinámico de puertos (ssh -D local_port user@ssh_server) crea un proxy SOCKS5 en su equipo local. Cualquier aplicación compatible con SOCKS5 puede enrutar el tráfico a través de este proxy, que hará que parezca originarse en el servidor SSH. Esto enruta efectivamente su navegación a través de la red remota, lo que resulta útil para acceder a recursos con restricciones geográficas o evadir filtros de la red local.
Túneles inversos e implicaciones de seguridad
Los túneles inversos son potentes, pero introducen riesgos de seguridad. Si un servidor permite GatewayPorts, los puertos reenviados de forma remota pasan a ser accesibles desde Internet público, no solo desde localhost. Un atacante que comprometa un equipo con un túnel inverso podría acceder potencialmente a servicios internos. Las organizaciones deben supervisar la existencia de túneles inversos no autorizados y restringir GatewayPorts en las configuraciones de SSH.
Controles de túneles del servidor SSH
La configuración del servidor SSH controla las capacidades de tunelización. AllowTcpForwarding determina si se permite el reenvío de puertos local y remoto. AllowStreamLocalForwarding controla el reenvío de sockets de Unix. Establecer estas opciones en no deshabilita la tunelización para todos los usuarios; también puede restringirlas por usuario o grupo. Deshabilitar el reenvío innecesario reduce la superficie de ataque.
SSH como VPN con dispositivos tun
SSH permite crear interfaces de red tun para realizar una tunelización IP completa (ssh -w). Esto convierte SSH en una VPN ligera en la que se tunelizan paquetes IP completos, no solo conexiones TCP específicas. PermitTunnel debe estar habilitado en el servidor. Aunque este método es menos eficiente que un software VPN especializado, no requiere software adicional y aprovecha la infraestructura SSH existente.
Multiplexación de conexiones
La multiplexación de conexiones SSH (con las opciones ControlMaster y ControlPath) reutiliza una conexión SSH existente para las sesiones nuevas. Esto acelera considerablemente las conexiones posteriores al mismo host, lo que resulta especialmente valioso en entornos con scripts. Los túneles también pueden mantenerse activos entre varias sesiones SSH mediante la conexión compartida.
Detección de túneles SSH
Los administradores de red pueden detectar el tunneling mediante SSH a través de patrones de tráfico inusuales: conexiones TCP de larga duración en el puerto 22, volúmenes de datos inesperadamente altos en conexiones que solo deberían transportar tráfico de terminal, o conexiones a destinos conocidos como sensibles una vez establecidas. La inspección profunda de paquetes no puede ver el contenido de SSH, pero el análisis de metadatos puede señalar comportamientos sospechosos de los túneles.
Prácticas recomendadas para configurar túneles
Para usos autorizados, documente todos los túneles y sus propósitos. Use -N (sin ejecutar comandos) con los túneles para evitar abrir un shell innecesariamente, y -f (en segundo plano) para ejecutarlos sin bloquear el terminal. Para túneles persistentes, use AutoSSH o la activación de sockets de systemd, que reinician automáticamente el túnel si se interrumpe la conexión.
Reenvío de puertos local frente a remoto
Desea exponer su servidor de desarrollo local (que se ejecuta en el puerto 3000) a Internet mediante un servidor SSH público. ¿Qué tipo de reenvío debería usar?
Resumen de los túneles SSH
Resumen del tunneling SSH: el reenvío local (-L) permite acceder de forma segura a servicios internos desde su equipo, el reenvío remoto (-R) expone servicios locales a través de un servidor público, el reenvío dinámico (-D) crea un proxy SOCKS5 para enrutar tráfico a nivel de aplicación, el reenvío tun habilita una VPN IP completa y AllowTcpForwarding en el servidor controla estas capacidades.
Aprende Cryptology Academy con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 67
- Lecciones
- 261
Preguntas frecuentes
¿La lección «Túneles SSH y técnicas de port forwarding» es gratis?
Sí — el texto completo de «Túneles SSH y técnicas de port forwarding» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Túneles SSH y técnicas de port forwarding»?
Domine el port forwarding local, remoto y dinámico, y comprenda sus usos legítimos y aquellos con implicaciones de seguridad. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cryptology Academy?
No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Túneles SSH y técnicas de port forwarding»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?
Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Handshake de SSH y autenticación mediante claves de host
- Autenticación con clave pública y agent forwarding
- Túneles SSH y técnicas de port forwarding
- Refuerzo de SSH y prácticas recomendadas de auditoría