domingo, 26 de abril de 2009

Saltando Firewalls y Proxys con SSH



Wenas gente, primero que todo dar gracias a mi compadre X3M por darme el espacio para compartir conocimientos y experiencias y ayudar a otros a que se instruyan, intentare describir en mi primer post de forma clara el proceso de creación de un tunel ssh algo que realmente es muy necesario al momento de saltar firewall y proxy’s.


Vamos por parte…



Necesitamos entender primeramente el proceso que realizaremos, en la figura se muestra el proceso que realiza el tunel SSH.







Como vemos en la imagen el protocolo bloqueado se encapsula dentro de otro permitido,
habitualmente http, por lo cual el firewall no impide su traspaso hacia la web. Esta técnica de “tunneling” es aprovechada debido a ciertas propiedades del paquete externo con el objetivo de transportar un protocolo determinado a través de una red que, en condiciones normales, no lo aceptaría.



Para lograr este proceso necesitamos lo siguiente:



- Un pc fuera del firewall con SSHserver instalado y escuchando en el puerto 22 o 443, el cual va a ser nuestro servidor ssh.
- Un navegador web, recomiendo firefox
- Y por supuesto un cliente detrás de un firewall…( de tu trabajo, universidad.etc)



Para clientes Windows

- PUTTY - para crear la conexión al servidor.



Instalando SSH server




Abrimos nuestra consola e ingresamos el siguiente comando



Debian# apt-get install openssh-server









Una vez instalado abrimos el archivo de configuración para cambiar algunos parámetros



Debian# nano /etc/ssh/sshd_config






Luego habilitamos la línea #port y le asignamos el puerto que queramos, en mi caso prefiero asignarle el puerto 443.






Menciono que hay muchas opciones de configuración, pero para este tutorial con esta nos basta, para no extendernos, por ahora tendríamos listo nuestro servidor ssh.




Una vez instalado el servidor estaría bien verificar que esta a la escucha el puerto 443 o el que hayas escogido tu, para esto revisaremos el siguiente link: http://www.dyndns.com/support/tools/openport.html



Con tan solo colocar nuestra IP publica con la que estamos saliendo y el puerto en este caso 443. nos mostrara un mensaje como este:












Configuración del cliente Windows



Me voy a centrar en explicar la configuración del cliente para Windows, debido a que obviamente en muchas situaciones en nuestro lugar de trabajo o Universidad no contamos con SO Linux en las maquinas.

Para esto instalamos el programa Putty, una vez instalado abrimos y configuramos de la siguiente forma.







Luego vamos al menú Connection->SSH->Tunnels. Allí en Source insertaremos el puerto por el que queremos entrar desde nuestra maquina detrás del firewall usaremos el puerto 80 ( http). En destination escribiremos “localhost” y marcamos la opción Dynamic. Luego nos logueamos a nuestro usuario para que el tunel empiece a funcionar.




Con esto configurado y una vez logueados ya tenemos nuestro túnel creado.



Cabe destacar que si nos conectamos desde una maquina Linux el comando seria el siguiente:

- ssh -D 80 usuario@nuestra IP -p 443




Configurando nuestro navegador web


Ya solo falta configurar el firefox para canalizar todo el tráfico por ese tunel abierto. Para ello nos vamos a Herramientas -> Opciones -> Avanzadas -> Red y pulsamos en “Opciones…” en la ventana de Conexiones. En la ventana que aparece seleccionamos Configuración manual de proxy y en “servidor SOCKS” escribiremos localhost y el puerto que hemos asignado previamente al tunel(80). En la ventana No Usar proxy para: escribiremos “localhost, 127.0.0.1″ y por último selecciona Socksv5.


Bien ya podemos disfrutar de nuestro tunel SSh navegando libremente desde nuestro trabajo..xD

2 comentarios:

  1. wena men Agradesca con buenos tutos como este.

    Se esperan mas eso si.

    Por parte mia se viene Sorpresas xD

    ResponderEliminar
  2. wena men!

    congratulations por este tuto y nos vemos en el work.

    3l13z3r!

    /*---------------------
    Slackware+OpenBSD Rulz!
    ---------------------*/

    ResponderEliminar

Postea con moderación, sin insultar ni menos usar palabras ofencivas.

Me tomo el derecho de borrar el post, si su contenido no cumple lo anterior.

Gracias por postear.