Guía visual de túneles SSH y redirección de puertos (2023)
(ittavern.com)Guía visual sobre túneles SSH y redirección de puertos
- Resumen: Esta publicación de blog fue escrita para ayudar a entender los túneles SSH y la redirección de puertos. El tema incluye casos de uso, configuración, hosts de salto SSH, redirección de puertos local/remota/dinámica y limitaciones.
Casos de uso
-
Seguridad:
- Cifrar conexiones inseguras como FTP
- Acceso a paneles de administración web a través de un túnel SSH (autenticación con clave pública)
- Reducir la cantidad de puertos expuestos (solo se expone el puerto 22)
-
Resolución de problemas:
- Evitar firewalls/filtros de contenido
- Elegir otra ruta
-
Conectividad:
- Acceder a servidores detrás de NAT
- Acceder a servidores internos a través de Internet usando un host de salto
- Exponer un puerto local a Internet
Redirección de puertos
- Configuración/preparación:
- Los usuarios locales y remotos necesitan permisos para abrir puertos
- Los puertos 0-1024 requieren privilegios de root
- Configurar correctamente el cliente y los firewalls de red
- Se debe habilitar la redirección de puertos en el servidor SSH:
AllowTcpForwarding yes - Para redirigir puertos desde otras interfaces, se debe habilitar
GatewayPorts yes
Host de salto SSH / túnel SSH
-
Conexión a través de un host de salto:
ssh -J user@REMOTE-MACHINE:22 -p 22 user@10.99.99.1 -
Uso de varios hosts de salto:
ssh -J user@REMOTE-MACHINE:22,user@ANOTHER-REMOTE-MACHINE:22 -p 22 user@10.99.99.1
Redirección de puertos local
-
Ejemplo 1:
ssh -L 10.10.10.1:8001:localhost:8000 user@REMOTE-MACHINE -
Ejemplo 2:
ssh -L 8001:10.99.99.1:8000 user@REMOTE-MACHINE
Redirección de puertos remota
-
Ejemplos 1+2:
ssh -R 8000:localhost:8001 user@REMOTE-MACHINE ssh -R 8000:10.10.10.2:8001 user@REMOTE-MACHINE -
Ejemplo 3:
ssh -R 10.99.99.2:8000:10.10.10.2:8001 user@REMOTE-MACHINE
Redirección de puertos dinámica
- Uso del protocolo SOCKS:
ssh -D 10.10.10.1:5555 user@REMOTE-MACHINE
Túneles SSH TUN/TAP
- Crear un túnel TCP bidireccional:
ssh -w local_tun[:remote_tun]
Ejecutar SSH en segundo plano
-
Ejecución en segundo plano:
ssh -fN -L 8001:127.0.0.1:8000 user@REMOTE-MACHINE -
Detener SSH en segundo plano:
ps -ef | grep ssh kill <PID>
Mantener la conexión SSH
- Manejo de timeout:
ClientAliveInterval 15ClientAliveCountMax 3
Limitaciones
-
UDP:
- SSH no soporta UDP porque requiere entrega confiable
-
TCP-over-TCP:
- El mayor overhead reduce el rendimiento y aumenta la latencia
-
No reemplaza a una VPN:
- El túnel SSH puede sustituir una VPN, pero en términos de rendimiento una VPN es más adecuada
-
Riesgos potenciales de seguridad:
- Es recomendable desactivar las funciones que no sean necesarias
Resumen de GN⁺
- Este artículo explica varios casos de uso y métodos de configuración para túneles SSH y redirección de puertos
- Los túneles SSH son útiles para proporcionar conexiones seguras y evitar firewalls
- Sin embargo, no pueden reemplazar por completo a una VPN y tienen limitaciones como la degradación del rendimiento
- Entre otros proyectos relacionados hay soluciones VPN como OpenVPN
1 comentarios
Comentarios de Hacker News
En 2024, en lugar de escribir comandos SSH directamente, conviene usar el archivo
~/.ssh/configpara configurar LocalForward, RemoteForward y ProxyJumpEl túnel SSH es esencial en entornos corporativos complejos
ssh -D 8888 someservery configuras el proxy SOCKS del navegador en localhost:8888, el tráfico del navegador se enruta a través de ese servidorSi quieres acceder por SSH a un servidor Linux o dispositivo IoT que está detrás de un firewall y no tiene IP fija, puedes usar un servicio de túneles
La experiencia más compleja de hacking con túneles SSH ocurrió al conectar entre centros de datos
Ojalá hubiera más visualización de redes
TCP-over-TCP puede aumentar la sobrecarga, incrementar la latencia y degradar el rendimiento
Los túneles SSH son una gran herramienta, pero hoy en día se usan más herramientas con TLS y funciones de proxy inverso integradas
sshuttle es una mejor herramienta para túneles
sshuttle -r user@host 10.0.0.0/8Hace 15 años empecé a usar túneles SSH para evadir el firewall de la red universitaria
Me pregunto si SSH en sí tiene una función de redirección