Sécuriser Tor avec iptables

18 décembre 2009 par Pierre Laisser une réponse »


Voici une petite astuce pour être sûr de n’avoir aucune fuite en utilisant le proxy Tor.

Vous connaissez surement l’indispensable extension torbutton qui permet de bloquer tous les plugins (Java, Flash, …) susceptibles de leaker votre adresse IP, que je vous recommande d’ailleurs d’utiliser dans un profile Firefox différent avec le minimum vital niveau extension.

Cependant, il reste un problème : Torbutton ne gère que les connexions liées à Firefox, pour les autres applications, comment s’assurer qu’elles utilisent uniquement le proxy tor ? Une très bonne solution consiste à gérer le problème à la racine, c’est à dire en autorisant uniquement les connexions du processus tor via un firewall. Voici comment faire avec iptables.

Tout d’abord, il est nécessaire de créer un utilisateur pour tor et d’exécuter le processus avec celui-ci. Vous pouvez lancer tor directement avec l’utilisateur en question ou bien lancer tor avec les droits root et entrer la ligne suivante dans le fichier de configuration torrc :

User tor

Ensuite il nous reste à configurer iptables :

# Vide les règles déjà présentes
iptables -F INPUT
iptables -F OUTPUT
 
# Bloque tout par défaut
iptables -P INPUT DROP
iptables -P OUTPUT DROP
 
# Autorise toutes les connexions locales
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
 
# Autorise uniquement les processus de l'utilisateur tor à établir des connexions
iptables -A OUTPUT -m owner --uid-owner tor -j ACCEPT
 
# Accepte uniquement les connexions que l'on a initiées
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# Sauvegarde le tout 
iptables-save > /etc/iptables/tor

Et voilà, lors de l’utilisation de Tor on pourra mettre en place ces règles iptables afin d’être sur de communiquer uniquement via ce réseau.

iptables-restore < /etc/iptables/tor

3 commentaires

  1. Xavier dit :

    Article très instructif, c’est exactement ce que je cherchais!

    Juste une question: peut on encore plus sécuriser en autorisant uniquement en sortie le protocole tcp, sur les ports sortants utilisés par tor (80 443 et 9000/9001 non?). Je pensais aussi n’autoriser que vers les IP des entry nodes de Tor.

    Y-a-t-il un moyen aussi de n’autoriser que le SOCKS?

    Merci

  2. Pierre dit :

    Oui c’est possible mais je ne sais pas si c’est vraiment utile dans la mesure où l’on autorise uniquement le processus tor à communiquer, je ne pense pas que ce soit nécessaire de rajouter des règles supplémentaires.

    Pour ce qui est des nodes je vais bientot écrire un petit article là dessus, par exemple, essaye de te connecter sur ce site avec tor, tu verras, tu n’y arriveras pas ;)

  3. ax0us dit :

    cool :) , nice info .. was searching for this type on ninja work ,,thanks man

Laisser un commentaire