Construir un túnel SSH cruzando un proxy NTLM
Publicado: Viernes, 11 de noviembre del 2011 | Autor: Bar | Categoría: Informática | Tags: cntlm, ntlm, proxy, putty, socks, ssh, tunel | 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:
- Username: usuario de tu red (ej. manuel)
- Domain: dominio de tu red (ej. EXAMPLE)
- Password: contraseña de tu red (ej. 12345)
- Proxy: dirección ip y puerto del proxy con protocolo NTLM (ej. 10.10.10.1:4000)
- 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.
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).
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.
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.
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.
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!









Menos mal que alguien se encarga de aportar contenido de calidad xD
Entrada muy interesante.
La calidad en pequeñas dosis como siempre xD