¿Alguna vez os habéis encontrado en un sitio donde tenían cerrados todos los puertos, y no podíais hacer nada que no fuera navegar por la web? ¿Estáis en casa y necesitáis usar la red del trabajo para acceder algún recurso, pero no quieres configurar VPN y demás historias? Pues si éste es tu caso, sigue leyendo, porque el frotar se va a acabar.
Situación: necesitamos acceder a un recurso que no se encuentra disponible en nuestra red actual (sea por la presencia de un firewall, sea un libro sólo accesible desde la red de la Universidad, sea lo que sea).
Necesitamos:
- Acceso por SSH a alguna máquina en la red que puede acceder al recurso (esto es, en el trabajo, Universidad, etc).
- Instalar tsocks (disponible en Ubuntu y Debian).
- Ya está
.
Tenemos que entrar por SSH en la máquina en la red “buena”, con la opción -D, indicando el puerto donde estará escuchando el proxy SOCKS. Por ejemplo, ssh -D 1080 usuario@maquina.remota.es. Si el puerto es alto no necesitamos ser root. En caso contrario, habrá que ser root en local. El puerto 1080 es el puerto por defecto de un proxy SOCKS, así que lo dejamos así y listo. El proxy será localhost:1080, así que en realidad el valor del puerto no importa demasiado (salvo en el improbable caso que estéis corriendo algo en el puerto 1080).
Instalamos tsocks (en Ubuntu y Debian sudo apt-get install tsocks), y editamos como root el fichero /etc/tsocks.conf, con el siguiente contenido:
server = 127.0.0.1
server_type = 5
server_port = 1080
Y ya está. Cada vez que queramos que un programa use el proxy SOCKS, tenemos que entrar por SSH en la máquina remota, usando la opción -D, y ejecutar tsocks nombre_del_programa en local. La conexión SSH tiene que permanecer abierta todo el tiempo que queramos usar el proxy. Así, si estamos en una red con los puertos capados y no podemos acceder por ejemplo al correo por POP usando Evolution, no pasa nada, simplemente ejecutamos tsocks evoluton y todo el tráfico será redirigido usando el túnel SSH. No hay que configurar nada en Evolution (o el programa que sea). Si la máquina remota no tiene capados los puertos, y podemos acceder a ella por SSH, nuestra máquina local no los tendrá capados tampoco.
Otra utilidad de esto es acceder a recursos inseguros (una web que requiere usuario y contraseña pero no usa HTTPS, como éste blog
) a través de un canal cifrado. Eso sí, la conexión entre el servidor remoto y la página web no irá cifrada. De todos modos, te evitas miradas curiosas en la red extraña en la que te encuentres.
Así que se acabó la frustración la próxima vez que tengáis que acceder a un paper desde casa, o editar las actas de alguna asignatura, o leer el correo en una red capada sin usar webmail, o lo que sea.
yo usaba esto hace años para hacer bouncing a irc. Thanks por refrescarme la receta
Está bien la receta, a veces no funciona bien (se quedan medio bloqueados los sockets abiertos, no solo los del firefox), pero desde luego para puertos raros, es interesante.
Si solo lo necesitamos para web, el calamar funciona mejor
Y desde luego, es un buen sustituto al VPN que casi siempre sigue necesitando darle un repaso al kernel …
Montar un proxy en un periquete
Un truco más empleando la potencia de SSH: cómo obtener una función parecida al VPN sin usar VPN. Ideal para: acceder de forma segura a recursos publicados en intranets, eludir el bloqueo de puertos en ciertas redes, etc etc…
[...] Durante estos días podría “sobrevivir” si al menos puediera bajar y enviar correo una vez al día. Así que he trazado un plan. En primer lugar, he localizado la cafetería con wireless más cercana a casa. Luego he puesto el SSH en el puerto 80 en una máquina en España (por si acaso la red de la cafetería está capada). A partir de mañana, con ayuda de tsocks, podré trabajar en la cafetería como si mi portátil estuviera en España (aunque pagando el minuto de wireless a precio de oro). [...]