Tunel SSH con Tor y/o Bypass Proxy

By | 2010-05-05

Todo empieza una fria mañana de verano… jaja noooo, mentira !

Como fiel Linuxero que soy, siempre que haya internet necesito una conexion ssh a “mi servidor”, el problema lo tuve en la facultad; me conecto a la red wifi de la misma y veo que hay un proxy transparente ( Squid ) el cual no deja pasar conexiones a puertos que no sean 80 y 443; a parte bloquea varias paginas.

La solución que se me ocurrio para las paginas fue usar Tor ( encapsula el trafico por ssl y a parte nos asegura una navegacion anonima ), listo… consegui mi conexion “libre” a internet, paso siguiente fue el ssh… no andaba. Entonces tuve la idea de pasar el tunel ssh por tor…

1ro Instalar privoxy ( el proxy que vamos a usar para interconectar tor con el navegador )

  • Debian/Ubuntu: apt-get install privoxy
  • Otros:
    • Download: https://sourceforge.net/projects/ijbswa/files/
    • Documentacion: http://www.privoxy.org/user-manual/index.html

2do Instalar Tor

  • Debian Sid: apt-get install tor
  • Otros:
    • Donwload: http://www.torproject.org/download-unix.html.es
    • Documentacion: http://www.torproject.org/documentation.html.es
    • Requerimientos: libevent-dev y libssl-dev
    • Pasos: ./configure && make && make install
    • Instalación por default de binarios: /usr/local/bin

3ro Configurar privoxy para que salga por Tor por medio de Socks5

  • Editar el archivo /etc/privoxy/config
    • Agregar: forward-socks5 / localhost:9050 .
    • Reiniciar privoxy: /etc/init.d/privoxy restart

Extra:

  • Recomiendo instalar Torburron ( add-on de Mozilla Firefox ) para no tener que estar configurando y desconfigurando el navegador cada vez que necesitemos usar Tor
  • Información de proxy para las aplicaciones:
    • Proxy http, https (ssl): 127.0.0.1 puerto 8118
    • Proxy socksV5: 127.0.0.1 puerto 9050

— Hasta aca, la navegacion —

4to Buscar en google y encontrar esta pagina

5to Poner a funcionar lo que encontre

  • Necesitamos bajar el archivo connect.c
    • Compilamos: gcc -o /usr/local/bin/connect connect.c
      • El binario queda en /usr/local/bin/
    • Cambiamos los permisos, para que sea ejecutable: chmod 755 /usr/local/bin/connect
    • Cambiamos el dueño y grupo ( a root ): chown root.root /usr/local/bin/connect
  • Y ahora la magia del comando ssh: ssh -l [USUARIO] -2 [IP_SRV] -p [PORT_SRV] -o ProxyCommand=”/usr/local/bin/connect -4 -S localhost:9050 %h %p”
    • [USUARIO]: Usuario de ssh
    • [IP_SRV]: Ip del servidor ssh ( puede ir el nombre )
    • [PORT_SRV]: numero de puerto donde corre el sshd ( el default, como ya tendrian que saber, es el 22 )

6to Disfrutamos de nuestra conexion libre 🙂

La explicación ( sumamente basica ):

  • Lo que hacemos es hacer que nuestro trafico ( ya sea de navegación, como ssh, o cualquier otro ) salga por Tor, este mismo nos encapsula todo el trafico utlizando SSL y el puerto 443; lo que hacemos con el tema del tunel ssh, es meterlo a dentro de la encripción que genera Tor.. asi de simple 🙂 Lo maravilloso de todo esto, es que nadie que este en el medio puede ver lo que estamos haciendo, y el destinatario no puede saber tampoco de donde venimos 😉 😉

11 thoughts on “Tunel SSH con Tor y/o Bypass Proxy

  1. Lex

    Jajajaja “buscar en google y encontrar esta página”….

    Buen post.

    Reply
    1. Sepa Post author

      Y si… no les voy a mentir, obvio que quedaria mejor “en una investigacion profunda, encontre la forma de realizar un …” pero seria una falasia.

      Reply
    1. Sepa Post author

      Buena data, igual, muy complicado para mi gusto 😛 jeje

      Gracias por pasarte !

      Reply
  2. Rodo

    Pancho, para que la navegacion sea totalmente privada deberias usar ademas tor-resolve, caso contrario las consultas dns quedan registradas cuando tuneleas ssh por nombre de host
    [IP_SRV]: Ip del servidor ssh ( puede ir el nombre )

    O usar solo ip y listo

    Reply
    1. Sepa Post author

      Cuando terminas de armar todo el tunel, las consultas de dns van por dentro.. y antes… aunque le pegues a un nombre o a una ip mucho no difiere, haces el reverso del dns y tenes el nombre :S
      La navegacion, sigue siendo totalmente anonima porque va por dentro del tunel.

      Reply
  3. Pingback: Túnel inverso con SSH – El Blog de Sepa

Deja 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.