Construir un túnel SSH cruzando un proxy NTLM

Publicado: Viernes, 11 de noviembre del 2011 | Autor: | Categoría: Informática | Tags: , , , , , , | 2 Comentarios »

En esta nueva entrada vamos a hablar de como construir un túnel SSH desde una máquina a otra con el fin de utilizar la conexión de esta última para poder saltarnos las restricciones de un proxy NTLM. Si has leído esta frase y no has entendido ni papa no se recomienda seguir leyendo, te aburrirás.

Materiales necesarios:

  • Máquina de trabajo con sistema Windows conectada a internet mediante un proxy NTLM.
  • Máquina remota que soporte conexiones remotas mediante protocolo SSH en el puerto 443.
  • Putty.
  • Cntlm Authentication Proxy.

Historia y solución:

Eres un empleado que se dispone todos los días a trabajar con un ordenador 8+h / día. Trabajas para una gran corporación que piensa en sus empleados y les hace trabajar todos los días con una conexión a internet a través de un proxy mega-restrictivo. ¿Por qué? Pues para ejercitar sus mentes y que no se duerman. Es entonces cuando necesitas hacer consultas por internet por motivos laborales y empiezas a ver páginas bloqueadas por doquier. Es tal la frustración que decides instalar el Spotify para hacer más ameno el asunto pero el proxy no te deja conectarte. En ese momento te bajas el Putty para realizar un tunel ssh contra tu pc de casa, pero… ¡Sorpresa! El puerto 22 está cerrado. Ese mismo día al llegar a casa te preocupas de redirigir el puerto 22 de tu máquina al  443 del router ya que con ese tiene que tragar el proxy fijo. Llega un nuevo día y vuelves a probar conectarte pero nada. Entonces te pones a investigar por la red y consultar al típico compañero que siempre va un paso por delante tuya y es cuando surge el termino NTLM. ¿Qué demonios es eso? Pues te enteras que es un conjunto de protocolos de seguridad propietarios. ¿De quién? De Microsoft por supuesto. Claro, eso no tiene pinta de ser muy amigable con el protocolo SSH. Te pones a indagar un poco por la red y topas con Cntlm Authentication Proxy, una sencillo proxy instalable en máquinas Windows (es un port de otro para UNIX) con el que poder escapar del protocolo NTLM. Lo descargamos y veremos que es un zip con unos pocos ficheros dentro. Para ponerlo a andar tendremos que configurar 5 cosillas en el fichero cntlm.ini:

  1. Username: usuario de tu red (ej. manuel)
  2. Domain: dominio de tu red (ej. EXAMPLE)
  3. Password: contraseña de tu red (ej. 12345)
  4. Proxy: dirección ip y puerto del proxy con protocolo NTLM (ej. 10.10.10.1:4000)
  5. Listen: puerto donde va a escuchar Cntlm

Guardados los cambios ejecutamos el setup.bat y quedará instalado en nuestra máquina. Ahora hay dos opciones para lanzar nuestro proxy local cntlm. Podemos ir a la ruta de instalación y ejecutar manualmente el cntlm.exe (por defecto en C:\Program Files\Cntlm) o si se prefiere se puede arrancar como servicio. Sólo tendremos que iniciarlo.

Servicio Cntlm

Servicio Cntlm en la lista de servicios.

Con nuestro proxy ya arrancado ahora ya podemos ponernos a configurar el Putty e iniciar la conexión. Lo primero que tendremos que hacer será introducir la información del proxy local que acabamos de crear en la pestaña Proxy. Que será protocolo HTTP, hostname localhost y puerto 4000 (para el caso de nuestro ejemplo).

Pantalla de proxy

Primer paso: indicar el proxy Cntlm creado en nuestra máquina.

Pasamos a la pestaña Tunnels. Aquí tenemos que configurar un puerto local por el cual redirigiremos nuestro tráfico hacia la máquina remota. Aquí cada uno al gusto. La configuración recomendada es abrir un puerto dinámicamente para así no tener que configurar nada en la máquina remota. Así Putty pondrá a escuchar un servidor SOCKS en ese puerto y pasará todo directamente a la otra máquina.

Pantalla de túnel

Segundo Paso: indicar un puerto local desde el que vamos a realizar el túnel.

Por último indicar en la pestaña Session la dirección o la ip de nuestra máquina remota con el protocolo SSH y el puerto 443 en lugar del 22.

Pantalla de sesión

Tercer paso: introducir la dirección o ip de la máquina de casa.

Llegado a este punto sobra decirlo, pero es recomendable guardar un perfil en la pestaña Session para no tener que introducir la configuración de cada vez. Ya podemos abrir la conexión, introduciremos nuestras credenciales remotas y como dicen los verdes Voilà! Túnel en funcionamiento. Ahora a configurar las aplicaciones con SOCKS (gtalk, skype, spotify, firefox, chrome…) o ya a piñón la configuración nativa del sistema si te lo puedes permitir. Dejamos como ejemplo la configuración para firefox.

Preferencias de red de Firefox

Preferencias de red de Firefox.

Resumen:

Finalmente hemos conseguido nuestros propósitos, saltarnos las restricciones del proxy tunelizando nuestro tráfico a una máquina remota de la manera más sencilla y rápida con aplicaciones portables. ¡A disfrutar!


2 Comentarios en “Construir un túnel SSH cruzando un proxy NTLM”

  1. 1 Shinja dijo a las 13:20 del Sábado, 12 de noviembre del 2011:

    Menos mal que alguien se encarga de aportar contenido de calidad xD

    Entrada muy interesante.

  2. 2 Bar dijo a las 16:45 del Sábado, 12 de noviembre del 2011:

    La calidad en pequeñas dosis como siempre xD


Deja un comentario: