
Tenemos un cluster (actualmente 10 máquinas) detrás de una NAT. Existe una puerta de enlace/host de salto NAT entre la red privada y la red normal de la empresa.
Los usuarios pueden ssh
acceder al servidor de salto y luego ingresar a cualquier otra máquina detrás del NAT.
Me gustaría proporcionar un script sencillo que les ayude a crear un túnel entre las interfaces web detrás de NAT y sus máquinas locales.
Entonces, mi primera sugerencia fue: usar un proxy de calcetines SSH y hacer un túnel de las interfaces a su host local.
Entonces mi pregunta es: si creo estos dos túneles (uno desde la computadora local de mis compañeros de trabajo hasta el host de salto y el otro desde el host de salto hasta la máquina correspondiente detrás de NAT), ¿qué tan seguro es este túnel? ?
Imagínate worker1
cuál está haciendo esto:
ssh -t [email protected] -L 10001:localhost:33388 ssh -t hostxyz.behindnat.tld
Hay un puerto abierto 33388 en la máquina host de salto que está escuchando en la interfaz de bucle invertido. Si worker2
simplemente inicia sesión en Jump-host y usa el puerto localhost 33388 también para la conexión ya tunelizada, no debe autenticarse nuevamente en hostxyz.behindnat.tld
, ¿verdad?
Esto me parece un gran fallo de seguridad, ¿hay alguna solución mejor?
Respuesta1
Supongo que su escenario implica una sesión ssh preexistente entre jumphost y hostxyz, que estaría abierta a todos los que tengan acceso al puerto de escucha de jumphost.
Mencionaste calcetines y túneles, que técnicamente son dos cosas diferentes.
Configure el proxy de calcetines del trabajador1 de esta manera:
ssh [email protected] -D 127.0.0.1:10001
Configure el navegador del trabajador1 para que use calcetines localhost:10001
para navegar a través de jumphost.tld
Si desea realizar ssh directamente desde trabajador1 a hostxyz, puede hacer algo como lo siguiente.
ssh [email protected] -L localhost:10001:hostxyz:22
ssh user@localhost:10001
Esto es lo que hago. Utilizo un archivo .ssh/config para mantener todo organizado. Recomiendo leer lo siguiente para obtener información sobre el archivo de configuración y el túnel.https://man.openbsd.org/ssh_configMire a Michael W Lucas hablar en openssh para obtener otra buena introducción.