Aquí escribo una guía de como conectarte a cualquier PC de fuera y saltártelo.
Requerimientos para poder hacerlo (al menos el método que conozco yo):
- Ordenador accesible donde sea, en tu casa, o de un conocido, o un servidor que tengas alquilado, etc.
- Posibilidad de crear conexiones SSH desde el lugar donde esté el proxy hasta el servidor del punto 1.
El funcionamiento es el siguiente: el pc limitado (llamaré así al que sufre el proxy) hace una conexión por SSH al servidor externo, pero no es una simple conexión, si no que además el PuTTY puede crear un túnel SSH. Ésto es: todo dato que se "tuneliza" es encapsulado en paquetes SSH (esto implica que están cifrados y ni el tato puede leerlos) y sale por el otro lado, que es el servidor adonde nos conectamos.
- Forma de configurar el servidor para que acepte estas conexiones con túnel:
Hay varias opciones: Si el servidor es un sistema Linux (Unix), basta con instalar el servidor de SSH de la distribución, que seguramente será el OpenSSH (sshd). Una vez instalado (si no lo está ya), hay que tocar el fichero de configuración 'sshd_config', que suele estar en '/etc'. Dentro, hay que reiniciar el servicio después de añadir esta línea:
AllowTcpForwarding yes
Segunda opción: El servidor es un sistema Windows. Podemos elegir usar VMware con un Linux corriendo dentro o usar Cygwin. En el primer caso bastaría con configurar el linux del VMware tal y como dice el punto anterior, y en el caso de usar Cygwin, los pasos son similares, configurar el sshd_config y reiniciar el sshd. Algún día pondré una guía de como montar el sistema Cygwin :)
- Forma de configurar el PuTTY:
Lo primero es probar que llegamos al servidor externo por SSH (por defecto, el puerto 22, pero si lo cambiamos en el servidor, también debe funcionar). Abrimos el PuTTY y en la línea de conexión hay que poner la ip o nombre DNS del servidor y poner el puerto (seleccionando tipo SSH). Si podemos conectar, todo perfecto porque entonces funcionará :)
Ahora falta añadir la funcionalidad de proxy socks a la conexión por PuTTY. A la hora de conectar, tenemos una lista grande a la izquierda, en la que hay que buscar la categoría SSH, desplegarla y pinchar en Tunnels. Una vez allí, tenemos que escribir en "Source Port" un nº de puerto que nos guste, que sea alto y que no esté en uso por nada más. Dejamos "Destination Port" en blanco, y seleccionamos los 'radiobuttons' Dynamic y Auto. Pulsamos en Add y debe de salir en la lista de arriba el nº de puerto con una D delante: DXXXX
Existe un tick arriba del todo que es para permitir las conexiones desde otros hosts. Ésto vale para que un solo PC haga la conexión SSH y cualquier otro pc de la red local lo use como proxy de salida en vez de que cada uno haga una conexión SSH. Si el tick no está puesto, solo te deja conectarte desde tu propio PC.
Recomiendo salvar estas opciones en la sección "Session" del PuTTY. Se salva poniendo un nombre a la conexión en el campo "Saved sessions" y dando al botón Save (no olvidar poner la dirección y puerto arriba).
Ahora tenemos un proxy de tipo Socks v5 sin autenticación en nuestro PC, que vale para cualquier programa que permita conectarse por un proxy SOCKS.
- Cómo configurar el Firefox o cualquier otro navegador para usar el proxy socks:
En Opciones -> Red -> Configuración hay que poner las siguientes opciones:
Configuración manual del proxy:
- Proxy HTTP vacío
- Quitar el tick "Usar el mismo proxy para todo"
- Proxy SSL vacío
- Proxy FTP vacío
- Servidor SOCKS: 127.0.0.1 puerto: El que se puso en PuTTY
- SOCKS v5
- No usar proxy para: Direcciones web, ip's y dominios para los cuales no queremos usar el proxy (direcciones de red local, por ejemplo).
Con eso basta para navegar a través del proxy :)
Dejad cualquier comentario sobre el artículo, y si tenéis sugerencias de como mejorarlo, mejor :)