Tunelización de conexión para VNC sobre SSH Introducción
Una de las aplicaciones que podemos dar a SSH es la creación de tuneles seguros, es decir, crear conexiones TCP seguras a través de una canal o red insegura. Ya sabemos que muchas aplicaciones usan protocolos inseguros que envian, por ejemplo, nombre de usuario y contraseña en texto. SSH cifra los datos para que viajen seguros tanto por redes locales como hosts remotos a través de internet. Podemos también, por poner otro ejemplo, crear un canal seguro entre un servidor y un cliente MySQL, leer correo ó tunelizar conexiones remotas via VNC. Explicamos la manera a través de un ejemplo práctico como puede ser la tunelización de conxiones VNC a través de OpenSSH.
Antes que nada
Tenemos que indicar al sistema que VNC va a realizar conexiones del tipo Loopback. Esto de realiza en el registro de windows. El contenido de un archivo .reg ( archivo de registro de win32 ) para realizar la operación sería este:
Código:
Windows Registry Editor Version 5.00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Registro de window.
;
; Añadir claves para Loopback
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3\Default]
"AllowLoopback"=dword:00000001
Tanto en el servidor como en el cliente editar el archivo:
ssh_config y añadir:
Esquema básico de conexión para VNC sobre SSH
Código:
conexión segura
192.168.4.3 ----------------------------------------> 192.168.4.7
Cliente SSH y VNC Servidor SSH y VNC
(Este es un esquema básico. Se pueden realizar múltiples conexiones y de muy diferentes maneras.)
En 192.168.4.3 insertamos lo siguientes comandos ssh
Desde 192.168.4.3 abrimos vncviewer.exe:
ó
Explicación de los comandos ssh para realizar el tunel - 2 Usa el protocolo SSH2
- C Realiza compresión de los datos
- -N (solo para la versión SSH2) Indicamos a ssh que no se ejecutaran comandos en el servidor, sólo el tunel.
- -L Realizar tunel
- 5902 puerto local (dispaly 2 para vncviewr ) para conexión remota. Este es el puerto que indicaremos a wncviewer
- localhost Ip servidor, en este caso localhost para realizar el tunel.
- 5901 puerto remoto donde escuchará VNC (display 1)
- [email protected] usuario/IP máquina segura ejecutando SSH.
Otro comando opcional a usar usar sería
-S: que destruye el tunel cuando acabe la conexión. Fija un tiempo de espera o Delay para nueva conexión y si no se realiza se destruye el tunel.
Una vez creado el túnel, tan sólo tendremos que ejecutar VNC Viewer introduciendo en el campo VNC Server:
Código:
localhost:5902 ó localhost:2
El túnel SSH también lo podemos realizar con un cliente win32 como PuTTY. Desde este cliente y para realizar dicho tunel:
Session:
Specify your connection by host name or Ip address:
Host Name (or Ip address): 192.168.4.7
Port 22 (SSH)
SSH > Tunnels >
Add new forwarded port:
Source port: 5902 ( este es el puerto localhost )
Destination: 192.168.4.7:5901
(pulsar Add) y (Open)
Para comprobar que la conexión se realiza a través del canal seguro
Si cerramos la consola MSDOS donde introducimos las lineas ssh para tunelización ó el cliente ssh (PuTTy), debe cerrarse también la conección VNC.
-----------------------------------------
(c) Alfon.
www.seguridadyredes.tk
-----------------------------------------