Denegar cualquier tráfico que no sea de Tor mediante reglas iptables

Si se quiere estar seguro de que el único tráfico de un host es a través de la red tor, se pueden usar estas reglas del firewall iptables para denegar todo tráfico que no sea de tor.

########################## IPv4
 
# Borra las reglas de salida actuales.
iptables -F OUTPUT
# Permite el tráfico saliente de procesos con usuario "tor".
iptables -A OUTPUT -j ACCEPT -m owner --uid-owner tor
# Permite tráfico saliente desde el interfaz de loopback.
iptables -A OUTPUT -j ACCEPT -o lo
# Permitir algunos servicios UDP
#iptables -A OUTPUT -j ACCEPT -p udp --dport 123
# Se deniega todo el tráfico saliente.
iptables -P OUTPUT DROP
#iptables -L -v
 
########################## IPv6
ip6tables -F OUTPUT
ip6tables -A OUTPUT -j ACCEPT -m owner --uid-owner tor
ip6tables -A OUTPUT -j ACCEPT -o lo
#ip6tables -A OUTPUT -j ACCEPT -p udp --dport 123         
ip6tables -P OUTPUT DROP

Si se usa el navegador de tor, este se debería arrancar usando el mismo usuario que el proceso tor (tor, tor-debian, etc) configurado en iptbales. A diferencia del servicio tor normal (puerto 9050), el navegador viene con su propio servidor (puerto 9150 normalmente). Para ello se podrían ejecutar los siguientes comandos para arrancar tor-browser con privilegios de usuario tor. De esta manera funcionará con las reglas iptables definidas anteriormente.

chown -R tor:tor tor-browser_en-US_tor/
# Ejemplo con el usuario "tor".
su -s /bin/bash tor
cd tor-browser_en-US_tor/
./start-tor-browser.desktop