SSH Tunneling – Saltandose el servidor Proxy [Parte II]

En la entrada anterior, aprendimos a conectarnos a cualquier puerto desde una red interna gracias al http tunneling, con esa tecnica es posible evadir cualquier firewall y  conectarse a cualquier servidor externo, ya sea: FTP, SSH, IRC, TELNET, MESSENGER, ETC. ¿ Pero que pasaria si lo que necesitamos es saltarnos las reglas que tenga implementadas el servidor proxy? Es decir, navegar sin restriccion alguna, descargar torrents, abrir el facebook, hi5, hotmail, p0rn, etc. La respuesta a esa pregunta, es este articulo, si tenemos una cuenta SSH en un servidor externo, podemos hacer un tunel para salir atraves de ese equipo  a la internet.

En teoria vamos hacer lo siguiente, conectarnos a un servidor proxy externo, gratuito y sin restricciones, y le diremos a nuestro navegador que saldremos a la red externa a traves de este. Suena sencillo, pero pueden haber problemas que nos dificulten un poco el proceso (pero nada que no se pueda resolver), asi que tratare de abordar las diferentes situaciones que se pueden presentar dependiendo del escenario.

Antes de entrar materia, debo decir que este procedimiento es alternativo a muchos otros, es decir,  existen varios metodos mas sencillos para evitar las reglas de un servidor proxy, sin embargo este es el mas seguro  y confiable, debido a que los otros tienden a ser inservibles en muchos escenarios y situaciones, por varios motivos, DNS,  puertos cerrados, etc.

¿Que necesitamos?

  • Un servidor SSH
  • Una cuenta en este servidor SSH
  • Un servidor proxy, gratuito y sin restricciones lo pueden conseguir aca

nota:  Lo adecuado es que tuvieras un servidor  con los dos servicios, SSH y proxy, de esta forma te ahorrarias un paso,  de serlo asi, ya no necesitas un servidor proxy, puesto que  lo tienes en el mismo SSH.

Y arrancamos!!

Al igual que la primera parte, el procedimiento es diferente  para cada situacion, dependiendo si  en tu red interna tienen el puerto 22 abierto o no,  para aquellos que no tengan el puerto 22 abierto necesitan un poco mas de trabajo para realizar la conexion.

Con Puerto SSH abierto

Para estos privilegiados el procedimiento es muy sencillo, solo basta con lanzar la conexion a SSH con estos parametros:

ssh -L puerto_local:server_destino:puerto_destino -l usuario_ssh -N servidor_casa

Donde:

Puerto_local: El puerto que estara a la escucha en nuestra maquina
server_destino: Direccion del servidor proxy
Puerto_destino:  Puerto del servidor proxy
Usuario_ssh: Bastante obvio
Servidor_casa: Direccion del servidor SSH que esta en el exterior

Un ejemplo

ssh -L 2525:190.97.144.194:6588 -l usuario_ssh -N direccion ip server.

Por ultimo nos queda ir a la configuracion de nuestro navegador ir a la pestaña de red, y donde dice proxy, ponemos los siguientes datos:

servidor: localhost
puerto:2525

Con puerto SSH Cerrado.

Para aquellos que  su escenario es un poco mas complicado y que no tiene  el puerto SSH abierto, deben utilizar la herramienta que conocimos en la primera parte de este articulo:

proxytunnel -a 1000 -p ip_proxy:puerto -d ip_servidor-SSH:22 -v -q

Ahora nos conectamos al SSH de la misma forma que lo hicimos anteriormente, pero teniendo en cuenta, los nuevos parametros:

ssh -p 1000 -L  puerto_local:server_destino:puerto_destino -l usuario_ssh -N localhost

Ahora un ejemplo:

ssh -p 1000 -L 2525:190.97.144.194:6588 -l usuario_ssh -N localhost

Configuramos nuestro navegador y  ponemos los mismos valores, y listo tendremos nuestro proxy sin restricciones.

Algunas anotaciones

  • Deben tener en cuenta, que la conexion sera un poco lenta, debido a los saltos que debe dar.
  • Muy importante es probar los proxys, antes de asignarlos, ya que algunos dejan de estar online, pueden probar simplemente con un ping.
  • Lo ideal seria tener un servidor en nuestro hogar, con SSH y un Squid corriendo, para ahorrarnos muchas cosas.
  • Por ultimo, no sobra decir que existen muchas maneras de evadir proxys, esta es solo una de tantas.