Iniciar TOR sólo después de conectarse a VPN

Como sabrán, Snowden nos enseñó que utilizar VPN con Tor era una buena combinación para mantenerse anónimo. Este método en esta guía es para las personas que usan NetworkManager para conectarse a VPN y su contraseña del VPN está guardada en los secretos del usuario. También para aquellas que usan TOR (¡sin el TOR Browser!). Porque cuando la contraseña del VPN está visible publicamente en /etc, no es necesario esto.

La verdad lo ideal me parece que las contraseñas del VPN estén protegidas en los secretos del usuario. Creé un script que revisa cada 10 segundos si estas conectado a un VPN, y si estas conectado entonces se conecta a Tor.

Instrucciones:

1. Deshabilita TOR del inicio del sistema:

systemctl disable tor

2. Ejecuta visudo y agrega esto :

%wheel ALL=(root) NOPASSWD: /usr/bin/systemctl start tor

3. Crea un archivo con la extensión .desktop en ~/.config/autostart con este contenido:

[Desktop Entry]
Comment=
Exec=bash ~/script.sh
GenericName[en_US]=
GenericName=
Icon=system-run
StartupNotify=true
Terminal=false
Type=Application

4. Crea un archivo en ~/script.sh con este contenido:

#! /bin/bash
until [ "$(pgrep tor)" ] ; do
if [ "$(nmcli --fields TYPE connection show --active | grep vpn)" ]; then
sudo /usr/bin/systemctl start tor
fi
sleep 10
done

5. Dale permisos de ejecución
chmod +x ~/.script.sh

Siempre en VPN

Y no puedo dejarles este método sin enseñarles al menos algún método de  como estar permanentemente en VPN. Actualmente les dejo este por su sencillez y porque no tenemos que instalar nada. La alternativa es con el firewall, que después les enseñaré.

Como root ejecuta:

crontab -e

y agrega esta linea:

* * * * * /usr/sbin/route del default eth0 > /dev/null

Donde debes remplazar eth0 con tu interfaz de internet de donde estas en VPN. Actualmente este método solo lo he probado con OpenVPN donde crea una interfaz tun0 o tunX dependiendo.


 

Notas: Evita las fugas de DNS con systemd, utilizando VirtualBox con una conección puente o Bridge no funciona el VPN, utiliza directamente tu IP, tengan precaución con este método al crear conneciones en puente con otros dispositivos.

Debes saber que el mejor método para estar siempre en VPN es por medio del Firewall, estos métodos por Firewall y el aquí presentado son mejores que el killerswitch. Puesto que son aprueba de fallos. Sin embargo, cuidado , encontré este artículo en Google para Linux que es básicamente un killerswitch:

Automatically reconnect to your VPN on Linux

Así que favor de evitarlo, así como métodos similares que necesitan tener un proceso corriendo. El método que te presente es un punto medio, porque si bien requiere de cron, si cron falla, si se desconecta tu VPN, no vas a tener internet (esto es bueno) hasta que reinicies la conección. Un workaround podría ser programar una notificación, de forma que cuando te vuelvas a conectar, tengas la seguridad de que se aplicaron las reglas de ruteo de vuelta.

 

These bottons respect your privacy