lunes, 8 de octubre de 2012

Conexión segura en lugares no seguros (2ª Parte)

Nivel de Dificultad: Bajo.

En mi artículo anterior Conexión segura en lugares no seguros viste como podíamos navegar de manera segura, en WiFis públicas o no encriptadas, creando un proxy SOCKS5 mediante un tunel ssh a nuestro servidor. Con este artículo, verás como puedes hacer pasar TODO el tráfico TCP de red de tu ordenador (no sólo los protocolos más comunes), a través del proxy.

Te recomiendo también que leas mi artículo Acceso SSH sin poner contraseñas para configurar tu acceso a tu servidor sin necesidad de escribir tu contraseña.

Primero, debes instalar redsocks en tu ordenador. Abre un terminal y e introduce el siguiente comando:

sudo apt-get install redsocks

En Ubuntu, redsocks se instala y no se activa para que arranque de inicio (y eso es precisamente lo que quiero).

Edita el archivo de configuración, que se encuentra en /etc/redsocks.conf. Necesitarás hacerlo con sudo. Ejecuta el siguiente comando en un terminal:

sudo gedit /etc/redsocks.conf

En la sección redsocks, encontrarás las variables local_port y port (en mi archivo de configuración, se encuentran en las líneas 42 y 46), y cambia los valores a:


local_port = 9998; 
port = 9999;

Crea un archivo redsocks-on.sh en tu directorio bin (o en algún otro de tu PATH) y copia y pega las siguientes líneas:

#!/bin/sh
redsocks -c /etc/redsocks.conf
# Creamos una cadena nueva
sudo iptables -t nat -N REDSOCKS
# Ignora direcciones LAN y reservadas.
sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Redirigimos el tráfico a Internet por el puerto 9998
sudo iptables -t nat -A REDSOCKS -p tcp -j DNAT --to 127.0.0.1:9998
sudo iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
# Establecemos la conexión con nuestro servidor
# y le decimos a iptables que permita la conexión con el mismo
ipserver=`dig +short yo@miservidor`
sudo iptables -t nat -I REDSOCKS -d $ipserver -j RETURN
ssh -p 443 -qND 9999 $ipserver

Recuerda cambiar yo@miservidor por los valores correctos de conexión a tu servidor.

Crea otro archivo y llámalo redsocks-off.sh y ponlo en el mismo directorio. Copia y pega el contenido de las siguientes líneas:


#!/bin/sh
# Reseteamos iptables
sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t nat -Z
# Matamos el proceso redsocks
killall redsocks

Haz los archivos ejecutables con el comando chmod +x redsocks-o*.sh

Para probar que sí nos funciona, con tu navegador entra en http://whatismyip.org y apuntate la IP. Cuando hayas iniciado la conexión con estos scripts, vuelve a probar. La IP debería ser diferente.

Para iniciar tu conexión segura, ejecuta en un terminal el script redsocks-on.sh. El script no se queda en segundo plano. Esto está hecho a propósito así. Ahora ya podrás navegar de manera totalmente segura ya que hemos iniciado redsocks, redirigido todo el tráfico tcp a redsocks, que lo envía al proxy que hemos iniciado con un tunel ssh. Para finalizar haz Ctrl-C sobre el terminal donde está ejecutándose el script. Finalizaremos la conexión ssh. Seguidamente ejecuta redsocks-off.sh para resetear las reglas de iptables y finalizar redsocks.

Como ves, con estos 2 scripts podrás establecer una conexión totalmente segura con tu servidor para navegar en WiFis no seguras. 

No hay comentarios:

Publicar un comentario