Logo de NAUTOPIA y de la Comunidad Nautópata    NAUTOPIA: Privacidad, Seguridad y Libertades Civiles    Foro Local de TARRACO, Tarragona

 

ANILLO     CONTACTAR     CULTURALIA      DOWNLOADS     KIOSKO      FORO         HOME

 

 Translate 

 

 

contacto de Alfon

 

TUNELES SOBRE SSH, USANDO OpenSSH

 

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.

Imagen

  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

  • Desde 192.168.4.15:

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.

 

SSH / OpenSSH

SSH es el nombre de un protocolo y del programa que lo implementa.

Este protocolo sirve para acceder a máquinas a través de una red, de forma similar a como se hacía con telnet. La diferencia principal es que SSH usa técnicas de cifrado para que ningún atacante pueda descubrir el usuario, la contraseña de la conexión y ni lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la informacion entre destinos.

Al igual que telnet, sólo permite conexiones tipo terminal de texto, aunque puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X arrancado.

OpenSSH es la implementación de cliente y servidor abierta y gratuita para estos protocolos.

 

Artículos relacionados:

 

 

 

- CIFRADO FUERTE -

 

 

 

 
 

NAUTOPIA © 2003. Reservados todos los derechos.