Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/11/2003, 02:49
Avatar de Alfon
Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 24 años, 2 meses
Puntos: 14
Tunelización de conexiones VNC bajo OpenSSH

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:

Código:
GatewayPorts yes
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

Código:
C:\>ssh -2 -C -N -L 5902:localhost:5901 [email protected]
Desde 192.168.4.3 abrimos vncviewer.exe:

Código:
vncviewer localhost:2
ó
Código:
vncviewer localhost:5902
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
-----------------------------------------
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com

Última edición por Alfon; 11/11/2003 a las 03:26