PDA

Ver la versión completa : Como acceder a servicios externos a través de un proxy utlilizando ssh



Ktorce
25-10-2006, 11:57
Voy a intentar explicar como conseguir acceso a los servicios de nuestro PC en casa (FTP, SSH, VNC…), cuando estamos en conectados en otro sitio (curro), y salimos a internet través de un proxy.

Tengo que avisar, que esta explicación está hecha teniendo en cuenta que en mi casa, tengo un Linux Ubuntu 6.06, y en el curro tengo un Windows XP, por lo que para otros sistemas las formas de configuración pueden diferir.

Programas a utilizar:

En Cliente:
- NTLM Authorization Proxy Server ( http://sourceforge.net/projects/ntlmaps/ ), requiere Python 1.5.2
- PuTTY ( http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html ).
- Programas específicos para el resto de servicios (UltraVNC para VNC, cliente FTP para FTP… etc.)

En nuestro PC:
- openSSH

El problema de los proxys es que normalmente tienen la mayor parte de los puertos capados, y tan solo nos dejan navegar, por lo tanto tienen abiertos los puertos 80 (http) y 443 (https). Pues bien, vamos a tratar de aprovecharnos de la naturaleza del https (comunicación encriptada), ya que el proxy no puede saber que tipo de comunicación se está estableciendo por ese puerto.

Configuración en casa:

Lo primero que hay que hacer, es que nuestro PC acepte una conexión ssh por el puerto 443, para ello configuraremos el servicio para que escuche a través de este puerto (o configuramos el NAT del router para que redirija el trafico el puerto 443 al 22 que es el que ssh utiliza por defecto). Ni que decir tiene que tendremos que habilitar las reglas tanto en el router como en el firewall para que se permita esta comunicación en nuestro PC.

Para cambiar el puerto de nuestro servicio SSH, debemos editar el fichero de configuración de este “sudo vi /etc/ssh/sshd_config”, y cambiar “Port 22” por “Port 443”

Configuración en el curro:

Antes que nada, vamos a configurar el “NTLM Authorization Proxy Server”, que nos permite autenticarnos contra el proxy con NTLM con cualquier programa que no sea IExplorer. Para ello descomprimiremos el Zip del programa donde queramos, y editaremos el fichero server.cfg, en el que cambiaremos:

PARENT_PROXY:nombreproxy.dominio.com
PARENT_PROXY_PORT:8080 -> Pondremos el puerto que utiliza el proxy (normalmente el 8080)

Las dos configuraciones anteriores las encontrareis en “IExplorer/Herramientas/Opciones de Internet/Conexiones/Configuración de LAN…”

NT_DOMAIN:dominio.com -> se puede ver en una ventana de consola escribiendo “ECHO %USERDNSDOMAIN%”

USER:nombredeusuario -> se puede en una ventana de consola escribiendo “ECHO %USERNAME%”

PASSWORD:miconstraseña -> recomiendo dejar esto en blanco, así cada vez que ejecutes el programa, te preguntará la password. No es nada recomendable dejar escrita tu password en un fichero de texto plano.

Por ultimo editar el fichero “runserver.bat”, para que apunte correctamente al ejecutable de Phyton, ej :

@echo off
"D:\Programas\Python25\python.exe" main.py


Terminado esto, ejecutamos runserver.bat, escribimos nuestra contraseña, y si todo va bien, tendrá que poner algo así como:

NTLM authorization Proxy Server v0.9.9.0.1
Copyright (C) 2001-2004 by Dmitry Rozmanov and others.
------------------------
Your NT password to be used:
Now listening at NOMBREPC on port 5865


Ahora procedemos a configurar PuTTY.

Hay que configurar lo siguiente:

Categoría “Session” : Poner la ip de el equipo de casa en “Host Name” y en port hay que poner 443, el protocolo a utilizar es SSH.

Categoría “Connection/Proxy”: Poner en “proxy hostname” localhost , y en puerto 5865 (o el que pusisteis en ntlmaps).

Por último vamos a configurar los tuneles ssh, para podernos conectar a los demás servicios:

Categoría “Connection/SSH/Tunnels” : Por ejemplo si tenemos corriendo el servicio VNC en el puerto 5900, deberíamos poner en “Source port” 5900 y en Destination la ip del PC de casa y el puerto (192.168.1.10:5900). Pulsamos el botón “Add”, y repetimos el proceso para cada uno de los servicios

Pulsamos el botón “Connect”, y si todo está bien, se nos abre una session ssh contra nuestro PC, en el que tendremos que introducir usuario y contraseña. Una vez autenticados, podremos abrir por ejemplo el UltraVNC, si queremos un escritorio remoto, y en VNC server, tendremos que poner localhost::5900

Este manual lo he escrito con un poco de prisa, por lo que es posible que tenga algún fallo que iré corrigiendo.

clarinetista
25-10-2006, 23:59
Si lo desarrollas un poco mas podriamos plantear su inclusion dentro de la ezine.
Habla un poco de que es el ssh,diferentes opciones a usar, protocolos involucrados, ataque vs defensa.....

CrAcKzMe
26-10-2006, 01:06
Vamos Ktorce, se valiente y acepta que os muevo para allí entonces :P ;)

Un saludo.

Ktorce
26-10-2006, 09:50
Ok, lo modificaré aunque necesitaré tiempo, ya que eso es justo lo que le falta a mi día :)

Salu2

litio
26-11-2007, 15:09
Hola a todos aunque llevo tiempo leyendo este magnifico foro hasta hoy no me ha dado por registrarme.

Ktorce sobre este articulo la unica duda que tengo si en el pc que tenemos en casa es windows en lugar de linux, como deberiamos de proceder ???
Imagino que con Putty para abrir sesión SSH ??

Salu2,

Ktorce
27-11-2007, 10:55
Da igual lo que tengas montado en casa, pero tiene que tener un servidor ssh

Un saludo

gondar_f
27-11-2007, 11:57
Por favor, no reabrir temas tan antiguos. Si quereis comentar sobre un tema antiguos, creais un nuevo tema y poneis una referencia al antiguo...

Bienvenido litio, espero que te quedes mucho tiempo...

Un Saludo

aznarfran
24-10-2008, 08:52
gracias compa por tu ayuda; aunque me parece un poco complicado, voy a intentar ir haciéndolo paso a paso a ver si lo consigo, ya te comentaré como me ha ido, si tengo una ayuda, espero que me eches una mano.
y de nuevo, muchas gracias. un fuerte abrazo:)

j8k6f4v9j
28-10-2008, 16:12
Por favor, no reabrir temas tan antiguos. Si quereis comentar sobre un tema antiguos, creais un nuevo tema y poneis una referencia al antiguo...


Cierro el hilo