Hace aproximadamente un mes redacte un post en el que comentaba que era un tunel SSH y los usos más habituales que nosotros como usuarios comunes podemos darle. Ahora que conocemos que es y para que sirve un tunel SSH pasaremos a ver como hacer un tunel SSH. Antes de ver como se realiza el tunel es interesante que deis un vistazo al siguiente post para tener los conceptos claros:

https://geekland.eu/que-es-y-para-que-sirve-un-tunel-ssh/

Una vez leído el post nos imaginamos la siguiente situación. Estamos conectados y navegando por Internet en una cafetería y tenemos miedo que alguien que esté conectado en la misma red que nosotros pueda realizarnos un ataque, como por ejemplo un Man in the middle, para poder obtener datos confidenciales como por ejemplo podrían ser contraseñas, datos bancarios, etc.

Para minimizar el riesgo en esta situación crearemos un tunel SSH para que la totalidad del tráfico entrante y saliente que generamos dentro de la red local viaje de forma cifrada por el interior del tunel. De este modo nadie de nuestra red local podrá husmear donde nos estamos conectando en realidad ni robarnos información confidencial. Para ello tenemos que seguir los siguientes pasos:

DISPONER DE UN SERVIDOR SSH

El servidor SSH lo podemos montar nosotros mismos tranquilamente en nuestra casa. Imaginemos que tenemos un servidor conectado las 24 horas o un ordenador que no le damos ningún uso. Si este es el caso lo encendemos.

Lo primero que tenemos que hacer es asegurar que nuestro ordenador dispone de un servidor SSH instalado. En la gran mayoría de distros de Linux el servidor SSH se instala por defecto al instalar el sistema operativo. En el caso que nuestra distro linux no tuviera un servidor SSH instalado tan solo tendríamos que abrir una terminal y ejecutar los siguientes comandos:

sudo apt-get install openssh-server openssh-client

paquetes necesarios para instalar un servidor SSH

Nota: Es necesario que tanto la parte del servidor como la parte del cliente tengan instalados los 2 paquetes que se acaban de mencionar. En caso contrario no podremos establecer el tunel.

Una vez instalado el servidor será plenamente funcional. En principio podríamos entrar dentro del archivo de configuración del servidor para modificar ciertos parámetros introduciendo el siguiente comando en la terminal:

sudo gedit /etc/ssh/sshd_config

El objetivo de modificar ciertos parámetros es hacer más seguro nuestro servidor contra posibles ataques o accesos no deseados. No obstante el hecho de securizar el servidor SSH lo dejaremos para futuros post. La configuración estandard funcionará adecuadamente para el fin que nosotros necesitamos.

DISPONER DE UN SERVICIO DNS DINÁMICO O UNA IP FIJA

Una vez instalado el servidor SSH tenemos que hacer que nuestro servidor SSH sea accesible desde el exterior. En el caso que nuestro servidor no sea accesible desde el exterior nosotros no podríamos crear el tunel SSH desde la cafetería hasta el servidor SSH que tenemos en nuestra casa.

Si disponemos de una conexión de Internet con IP Fija, cosa que es poco probable, tan solo tenemos que averiguar nuestra IP Pública. Para ello accedemos a la siguiente página web:

http://www.vermiip.es/

Comprobación de nuestra IP pública

Como se puede ver en la captura de pantalla aparecerá nuestra IP Pública y al disponer de un servicio de IP Fija siempre tendremos la misma IP. Desafortunadamente la mayoría de ISP acostumbran a ofrecer sus productos básicos con IP Dinámica.

En el caso de disponer de una IP Dinámica para encontrar nuestro servidor SSH tendremos que usar un servicio DNS Dinámico tal y como se explica en el siguiente post:

https://geekland.eu/encontrar-servidor-con-dns-dinamico/

REDIRECCIONAR LA PETICIÓN DEL ROUTER AL SERVIDOR SSH

Una vez conocemos nuestra IP Pública o una vez tengamos configurado el servicio dinámico DNS, entonces tenemos que entrar en la configuración del router y redirigir las peticiones de nuestra IP pública o dominio DNS a la IP interna del servidor SSH.

Para ello primero tenemos que conocer la IP interna que tiene nuestro servidor SSH. Para conocer la IP interna del servidor SSH abrimos una terminal y tecleamos el comando:

sudo ifconfig

El resultado obtenido es el siguiente:

Averiguar la IP interna del servidor SSH

Como se puede ver en la captura de pantalla la IP interna de nuestro servidor SSH es la 192.168.1.115.

Nota: En este paso tenéis que aseguraros que la IP interna de vuestro servidor sea Fija.

Una vez conocemos la IP interna del servidor SSH accedemos a la configuración del Router abriendo el navegador e introduciendo nuestra puerta de entrada. Una vez introducida la puerta de entrada, que acostumbra a ser 192.168.1.1, tal y como podemos ver en la captura de pantalla tendremos que introducir nuestro nombre de usuario y contraseña:

Acceder a la configuración del Router

Una vez hemos accedido a la configuración del Router buscamos en el menú de nuestro router un apartado que ponga Virtual Servers. En mi router como se puede ver en la captura de pantalla se halla en Advanced Setup / NAT / Virtual Servers:

Acceder a NAT/Virtual Servers

Una vez dentro de Virtual Servers presionamos el botón Add para añadir nuestro servidor SSH. Una vez presionado el botón Add aparecerá la siguiente pantalla:

Redireccionar la petición exterior al servidor SSH

Como se puede ver en la captura de pantalla en Server IP Address tendremos que indicar la IP interna de nuestro servidor SSH.

En seleccionar servicio elegimos la opción Secure Sheell Server (SSH). Al seleccionar esta opción la configuración de los protocoles y puertos se realizará automáticamente. Como se puede ver en la captura de pantalla el servicio SSH funciona mediante el protocolo TCP y el puerto 22.

Nota: En el caso que hagáis modificado el puerto estandard de funcionamiento del servidor SSH tendréis que sustituir el puerto 22 por el que habéis elegido.

Una vez realizados los pasos tan solo tenemos que apretar el botón Save/Apply.

CONFIGURAR EL FIREWALL PARA QUE PERMITA CONEXIONES ENTRANTES POR EL PUERTO 22

En el caso que nuestro servidor SSH disponga de un firewall tendremos que asegurar que permita conexiones entrantes y salientes por el puerto 22, o por el puerto que hayamos elegido en nuestro servidor SSH.

Si el proceso lo vais a realizar con gufw pueden consultar al siguiente post para hacer que nuestro servidor permita las conexiones entrantes por el puerto 22.

https://geekland.eu/configurar-el-firewall-gufw/

En el caso que prefieran hacerlo directamente con iptables tan solo tienen que usar las siguientes reglas para permitir el trafico entrante y saliente por el puerto 22 en nuestro servidor:

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
Nota: La introducción de las reglas que acabo de mencionar esta permitiendo al totalidad de tráfico y saliente por el puerto 22. Está no es la forma más segura de configurar nuestro servidor. En futuros post se abordará el tema de como securizar un servidor SSH.

ESTABLECER EL TUNEL SSH

Nota: Antes de iniciar el proceso tenemos que asegurarnos que nuestro ordenador (cliente) tenga los paquetes necesarios para poder poder establecer el tunel. Por lo tanto lo primero que tenéis que hacer es asegurar que tenéis instalado el paquete openssh-client.

Una vez realizados todos los pasos correctamente ya podemos establecer el tunel SSH. Por la tanto una vez estamos conectados a la red local de la cafetería abriremos una terminal e introduciremos el siguiente comando:

ssh -p 22 -N -D 8081 joan@geekland.sytes.net

Comando para establecer el tunel SSH

Una vez introducido el comando en la terminal nos pedirá la contraseña de la cuenta de usuario del servidor SSH. Una vez introducida la contraseña el tunel se establecerá. Ahora tan solo tenemos que mantener la terminal abierta y sin cerrarla.

El significado de los términos introducidos en la terminal para establecer el tunel SSH es el siguiente:

-p 22: Con este parámetro indicamos el puerto de escucha de nuestros servidor SSH. El puerto de escucha estándard acostumbra a ser el 22 para los servidores SSH. En el caso que hayamos modificado el puerto de escucha deberemos sustituir el 22 por nuestro puerto real de escucha.

-D 8081: Estamos especificando que se realice un reenvio dinámico de puertos o tunel dinámico. Por lo tanto con este comando estamos indicando que el tunel SSH se establezca a través del puerto local 8081. En el puerto 8081 habrá un servidor proxy socks que escuchará las conexiones del puerto 8081. Cuando el servidor proxy socks detecte una solicitud o conexión en el puerto 8081 enviará el tráfico cifrado a través del tunel SSH que creamos entre la cafetería y nuestra casa. Una vez la petición/información llegue a nuestra casa o servidor SSH, como hemos establecido un tunel dinámico, se redirigirá al sitio de Internet que queremos conectarnos que por ejemplo podría ser Facebook o Twitter.

Nota: Estamos usando el puerto 8081 pero se puede usar cualquiera de los puertos no privilegiado que van desde el 1025 al 65535. En el caso de querer usar un puerto privilegiado deberemos hacerlo como root añadiendo sudo al inicio comando para establecer el tunel SSH.
Nota: El servidor local Proxy Socks es quien realmente está enviando el trafico de nuestro ordenador al servidor SSH que está en una red local segura. Por lo tanto la información que reciba el servidor proxy socks a través del cliente, que en este caso es Firefox, debe enviarse con el protocolo Socks. Por lo tanto los clientes como Firefox u otros deberán ser capaces de enviar sus peticiones a través del protocolo socks. En el caso que la aplicación no soporte la comunicación con el protocolo socks no se podrá establecer la conexión. Para aplicaciones que no soporten socks tenemos la opción de usar tsocks en nuestro ordenador. En futuros post comentaremos como usar tsocks.

-N: Permite que se establezca el tunel SSH pero que no se abra una sesión interactiva con el servidor SSH. En el caso de no usar esta opción, nuestra conexión SSH estará permanentemente abierta y si alguien nos robará el ordenador o nos despistaros y alguien malintencionado tuviera acceso al ordenador nos podría por ejemplo borrar completamente la información que tenemos almacenada en nuestro servidor SSH.

joan: Es simplemente la cuenta de usuario del servidor SSH.

geekland.sytes.net: Simplemente es el dominio de nuestro servicio dinámico DNS el cual apunta a la IP Pública del servidor SSH. En el caso de tener IP Fija en vez del dominio tendréis que introducir vuestra IP Pública.

CONFIGURAR EL NAVEGADOR PARA QUE FUNCIONE ADECUADAMENTE

A estas alturas el tunel ya se ha establecido. Ahora el siguiente paso es configurar cada una de las aplicaciones que queremos que funcionen a través del tunel SSH. En este caso nosotros vamos a usar el navegador Firefox.

Para conseguir que Firefox funcione a través de un proxy socks y la totalidad de tráfico generado y recibido se envíe a través del tunel SSH lo vamos a realizar a través de una extensión que se llama FoxyProxy.

Nota: En el caso que uséis Chrome o Chromium solo comentar que también existe Foxyproxy. Para Chrome o Chromium existe una alternativa similar a Foxyproxy que se llama Proxy Switchy. Con Proxy Switchy el procedimiento es muy similar a FoxyProxy.

El primer paso que haremos es abrir el navegador Firefox. Tal y como podemos ver en la captura de pantalla accedemos al menú de Complementos:

Acceder a los complementos de Firefox

Una vez estamos dentro del menú de complementos nos ubicamos encima del cuadro de búsqueda del extremos superior derecho y escribimos Foxy Proxy. Seguidamente presionamos Enter:

Instalar Foxyproxy

Como se puede ver en la captura de pantalla una vez terminada la búsqueda tan solo tenemos que presionar el botón de Instalar y seguidamente reiniciaremos el navegador. Una vez reiniciado el navegador veremos que aparece el icono que selecciono con el puntero del mouse en la captura de pantalla:

Configurar Foxyproxy

Presionamos el botón de FoxyProxy con el botón izquierdo del mouse. Una vez presionado el botón aparecerá la siguiente pantalla:

Añadir Proxy Socks en Foxyproxy

Como se puede ver en la captura de pantalla anterior apretamos el botón de Añadir nuevo Proxy. Una vez presionado el botón aparecerá la siguiente pantalla que es donde vamos a configurar Firefox:

Proxy Socks Configurado

Si observamos la captura de pantalla podremos ver la configuración que tenemos que introducir. Primero de todo tenemos que tildar la casilla de configuración manual del proxy. A continuación como el servidor proxy socks actuará localmente en nuestro ordenador en el apartado Host or IP address tenemos que introducir 127.0.0.1. Como el tunel SSH lo hemos abierto a través del puerto 8081 en la celda puerto tenemos que introducir el número de puerto 8081. Para finalizar tan solo tenemos que tildar la opción ¿proxy socks? y seleccionar la opción Socks v5 ya que la versión 5 del protocolo socks es más moderna y ofrece mayor seguridad que la versión 4.

Una vez realizados todos los pasos presionamos el botón Aceptar. Seguidamente aparecerá una ventana adicional en la cual tendremos que seleccionar la opción Aceptar de nuevo. Una vez realizado este paso el proceso de configuración a finalizado. Cerramos el navegador y lo volvemos abrir de nuevo.

Justo al abrir el navegador analizamos cual es nuestra IP. Para ello accedemos a la siguiente página web:

http://www.vermiip.es/

El resultado obtenido es el siguiente:

Comprobación de la IP sin Proxy Socks

Como se puede ver en la captura de pantalla nuestra IP es XX.XX.XX.163 . Seguidamente nos conectamos a través del tunel SSH y comprobamos de nuevo nuestra IP.

Redirigir el tráfico al proxy Socks

Para hacer que el tráfico entrante y saliente de Firefox circule por el tunel SSH, como se puede ver en la captura de pantalla lo único que tenemos que hacer es dar click con el botón derecho encima del icono de Foxy Proxy y seleccionar la opción que contiene los datos 127.0.0.1:8081. Una vez seleccionada la opción pasamos de nuevo a comprobar nuestra IP y el resultado es el siguiente:

Comprobación de la IP conectados a través del tunel SSH

Como se puede ver ahora nuestra IP pública ahora es diferente. Antes terminaba en 163 y ahora termina en 243. Este hecho es indicativo que todo está funcionando a la perfección. La IP que podréis visualizar es la IP de vuestro servidor SSH.

En el caso que queramos que Firefox vuelva a utilizar la configuración estándard y que no se use el tunel SSH para enviar y recibir nuestro tráfico, como se puede ver la captura de pantalla, tan solo tenemos que volver a presionar el botón derecho del mouse encima del icono de FoxyProxy y seleccionar la opción Deshabilitar FoxyProxy completamente :

Desactivar el servidor Proxy Socks

Nota: En el caso que estemos navegando y nuestro servidor SSH se cayera no hay que temer por nada. En el momento que se cayera el servidor SSH simplemente no podríamos navegar. Por lo tanto en principio nunca estaremos expuestos a los ataques que nos puedan lanzar otros usuario de la red local dónde estemos.
Nota: Lo que se puede hacer es dejar configurado permanentemente Firefox para navegar a través del tunel SSH y siempre que tengamos necesidad de navegar en una red insegura usaremos Firefox. Si estamos navegando en una red local segura podemos usar Chrome, Chromium, Opera u otro navegador.

COMPROBACIÓN DE LOS BENEFICIOS DEL TUNEL SSH

Por si os queda alguna duda de si puede ser efectivo un tunel SSH os voy a enseñar un fácil ejemplo de lo efectivo que puede llegar a ser.

Imaginemos que estamos conectados en la cafetería y queremos entrar en un foro de Lubuntu.

foro de Lubuntu

Como se puede ver en la captura de pantalla, para acceder al foro de Lubuntu estamos introduciendo nuestro número de usuario y contraseña. Una vez introducidos accederemos dentro del foro. ¿Pero que pasa si alguien esta esnifando el tráfico que generamos? Pues pasará lo siguiente:

Esnifando paquetes en texto plano

Como se puede ver en la captura de pantalla alguien ha estado esnifando nuestro tráfico con el sniffer wireshark. Si observamos la captura de pantalla podemos ver que el paquete 8 contiene nuestro usuario y contraseña del foro de Lubuntu. Por lo tanto un atacante real se podría haber apoderado de nuestro usuario (password) y contraseña (password) de forma muy simple.

Nota: Muchos pensarán que la página web no disponía de cifrado SSL por ejemplo, pero la verdad es que hoy en día incluso con páginas cifradas con SSL nos pueden llegar a robar nuestras contraseñas con  SSLstrip.

Ahora llega el momento de preguntarnos que pasaría si alguien se dedicara a esnifar el tráfico cuando nosotros estamos navegando a través del tunel SSH.

Para hacer la comprobación volveremos a entrar en el Foro de Lubuntu. Igual que como hicimos con anterioridad al acceder al foro introduciremos nuestro nombre y contraseña y accederemos al foro.

Ahora pasaremos a ver lo que un posible atacante podría haber capturado:

Esnifando paquetes cifrados

Como se puede ver en la captura de pantalla de la totalidad de paquetes esnifados no hay ninguno de color verde que son los que corresponden al protocolo http. Lo que si podemos observar es que ahora la mayoría de paquetes usan el protocolo SSH y además en información podemos leer la palabra Encrypted Response. Además si intentáramos reconstruir cualquiera de los paquetes con el protocolo SSH el resultado seria completamente ilegible.

Además si realizamos un filtro por tipo de paquete podemos ver que no se ha capturado ni un solo paquete http que son los que acostumbran a contener información en texto plano como por ejemplo passwords, nombres de usuario, etc.

Filtrando paquetes http

Por lo tanto realizada esta pequeña prueba podemos afirmar que en estos momentos es mucho más difícil ser espiado y ser atacado por usuarios que están conectados dentro de nuestra misma red local.

SOLUCIÓN PARA APLICACIONES QUE NO SOPORTAN SOCKS

Como se ha visto en el post tenemos que configurar cada una de nuestras aplicaciones para que funcione a través del tunel SSH que hemos creado, pero ¿qué pasa en el caso que ciertas aplicaciones como por ejemplo Midori o Pidgin no tengan esta opción?

La solución a este problema se llama tsocks. En futuros post veremos que utilizar tsocks para enviar la totalidad del tráfico entrante y saliente a través de nuestro tunel SSH para la totalidad de aplicaciones instaladas en nuestro ordenador.

Únete a la conversación

24 comentarios

  1. Muy interesante, como siempre. Muchas gracias por la aportación.

    Me quedan dos dudas:

    1) Has dicho que el esnifado puede venir por agentes conectados a la misma red local. Pero si te estás conectando por medio de un protocolo cifrado (WEP/WAP) ¿también pueden esnifarte? ¿o eso sólo ocurre en los routers abiertos?

    2) Hay un momento en que envías una contraseña en claro: la del usuario SSH de la máquina remota. ¿Esa contraseña no es esnifable? En caso de que sí, supongo que siempre quedaría la opción de generar certificados y conectarse por medio de éstos.

    1. Buenas Manuel,

      1) Si alguien esta conectado en tu misma red Local siempre puede esnifar el trafico de la red independientemente del protocolo de cifrado.

      2) La contraseña no se envía en en texto plano. Se envía cifrada creo que con AES128. Por lo tanto no la esnifarás o no la conseguirás fácilmente. Si te preocupa la seguridad lo que puedes hacer es frozar que el acceso al servidor SSH esté regulado por pares de claves. La versión 2 de SSH es más segura que la uno.
      Saludos!

      1. Muchas gracias Joan.

        He hecho la prueba con mi servidor, al cual estoy vinculado por certificados de claves (sin contraseñas). Va estupendamente.

        Tengo otro par de preguntas: ¿qué diferencia hay entre el túnel ssh y la conexión VPN? ¿podría un atacante de la red local esnifar el tráfico en ese caso? Si para conectarse a la VPN hay que pasar datos de acceso (usuario, contraseña) ¿pasan éstos en claro?

        Y la más importante: tengo un cliente ssh instalado en mi tableta android. Es ConnectBot. Pero no veo cómo conectarme de esa forma al servidor. ¿Es posible? ¿Quizá sea necesaria una aplicación distinta? ¿Cuál? (si es que existe)

        1. Hola Buenas,

          Explicar las diferencias entre este método y un VPN merece un post que quizás escriba. Será a nivel básico ya que no controlo en exceso pero sin duda me da para escribir un post. La principal diferencia es que con un servidor VPN todo el tráfico va por el servidor VPN. Con el método del post solo las aplicaciones que tu hayas configurado previamente. Hay formas de forzar que la totalidad de tráfico vaya por el túnel SSH pero la verdad es que no he probado nunca si funciona.

          Un atacante puede esnifar datos tanto si te conectas por un VPN como por un servidor SSH. El problema es que todos los paquetes que capturará estarán cifrados y es prácticamente imposible descifrarlos.

          En Android yo no se como hacer lo que quieres hacer. Con el cliente SSH que tienes puedes abrir el túnel pero después tienes que buscar la forma de redirigir el tráfico de tu tablet al puerto que tienes abierto el túnel SSH. Y que sepa yo las aplicaciones de Android no se pueden configurar para que hagan esto. Quizás exista alguna que lo permita pero yo lo desconozco. Lo que podrías hacer con una tablet es montarte un servidor VPN en tu casa y usarlo. Bajo mi punto de vista esta es la solución más fácil. Las próximas semanas o meses creo que publicaré como crearte un servidor VPN mediante el protocolo pptpd. No es el VPN más seguro y tiene algunos fallos de seguridad pero es muy fácil de configurar y no tienes que instalar Apps para que funcione ya que tanto Android como iOS lo soportan nativamente.

          Saludos

  2. Lo primero, felicitarte por el sitio web, es excelente. Ahora estoy introduciéndome en el mundo de la seguridad informática y después de leer varios post tuyos me surge una duda:

    ¿Puedo hacer un túnel desde Tor? Es decir, si yo tengo el cliente shh con Tor y me conecto al túnel mediante un DNS y ese DNS como no-ip registra mis IP públicas, ¿no sería más seguro crear ese túnel (servidor SSH) desde la red Tor, así ese DNS solo conocería IPs no reales?

    Todo desde mi casi absoluta ignorancia, solo quiero saber su opinión, ya que usted sabe bastante más que yo.

    1. Hola buenas, No acabo de entender que es lo que quieres hacer. Lo que imagino que quieres es establecer el túnel SSH estando conectado a través de la red Tor porqué tienes miedo que se guarden los logs de conexión.

      Si es así solo decirte que en ningún momento cuando he escrito el post he considerado el ser anónimo. Además tampoco es que considere la red Tor Segura. Simplemente he considerado protegerme de ataques en una red local o acceder a sitios restringidos estando conectado a través a una red local con firewall. Tampoco se si No-IP guarda logs. Lo que puedes hacer es probar si NO-IP admite conexiones entrantes de la red Tor ya que igual las bloquean.

  3. Buen día, te consulto algo.

    He tenido el problema de no poderme conectar al ssh, seguí tus instrucciones y de momento nada. Conecte una virtual con Lite, directo a mi red, y desde allí quise conectarme a mint. Cree el servidor virtual en el router, con el puerto que yo le asigne al ssh. Pero no me dejo conectar. Trate a la inversa, de la máquina física a la virtual, cree la regla, dejando aca el puerto por defecto de ssh y tampoco. Ya modifique mi firewall de la forma que indicas en tu artículo relativo al tema y no tuve éxito.

    He intentado esta conexión previamente y no he podido. Podrías hacerme la observación sobre algún punto que este obviando?. Gracias.
    Excelente blog.

    1. Buenas,

      Obviamente con los comentarios que haces no te puedo ayudar. ¿Puedes establecer el túnel SSH entre la máquina virtual que imagino que actúa como servidor SSH y tu ordenador que imagino que usas como cliente?

      ¿Si no puedes que mensaje de error te da?

      No tiene mucho sentido hacer este paso con una máquina virtual pero imagino que lo estás haciendo para practicar. Si lo estás haciendo con la máquina virtual no tiene sentido configurar el router ya que estás actuando en local. Tampoco tiene sentido usar una IP Pública. Con la máquina virtual tan solo tienes que asegurarte que tu máquina virtual este completamente integrada en tu red local cosa que no se como se hace en la máquina virtual que utilizas.

      PD: Desconozco que es una virtual con Lite. Imagino que será algún tipo de máquina virtual como lo son VMWare o Virtualbox.

  4. Gracias por responderme, creo que no fui lo suficientemente claro. A veces escribo como si fuera un monologo.

    Cree una máquina en virtual box con LinuxLite, para realizar pruebas del ssh con mi máquina física.

    Sin hacer modificaciones intente la primera conexión de hacia la virtual, la cual tiene el puerto 22. Pero no me pude conectar. Luego en proceso inverso de la máquina virtual a la física, en la cual ya cambie el puerto por uno a mi conveniencia y tampoco me pude conectar.

    Considerando mi conexión como una lan real, me di a la tarea de investigar, y me salto que debía configurar el router (que por cierto tiene un software administrativo igual al del router de los ejemplos que pones) y cree los servidores. De igual forma no me conecto.

    Probé creando la regla en el firewall que tengo configurado (gufw) con iguales resultados.

    Gracias por tu tiempo para leerme. Seguiré buscando la forma. Me parece una excelente herramienta que podría implementar en mis labores.

    1. Hola, pienso que el problema es que tu máquina virtual no interactúa bien con tu ordenador. ¿Tienes tu máquina virtual configurada en modo bridge?

      ¿Qué Ip interna tiene tu máquina virtual y que Ip interna tiene tu ordenador?

      Te aconsejo que si usas gufw para hacer las pruebas permitas las entradas y salidas tanto en el servidor con en el cliente. Así seguro que descartas una mala configuración del firewall.

      Tarde o temprano esto te tiene que acabar funcionando. Tienes que averiguar lo que falla.

      saludos

  5. Tengo la máquina en virtualbox. Deshabilite el firewall en la máquina física y verifique que el firewall en la máquina virtual esta inactivo. Logre conectarme desde la máquina virtual a la física, pero no viceversa. Verifique que ssh esté instalado en la máquina virtual, pero miré el contenido del archivo config y estaba vacío. Trate de desinstalarlo e instalarlo en modo server y cliente, pero no concluyo adecuadamente el proceso. En resumen, si pude usar el ssh, en un sentido, pero considero que con máquinas físicas no voy a tener problemas.

    Solo me falta probar una conexión desde una red externa, ya tengo configurado el host en no-ip según tu post.

    Gracias por tu ayuda.

  6. Tengo una conexion via telefonica con proxy, usuario y password para navegar internet. Uso putty en windows y configuro los parámetros: en options controlling proxy usage lo pongo en http, en proxy hostname pongo mi proxy y el puerto 3128 y en username and password pongo mi datos proporcionados por mi proveedor. accedo hacia un servidor que tiene ssh a través de un fichero .bat que ejecuto después que me conecto que tiene esta configuración:
    @Echo Off
    C:
    Cd C:\Windows
    putty -N -C -D 1080 -P 443 -ssh user@00.00.000.000 -pw pass
    Exit

    y por ultimo utilizo el proxifier version 3 configurado de esta forma: en proxy server con la direccion 127.0.0.1 puerto 1080 sock version 5, en proxification rules agrego la aplicacion putty y en actions le pongo direct, para que todos los programas salgan a traves de este.

    Necesito saber como puedo lograrlo en mi telefono con android que conecto a mi pc a traves del connectify y este comparte mi conecxion de acceso telefonico. necesito tutorial y apks que me resuelvan este dilema. saludos y gracias de antemano

    1. Hola Buenas.

      El procedimiento que aplicas veo que es en Windows. Entiendo que te funciona a la perfección ya que solo describes como lo haces y no haces ninguna pregunta. En Linux en vez de proxifier puedes usar tsocks, redsocks u otras aplicaciones. En el caso que quieras consultar como realizar el proceso con tsocks puedes consultar el siguiente post:

      https://geekland.eu/redireccionar-trafico-tcp-con-tsocks/

      En el caso del telefono deberás buscar una apk para forzar que la totalidad del tráfico pase a través del proxy que tienes en tu ordenador. Si usas Android diría que deben existir múltiples opciones pero la verdad es que yo no conozco ningúna. Si después de encontrarla quieres decirnos cual usas habrás hecho una buena aportación.

      En caso de no existir esta aplicación lo que te propondría es que instales un servidor VPN en tu ordenador. Si el servidor que instalas trabaja con el protocolo pptpd, sin necesidad de instalar ningún cliente en tu teléfono conseguirás que el tráfico entrante y saliente de tu teléfono esté cifrado y por lo tanto podrás navegar de forma segura. En futuros post seguro que describiré como instalar un servidor VPN en nuestro ordenador. Primero con el protocolo pptpd y seguidamente con el protocolo OpenVpn.

      Saludos. Y si encuentras está aplicación compártela por favor.

      1. Hola Joan Carles

        Agradecido que me hayas respondido. Quizás no expuse bien lo que necesitaba. Yo uso la configuración que expuse para windows. Me interesaria saber como puedo lograrlo en android.

        Mi configuración actual es la siguiente. Yo me conecto a los sitios mediante proxy, user y pass y logearme en un servidor que tiene montado un ssh a través de putty del cual solo tengo un user y un pass. Una vez logeado al servidor ssh entonces puedo navegar en Internet gracias a que proxifico todas las aplicaciones (de windows) a través del localhost por el 1080 socks 5.

        Mi interés es como puedo hacer que el tráfico de mi teléfono pueda salir a través de dicho túnel y poder asi eliminar todas las restricciones que tiene mi conexión.

        1. Veo que te gusta hacer la carta a los reyes.

          Para conectarte a través del proxy lo puedes hacer a través del sistema operativo Android o iOS. Con Android 4.4.2 o iOS 7 se puede hacer de forma nativa. En otras versiones no lo se.

          Para abrir el túnel lo puedes hacer con connectbot…. Pero para enrutar el tráfico hacia el túnel dudo que se pueda. O yo no se como por que las apps no permiten redirigir información a un determinado puerto.

          Lo que puedes hacer es conectarte a través de un VPN que te puedes montar en tu casa (el VPN se monta en el exterior y no necesitas ser root des de donde te conectas). De esta forma podrás conseguir tu objetivo más fácilmente. Te conectas al proxy y después al VPN.

          En mi blog hay información para realizar lo que quieres hacer. O si quieres puedes buscar en otros. Ahora tienes que intentarlo tu hasta que te salga.

          Saludos

  7. excelente post bueno te cuento tengo problemas al momento de establecer la conexión, te daré algunas pistas:

    FUNCIONA:
    javier@ubuntu:~$ ping 192.168.1.7
    PING 192.168.1.7 (192.168.1.7) 56(84) bytes of data.
    64 bytes from 192.168.1.7: icmp_req=1 ttl=64 time=0.055 ms

    FUNCIONA:
    javier@ubuntu:~$ ping mihost.no-ip.info
    PING shaccorth.no-ip.info (mi-ip) 56(84) bytes of data.
    64 bytes from pc-miipcm.vtr.net (miip): icmp_req=1 ttl=63 time=2.20 ms

    FUNCIONA:
    ssh -p 22 javier@192.168.1.7
    Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.5.0-41-generic i686)

    NO FUNCIONA:
    ssh -p 22 javier@mihost.no-ip.info
    ssh -p 22 javier@miip
    ssh: connect to host mihost.no-ip.info port 22: Connection timed out

    Configure el router en la parte de virtual sever y abrí el puerto 22, la forma de servicio no la especifique ya no no sale la opción ssh y tengo desactivado el firewall de ubuntu..
    saludos compa!

    1. Hola Buenas,

      Los comandos que estás usando son los correctos. Por lo tanto si tienes un fallo es que alguno de los pasos previos no lo has realizado correctamente. Dudo que sea problema de firewall ya que cuando pones la IP 192.168.1.7 te puedes conectar sin problema. Además cuando es problema de firewall normalmente te pone Connection rejected en vez de Connection timed out.

      Con los datos que aportas mucho mas no puedo hacer. Entiendo que el paso que no funcionas lo estarás haciendo des del exterior de tu red local. No?

      1. En mi propia red, e igual seguí el manual del cliente vpn y anoche me conectaba a varios servidores vpn y ahora no me conecta a ninguno y no he hecho nada! diablos no se que hacer

        seguiré buscando gracias por responder saludos

        1. No tiene mucho sentido conectarte en tu propia red. Quizás deberías probar desde fuera de tu red para ver que pasa. Por apostar apostaría que el paso que quizás falla es la configuración de tu Router.

          Respecto al problema del vpn el comentario no debe ir en este post. Pero si ayer te funcionaba y hoy no, quizás es porqué los que gestionan el servidor vpn han cambiado la contraseña.

          Un saludo

  8. Me funciona, excelente dato. Lo comprobé con wireshark y los textos van completamente cifrados aunque no tengan https.

    En mi casa tengo un viejo pc y le puse ubuntu y lo deje como server ssh y con windows en el notebook puse putty -P 22 -N -D- 8081 … y funciona, gracias

  9. Hay router inalámbricos, con firmware como tomato, openwrt o DD-WRT que implementa un servidor SSH (Dropbear).

    Otra utilidad es que al hacer un túnel hacia el router desde fuera, obtiene acceso a los recursos de la red, como si estuvieras conectado al router por cable, como una VPN rudimentaria vpn.

    1. Hola buenas,

      Diría que la única, o la principal, ventaja de Dropbear respeto a SSH es que es un alternativa más ligera.

      Y si tienes este servicio en un router pues mejor que mejor.

      Saludos

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.