Como crear un túnel SSH

SSH (Secure SHell) intérprete de comandos seguro – 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.

OpenSSH

El protocolo SSH se utiliza con frecuencia para tunelizar tráfico confidencial sobre Internet de una manera segura.

Ejemplo:
PC usuario se conecta y establece túnel SSH con el servidor SSH. Usuario quiere descargar el archivo proyecto.zip desde el servidor ftp://ejemplo.com. El servidor SSH se conecta con el servidor FTP con la clave proporcionada por PC usuario a servidor SSH bajo conexión segura y le devuelve el archivo a PC usuario.

Esto impide a terceros examinar el contenido de la trasmisión, algo posible si las comunicaciones se realizan en Internet.

También se puede usar para evitar los cortafuegos (firewalls). Simplemente se encapsula el protocolo HTTP o el protocolo bloqueado dentro de otro permitido.

Para realizar un túnel SSH hace falta:
· un servidor SSH
· Putty

Primero hay que crear la conexión con el servidor SSH, utilizando Putty:

Introducimos la IP o el hostname del servidor y el puerto (predeterminado 22), dejando marcado el tipo de conexión SSH.

Putty

  

Más abajo en Connection esta SSH y Tunnels:
En Source port hay que poner el puerto – 8080 por ejemplo; marcamos Dynamic y pulsamos Add.

Putty

 

Hecho esto ya podemos abrir la conexión. 

Ahora, configuramos nuestro navegador para que se mediante el servidor SSH.
IE7:
Herramientas -> Opciones de Internet -> Conexiones -> Configuración de LAN:

Configuración IE7

  

Marcamos “Usar un servidor proxy para la LAN” y pulsamos en Avanzadas.

Configuración IE7

  

En Socks ponemos localhost: 8080 o el puerto elegido antes.

Configuración IE7

  

Se puede poner 127.0.0.1 o localhost

Firefox:
Herramientas -> Opciones -> Avanzadas -> Red -> Configuración:

Configuración Firefox

  

Marcamos “Configuración manual de proxy” y en ponemos 127.0.0.1 como Servidor SOCKS y el puerto elegido.

Configuración Firefox

  

Como observación final, para los que no disponen de un servidor Linux, se puede utilizar el ordenador personal (de casa) instalando OpenSSH para Windows.

Comentarios

3 respuestas para “Como crear un túnel SSH”

  1. newbie a las 1:04 el 19 de Oct del 2009

    la verdad hay miles de forma de crear un tunel de conexion mejor si lo haces desde linux con una shell del sistema conectarse al servidor
    ssh (secure shell) . con o sin proxy .

  2. JC a las 19:51 el 21 de Sep del 2010

    Estoy tratando de acceder a mi FTP privado desde el ordenador de mi empresa a través de un tunel SSH.
    La conexión SSH la hace correctamente, me logueo y puedo ejecutar comandos sin mayor problema.
    Ahora viene el kid de la cuestión: cuando trato de conectar al servidor FTP, no me consigue listar el directorio correctamente.
    Paso a facilitar más detalles:

    Sistema operativo del servidor: Windows Siete 64bit Enterprise.
    El servidor SSH lo tengo a través de Cygwin, en el puerto 443.
    Servidor FTP: G6FTP 3.10
    Puerto del servidor: 21
    Opciones activadas en el servidor ftp:
    -redirect PASV IP: aquí pongo el nombre dns de mi ip
    -passive port range: 50000 a 50010

    Este ordenador utiliza un router como puerta de enlace a internet, cuyo modelo es el Conceptronic C150BRS4
    La IP de este ordenador está detrás de DMZ, con lo que en teoría no es necesario mapear ningún puerto (en cualquier caso, también he probado a hacerlo sin DMZ y mapeando los puertos manualmente, como por ejemplo el 20, 21, 443, 50000, 50001…. 50010).
    En el router también tengo NAT activado, y cualquier filtro de firewall desactivado.

    Ahora vamos al cliente:
    Sistema operativo: Windows XP Pro.
    Sale a internet a través de un proxy ISA SERVER
    El cliente SSH es el PUTTY, cuya configuración paso a detallar:

    Hostname: La ip pública de mi casa, o el nombre DNS asignado por medio de dyndns.org
    puerto: 443
    proxy: direccion proxy de mi empresa, tipo HTTP, y su puerto (8080)
    Tunnels:
    -L21 minombredns:21
    -L20 minombredns:20
    -L50000 minombredns:50000
    -L50001 minombredns:50001
    -L50002 minombredns:50002
    -L50003 minombredns:50003

    -L50010 minombredns:50010
    Tengo también marcadas las opciones “Local ports accept connections from other hosts” y “remote ports do the same”.

    Bien, el caso es que se necesita una conexión FTP en modo PASV para poder conectarse a través de un tunnel SSH: ftp:\\localhost:21
    He probado con el CUTE FTP en modo pasivo y funciona.
    Mi intención es poder llevarlo a cabo con el Filezilla 3.3.3, ya que es la herramienta que utiliza la empresa y así evito tener que instalar software. Sin embargo, al tratar de conectar, recibo un “error recuperando el listado de directorio”.
    He retoqueteado mil veces las opciones del cliente (modo pasivo y activo), y no hay forma.
    También me interesa poder conectarme a través del explorer de windows,o el iexplore, pero obtengo los mismos resultados.
    Sin embargo, con el firefox SÏ me deja conectar correctamente, pero una vez más, prefiero no tener que instalar aplicaciones y usar las corporativas (Internet explorer).

    Agradecería infinitamente cualquier pista sobre cómo puedo resolver este problema, ya que llevo ya un par de semanas así y se me acaban las ideas.
    He de decir que, obviamente, no tengo acceso a la modificación del proxy de la red mi empresa, y mis privilegios en el equipo cliente son muy limitados. Y, desgraciadamente, no puedo pedir dichos privilegios pues serán automáticamente denegados.

    Como dato añadido, comentar que otras aplicaciones funcionan correctamente a través de túneles SSH, como por ejemplo, el VNC, y que el acceso a mi servidor ftp desde otro ordenador, sin tener que usar un tunel, también funciona correctamente.

    Para cualquier otro dato que se necesite estaré atento para poder facilitarlo.
    Un saludo, y gracias por adelantado…..

  3. Francisco a las 15:33 el 6 de Apr del 2011

    Funciona perfecto, mil gracias, aunque seria ideal hacerlo de alguna forma de no mostrar la ventana de la sesión abierta del putty.

Deja una respuesta