Inicio > Software > Túneles SSH

Túneles SSH

Jueves, 28 agosto 2008 Deja un comentario Go to comments

Posiblemente muchos de los lectores de este blog han usado alguna vez una de las características más interesantes del SSH que es el tunneling (túneles SSH) desde PC con distintos sistemas operativos (aunque es más habitual usarlos en SO like unix).

1. ¿que demonios es eso del SSH y tunneling?

Empezemos por explicar lo que es cada cosa para los lectores que estaban despistados y no lo conocian.

SSH son las siglas de Secure Shell. Es un protocolo de red que permite el intercambio de datos entre dos ordenadores a traves de un canal de comunicaciones encriptado. SSH normalmente se usa para conectarse a un ordenador remoto y ejecutar comandos en el.

Otra de las características interesantes de SSH es el X forwarding que permite ejecutar un programa gráfico en remoto pero verlo en el ordenador local siempre y cuando este disponga de un servidor X (X11 o Xorg para sistemas like unix o port del mismo como el Xming para sistemas Win32. Esta característica yo personalmente la uso mucho para ejecutar programas con gui en mis servidores linux que no tienen entorno gráfico desde otros pc con linux (no necesito nada al tener ya el servidor X) o windows (iniciando primero el servidor X Xming)

Otra de las caracteríticas interesantes de SSH es el tunneling que es de lo que trata esto. El tunneling lo que hace es encapsular un protocolo de red dentro de otro a traves de un túnel seguro entre el ordenador local y el remoto (por ejemplo, enviar tráfico ftp a traves de tráfico http). Para ello se se hace un mapeado de un puerto remoto a uno local.

2. ¿Para que nos sirve eso del SSH y tunneling?

Ahora os preguntareis para que demonios nos sirve estas cosas tan raras.  Pués para muchas cosas, por ejemplo, hacer seguros protocolos que de por si son inseguros (pop, smtp, http, …..), si tenemos un firewall que solo nos permite conexiones http, podremos saltarlo haciendo un túnel y encapsulando otro protocolo dentro de http (es lo que hacen muchas aplicaciones de control remoto de equipos que son capaces de saltarse los firewall corporativos).

Por ejemplo, yo lo uso para poder administrar mis router o la Via Epia que uso 24/365 como server, todo ello via web desde cualquier sitio.

Para ello uso el PuTTY que lo teneis tanto para Win32 como para linux, unix, …..

En este caso configuro que el puerto local 8080 se corresponda al puerto 80 de mi router ADSL y el 8081 local se corresponda al router Linksys WRT54GL.

Desde el Putty hago la conexión contra mi server ssh y a partir de ese momento tengo un túnel seguro desde el ordenador local contra el interfaz web de mis routers. Solo tengo que usar http://localhost:8080 para acceder a la configuración web de mi router adsl y http://localhost:8081 para acceder al interfaz web del WRT54GL.

Como es evidente, para hacer túneles ssh necesitais por un lado poder crear un túnel via Putty, ssh en consola, …., y por otro un servidor ssh. En mi caso la Via Epia que tengo montada como server ya me hace esas funciones. Los que posean un router neutro como el Linksys WRT54GL si usan firmwares alternativos como el Tomato o DD-WRT pueden hacer lo mismo ya que tiene ssh (esto se puede aplicar a cualquier router que tenga ssh).

En el caso de que usemos un SO like unix y tengamos instalado el cliente de ssh solo tendremos que teclear en una consola:

ssh -P – L 8080:tu_ip:80

ssh -P -L 8081:tu_ip:80

También lo podemos hacer desde windows si tenemos el port del cliente de SSH para win32.

Yo personalmente uso este último sistema a traves de scripts que me automatizan la conexión. También uso el putty en ordenadores que no tienen el cliente de ssh instalado. El putty es una de las herramientas que llevo siempre conmigo en un pendrive.

De esta forma puedo administrar determinadas cosas sin necesidad de abrir puertos innecesarios que pueden comprometer la seguridad  en el router. Con solo tener el puerto 22 del ssh ya me vale ya que el resto de puertos que necesito para la administración los encapsulo todos a traves de túneles ssh. Evidentemente el puerto de ssh esta bien protegido ya que el usuario root no pueda acceder via ssh via WAN, solo permito a un usuario del sistema autenticarse via WAN (con la debida seguridad en nombre de usuario y contraseña) con solo dos intentos para intoducir correctamente la contraseña y al primer intento de autenticarse de cualquier otro usuario,  detecto su IP y automaticamente bloqueo la IP con lo que cualquier reintento de conexión se corta antes de volver a intentar autenticarse.

En mi caso lo uso para administrar los servidores pero tiene muchos más usos.  Otro de ellos muy útil  es para el acceso al escritorio remoto de windows. Supongo que muchos de vosotros teneis vuestros equipos encendidos y dejais el escritorio remoto con su correspondiente puerto abierto en el router. Eso es muy peligroso ya que cualquiera que se conecte a vuestra ip y detecte el puerto abierto podra aprovechar cualeuier fallo de seguridad de windows para colarse en el equipo. En este caso lo ideal es tener el puerto del escritorio remoto cerrado en el router y cuando necesiteis conectaros,creais un túnel ssh al puerto del escritorio remoto y listo, tendreis acceso a vuestro PC de forma segura sin necesidad de tener puertos abiertos en el router que comprometen la seguridad.

El único requisito que necesitais es tener un servidor SSH en vuestra red que bien puede ser un router que disponga de ssh, un servidor like unix con ssh o si usais windows también podeis instalar el port para win32 de openssh en vuestro PC.

De esta forma podeis crear conexiones seguras contra cualquier aplicación.

Anuncios
Categorías:Software Etiquetas:
  1. Viernes, 22 septiembre 2017 en 4:33 am

    Wonderful, what a webpage it is! This blog presents helpful data to us, keep
    it up.

  2. tolgalen
    Sábado, 11 octubre 2008 en 11:50 pm

    Para usar tuneles SSH necesitas un servidor SSH del que no dispones por lo que comentas así que lo comentado en esta entrada no puedes aplicarlo.

    Puedes usar proxychains que hace una función parecida al Proxifier en linux pero no te puedo ayudar con el ya que nunca lo usé.

    http://proxychains.sourceforge.net/

  3. Delmo
    Viernes, 10 octubre 2008 en 8:39 pm

    Te cuento mi problema.
    Me conecto a internet usando el celular como modem.
    Mi compania de celulares (ancel de uruguay) tiene puertos bloqueados, solo se puede pasar por el 443, 80 y alguno mas.
    Actualmente estoy utilisando linux, y se me esta complicando para tunelear la conecciones por ej. del Kopete (cliente msn).
    Me dijeron que la solucion es crear este “puente” pero no loogro hacerlo ya que soy totalmete inexperto con el linux.
    En Windows usaba el Proxifier que hacia esto automaticamente, pero ya que no esta disponible para linux me esta jodiendo la vida 😛 .
    Si me pudieras ayudar no sabes cuanto te agradeceria.
    El proxy que tengo que utilizar es 200.40.246.2 puerto 3128.
    Por favor, mientras mas detallado mejor..
    Gracias

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: