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
- Compilamos: gcc -o /usr/local/bin/connect connect.c
- 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 😉 😉
Jajajaja “buscar en google y encontrar esta página”….
Buen post.
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.
Te paso un técnica mucho más oscura jeje
http://labs.j0hnd0e.com.ar/2009/09/04/hells-library-bypassing-transparent-proxy-using-apache/
Buena data, igual, muy complicado para mi gusto 😛 jeje
Gracias por pasarte !
Excelente!!
Gracias, espero que te haya servido 🙂
Mucho más sencillo de hacer:
1. Abrir una cuenta shell en http://www.cjb.net/shell.html
2. Desde una terminal (línea de comandos) en tu localhost, ejecutar:
ssh -ND 8888 username@shell.cjb.net
3. Configurar tu navegador para que use proxy socks5 en 127.0.0.1:8888
4. Disfrutar de una navegación (en teoría) más anónima…
Gracias por el aporte
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
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.
Pingback: Túnel inverso con SSH – El Blog de Sepa