|
Una de las aplicaciones que podemos dar a SSH es la creación de túneles 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 envían, 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 o tunelizar conexiones
remotas via VNC.
Explicado a través de un ejemplo práctico como puede ser la tunelización de conexiones VNC a
través de OpenSSH.
La primera aplicación que vamos a explicar aquí es el uso de SSH con OpenSSH para tunelizar conexiones con
VNC (Virtual Network Computing).
Se da por sentado en este artículo que tenemos las nociones básicas sobre instalación de
cliente/servidor OpenSSH y su funcionamiento. Para más información: Cómo instalar un servidor OpenSSH
en sistemas Win32.
TUNELIZACION DE CONEXION PARA VNC SOBRE SSH
Antes que nada
Tenemos que indicar al sistema que VNC va a realizar conexiones del tipo Loopback. Esto se realiza en el
registro de windows. El contenido de un archivo .reg (archivo de registro de win32) para realizar la
operación sería el siguiente:
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 se ha de editar el archivo ssh_config y añadir:
GatewayPorts yes
Esquema básico de conexión para VNC sobre SSH
conexión segura
192.168.4.3 ----------------------------------------> 192.168.4.7
Cliente SSH y VNC Servidor SSH y VNC
- En 192.168.4.3 insertamos los siguientes comandos ssh
C:\>ssh -2 -C -N -L 5902:localhost:5901 INFOGRAFIA2@192.168.4.7
- Desde 192.168.4.3 abrimos vncviewer.exe:
vncviewer localhost:2
o
vncviewer localhost:5902
Explicación de los comandos ssh para realizar el túnel:
-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 túnel.
-L Realizar túnel
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 escuhará VNC (display 1)
INFOGRAFIA2@192.168.4.7 usuario/IP máquina segura ejecutando SSH.
Otro comando opcional a usar:
-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:
localhost:5902 ó localhost:2
El túnel SSH también lo podemos realizar con un cliente win32 como
PuTTY. Desde este cliente para realizar dicho
túnel:
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 líneas ssh para
tunelización o el cliente ssh (PuTTy), debe cerrarse también la conexión VNC. |
TUNELIZACION DE CONEXION PARA HTTP SOBRE SSH
Esquema pasarela de conexión para HTTP sobre SSH
Para este ejemplo de aplicación de tunelización vamos a suponer que queremos conectar un cliente navegador
http a un servidor seguro apache sobre OpenSSH.

conx. insegura conx. segura
192.168.4.15 -----------------> 192.168.4.7 ----------------> 192.168.4.3
Cliente Nav. Web Cliente SSH pasarela Servidor SSH y apache
- Este comando lo ejecutamos en 192.168.4.7:
C:\>ssh -2 -C -N -L 8001:192.168.4.3:80 INFOGRAFIA2@192.168.4.3
http://192.168.4.7:8001/
Responde el servidor SSH y Apache en 192.168.4.3
Más adelante trataremos otras aplicaciones
de tunelización como, por ejemplo, la conexión a un servidor MySQL remoto.
|