¿Tunel SSH que es y como lo hago?

Tunel SSHA continuación a manera breve describiré que es lo que sucede cuando se dice que hacemos un túnel por SSH. Lo que buscamos es hacer un “canal” (túnel) de comunicación con otro equipo para por medio de él navegar por Internet, esto es; existe un protocolo de encripcion de datos entre dos equipos llamado SSH (Secure SHell).

Definicion de Secure SHell tomado de Wikipedia:

SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo.

Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.
Fuente: http://es.wikipedia.org/wiki/Secure_Shell

Para los mortales funciona de la siguiente manera una computadora ya sea Windows, Linux o Mac se conecta a un servidor externo de una red protegida por un Firewall o de un sitio publico donde no tenemos la certeza de estar navegando seguro, para estos dos casos hacemos lo siguiente:

La computadora que queremos utilizar “libre” le llamaremos LOCAL_HOST y la que tiene el Internet abierto la llamaremos REMOTE_HOST. Nuestro objetivo es lograr navegar o utilizar algún servicio que no nos este permitido, para lograrlo debemos conectarnos desde local_host hacia un remote_host para crear un túnel SEGURO esto se logra mediante la utilización de un Servidor SSH para poder hacer el puente ya que todo lo que cruzara por ahí será encriptado e invisible para cualquiera que quiera ver el contenido interceptando los datos.

Al servidor remote_host nos podemos conectar a su puerto default que es el 22 por se la conexion nativa del puerto SSH o en su defecto si esta bloqueada podriamos utilizar ya se al puerto 443 que se utiliza para la navegacion segura por “https” o el puerto 80 que es la navegacion normal por internet “http”, ya que estos ultimos dos puertos son los que normalmente esten sin restriccion en cualquier lugar espedificamente en las empresas, colegios, bibliotecas etc.

¿Bueno y pero como funciona o como le hace?

Sencillo, en local_host tu escribes en tu navegador por ejemplo www.google.com al darle enter o buscar se arranca por el túnel seguro encriptado llega al otro extremo con remote_host preguntándole oye allá del otro lado quieren entrar a www.google.com, remote_host le contesta ha si mira la pagina esta en esta dirección IP, regresa por el mismo túnel y despliega la pagina solicitada (www.google.com) sin ninguna restricción. A su vez el policía (firewall) que esta observando que nadie vaya al sitio www.google.com dice nadie ah pedido este sitio porque local_host nunca lo pidió el esta conectado a una “pagina” por https (Ej. que es el puerto 443) … mmmhhh no hay nada de que preocuparse y sigue su vigilancia, inteligente no?

Una vez explicado el funcionamiento nos disponemos a configurar las dos puntas para que se pueda acceder a lo que se requiere, en este caso específico Internet sin restricciones.

Los requerimientos previos que necesitamos es un servidor (remote_host), preferentemente con Linux ó algún BSD y aunque con Windows también funciona no es lo ideal, al cual tengamos acceso mediante una cuenta con salida a Internet y fuera de nuestra red donde esta ubicada local_host. Para conectarnos hay que tener ciertos parámetros que vamos a utilizar para que podamos sacar la mejor ventaja del remote_host, la instrucción que escribiremos es la siguiente:

En este caso nos conetcaremos DESDE Windows hacia un Linux utilizaremos la herramienta PuTTY.

Colocamos la direccion IP o de dominio del “remote_host” el puerto deseado en este caso el 22 default para el SSH.

Aqui colocamos en Source Port el puerto que usaremos para redirigir el trafico de nuestro remote_host hacia nuestro local_host puede ser cualquiera pero es recomendable que sean puertos arriba del 5000, siguiente seleccionamos Auto y Dynamic, finalizamos con Add.

Si queremos guardar la configuracion para no estar haciendo este proceso una y otra vez, regresamos al apartado Session, colocamos un nombre en Saved Sessions, damos clic en Save y listo podemos dar Open para establecer la conexion por primera vez. Una vez aqui aceptamos la llave que nos indica contestando (yes/no): yes, ingresamos la contraseña de nuestro servidor y listo!

Ya tenemos comunicacion entre local_host y remote_host, ahora como navego?

Para poder hacer uso de estas bondades tenemos que configurar el Firefox o cualquier navegador que acepte SOCKS v5 para poder “jalar” las paginas de nuestro remote_host hacia nuestro local_host.

En Firefox haremos lo siguiente:

Pasos
1.- En Herramientas -> Opciones -> Avanzado -> Red -> Configuración:

2.- Una vez aquí tenemos por default la opción de No Proxy, aquí es donde modificamos dicha información poniendo “Configuración manual del Proxy”, solo tenemos que modificar tres campos el que dice “Servidor SOCKS:” “Puerto” “SOCKS v5”

Escribimos en

Servidor SOCKS: 127.0.0.1
Puerto: 5051 (el mismo que utilizamos en la instrucción que ejecutamos en terminal mas arriba recuerdas?)
Por ultimo seleccionamos SOCKS v5

3.- Lo demás lo dejamos como esta damos Aceptar a todo cerramos y abrimos de nuevo el firefox, para verificar que haya funcionado bien lo podemos hacer abriendo una pagina que normalmente estaría bloqueada, intentar 2 o 3 veces con la misma si es que hay problemas, verificar con otras 2 y ¡Listo! Ya tenemos el Internet Libre!!

¡¡¡FELICIDADES!!!

NOTA: Una vez que se establezca la conexión con el remote_host vía la terminal esta deberá de estar siempre encendida ya que por obvias razones al momento de cerrarla arrojaría el error de página no encontrada. Si queremos regresar a la navegación normal desde nuestro firewall cuando no tengamos la conexión al remote_host corriendo solamente hay que seleccionar la opción de “Sin Proxy” y listo los valores que introducimos anteriormente se quedaran guardados hasta que la opción Manual se vuelva activar.

Cuando ya no deseemos seguir navegando hay que salirnos de sesión del remote_host escribiendo el comando “exit” en la terminal.

Dudas, comentarios, quejas, aclaraciones y/ó algun otro navegador en especifico ej. Chrome, IE, Safari u otro tipo de conexion de Linux a Linux (mas facil aun) ó Mac a Linux ó algo adicional, no duden en dejarme un comentario y con gusto les respondere.

Felices Navegaciones Libres
Animo!
Riky

  • Google Bookmarks
  • Google Reader
  • Google Gmail
  • Digg
  • Slashdot
  • Twitter
  • Facebook
  • Reddit
  • Delicious
  • StumbleUpon
  • Technorati Favorites
  • Meneame
  • Orkut
  • Comparte / Guarda

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

Un comentario »

 
  • Alex dice:

    jajaja Felices navegaciones Libresss, oye mi estimado, no encuentro mi cd de instalacion, que version de Ubuntu debo bajar?

    Y ahora que tienes relacion con SQaleros cariocassss te dejo un chaskarrillo:

    Como se dice Diarrea en Portugues?
    .
    .
    Cataratas duuu Traseiiiiroo jajajajaj
    animooo Sr!!!

 

Deja un comentario

XHTML: Puedes usar las siguientes etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>