lunes, febrero 19, 2007

Túneles SSH

Los túneles SSH son una de esas jod&"%$· maravillas que te pueden alegrar la vida. Antes eran bastante utilizados para securizar conexiones con protocolos inseguros (POP, IMAP, Telnet, ...) pero hoy un día un administrador decente utilizará las versiones seguras de estos protocolos con lo que ya no se utiliza principalmente para este fin.

Sin embargo, actualmente los túneles SSH siguen siendo muy útiles para saltar un cortafuegos. Supongamos mi caso :-) una red como la universidad con servicios capados desde el exterior pero disfrutamos de una cuenta en un servidor SSH en el interior de la red. Gracias a esta cuenta podremos realizar un túunel SSH al interior de la red y acceder a servicios inaccesibles desde fuera de la red.

  1. Ejemplo práctico VNC. Tenemos un servicio VNC en una máquina con servidor SSH en el interior de la red. El servicio VNC es inaccesible por la configuración del firewall perimetral, pero podemos crear el túnel contra esa máquina mediante: $ ssh -L 7000:servidor_vncyssh.dominio:5900 -N login@servidor_vncyssh.dominio. A continuación abrimos el visor VNC y nos conectamos a localhost:7000. Hemos conseguido crear un tunel SSH con servidor_vncyssh.dominio que finaliza en el puerto 5900, puerto en el que escucha el servidor VNC. Adicionalmente hemos securizado el tráfico VNC al tunelizarlo sobre SSH.
  2. Ejemplo práctico servidor de listas de correo Mailman. En la universidad el servidor de listas de correo solo permite el acceso a la interfaz web de Mailman si es desde dentro de la universidad. No hay problema, creamos un tunel SSH contra una máquina del interior de la universidad que enviará el tráfico a la máquina donde corre mailman. Creamos el tunel de forma similar, $ ssh -L 7000:servidor_mailman.dominio:80 -N login@servidor_ssh.dominio. Luego no tenemos más que abrir el navegador web y apuntar a http://localhost:7000. Hemos creado un túnel SSH contra el servidor SSH que se halla dentro de la red, el tráfico va cifrado hasta el servidor SSH y luego es reenviado a servidor_mailman.dominio:80 en claro .
Dos ejemplos que me han salvado la vida este fin de semana.

Etiquetas: , ,

3 Comments:

Anonymous Iñaki Baz Castillo said...

Yo ya intenté hace tiempo acceder así (caso 2) a la web de Mailman de la UPV entrando a través de el servidor de Itsas, pero es imposible:

- Hago el túnel y entro correctamente:
~$ ssh -L 7000:list.ehu.es:80 -N ibc@itsas.ehu.es

- Abro mi navegador en:
http://127.0.0.1:7000/mailman/listinfo/itsas

- Pero en cuanto pincho en cualquier enlace o relleno algún formulario pierdo la conexión.

Es completamente normal ya que los enlaces de la web son absolutos, ejemplo:
href="http://list.ehu.es/pipermail/itsas/"

Así que al pinchar en ellos mi navegador sale de localhost:7000 y se dirige al servidor por el camino "público" (que está cerrado).

¿O tal vez hago algo mal?

20/2/07 21:56  
Blogger zako said...

La verdad que tienes toda la razón. Algunas acciones se pueden hacer sustituyendo los enlaces absolutos por http://localhost:7000 en la barra del navegador pero los formularios dan más guerra. Los GET no porque va toda la información en la URL pero los POST no se como se podrían maquear fácilmente.

20/2/07 23:54  
Anonymous Colaloca said...

Editad el fichero de hosts (/etc/hosts ó C:\Windows\System32\drivers\etc\hosts, dependiendo de vuestro sistema) y añade una entrada para que list.ehu.es u otras direcciones absolutas las resuelva a 127.0.0.1

23/1/08 12:24  

Publicar un comentario

<< Home