Un túnel SSH puede utilizarse para asegurar la comunicación entre un cliente y un servidor que no puede ser asegurada de otra manera; por ejemplo, cuando toda o parte de la fuente de la aplicación no está disponible o se considera demasiado costoso modificarla para añadir una comunicación cifrada.
Basado en las preguntas que he visto en los últimos meses, el proceso de establecer y usar un túnel de SSH no se entiende bien. Lo siguiente es mi intento de explicarlo.
Primero déjeme describir el método inseguro existente, alguna aplicación en una estación de trabajo se conecta a un servicio que corre en VOS y escucha algún puerto, llámelo 12345. Esta es la línea verde de la figura 1 que va desde la estación de trabajo hasta el VOS. Los datos enviados a través de esta conexión no están encriptados, por lo que cualquier persona con algún acceso a cualquier red que la conexión cruce tiene el potencial de capturar y leer los datos.
Para asegurar esta comunicación lo primero que se establece es la conexión SSH que actuará como el túnel. Esto va desde la estación de trabajo al puerto que el servicio SSH que se ejecuta en VOS está escuchando, el valor por defecto es el puerto 22 (la línea roja de la figura 1). El cliente SSH en la estación de trabajo necesita ser configurado para no solicitar que el servicio SSH en VOS configure una pseudo-terminal, de lo contrario terminará con una sesión de inicio de sesión no un túnel. Configurar un túnel SSH no evitará que alguien capture los datos, pero lo que capture será encriptado.
El cliente de SSH en la estación de trabajo también tiene que ser configurado con 2 piezas adicionales de información. Primero el puerto en la estación de trabajo que actuará como la entrada del cliente de la aplicación al túnel, llámelo puerto 24680 pero cualquier puerto no utilizado puede ser usado. Segundo, la dirección IP y el puerto con el que el servicio SSH en VOS se conectará cuando se haga una conexión a través del túnel. En nuestro ejemplo la dirección IP sería 127.0.0.1 y el puerto sería 12345. Exactamente cómo se configura esto dependerá del cliente.
La aplicación cliente que se ejecuta en la estación de trabajo ahora necesita ser configurada para conectarse al host local de la estación de trabajo (127.0.0.1) y al puerto de entrada del túnel, 24680. No hay cambios en el servicio de aplicación que se ejecuta en VOS, todavía tiene que estar corriendo y escuchando en el puerto 12345. Los pasos son:
1) Inicie o confirme que el servicio de aplicación se ejecuta en VOS
2) Inicie o confirme que el servicio SSH (sshd) está funcionando en VOS
3) Iniciar el cliente SSH en la estación de trabajo y establecer la conexión del túnel (línea roja)
4) Inicie el cliente de la aplicación en la estación de trabajo y haga que se conecte al puerto de entrada del túnel SSH (línea azul)
5) El proceso sshd en VOS hace automáticamente una conexión con el servicio de aplicaciones que se ejecuta en VOS (línea naranja)