Notre blog en mousse \o/ - Mot-clé - iptables2024-03-01T10:31:54+01:00Les Lamas !urn:md5:16d806c26b4faf0eabfff608393c3d26DotclearPasserelle vers un réseau Torurn:md5:33fbf867df05622f8d52743c37d291242011-01-05T14:10:00+01:002011-01-15T23:35:07+01:00chauchreGeekerieanonymatiptablesnetfilterpasserelleproxytor <p>Le but de ce billet est de créer une passerelle qui sort directement sur le réseau Tor.<br />
A quoi cela peut bien servir ? Par exemple en changeant la route par défaut d'un client lui permettre d'être anonyme sur la toile (attention aux données sensibles qui transitent dans le réseau Tor tout de même), ou encore fournir une passerelle, potentiellement ouverte, vers internet sans être reconnu comme IP source des paquets sortants.<br />
<br />
<a href="http://www.torproject.org" hreflang="en">Tor</a> est un réseau d'ordinateurs (volontairement) zombies qui permet de faire du multi-proxy.</p>
<h4>Installer Tor</h4>
<p>La première étape est l'installation de Tor sur un serveur:<br />
<code># apt-get install tor</code><br />
... et ben voilà, première étape terminée ;)<br />
| Comme toujours, il est possible d'installer Tor à partir de ses <a href="http://www.torproject.org/dist/" hreflang="en">sources</a> afin d'avoir la dernière version:<br />
<code>$ wget http://www.torproject.org/dist/tor-0.2.1.28.tar.gz</code><br />
<code>$ tar xzf tor-0.2.1.28.tar.gz && rm tor-0.2.1.28.tar.gz</code><br />
<code>$ cd tor-0.2.1.28</code><br />
<code>$ ./configure</code><br />
<code>$ make</code><br />
<code>$ su -c 'make install'</code></p>
<p>|| Requirements:<br />
<code># apt-get install build-essential</code><br />
<code># apt-get install libevent-dev</code><br />
<code># apt-get install libssl-dev</code></p>
<h4>Configuration de Tor</h4>
<p>(Rappel: on ne souhaite pas dans ce billet configurer Tor comme relais, mais simplement comme point d'entrée dans le réseau Tor)<br />
<br />
Emplacement: <code>/etc/tor/torrc</code> ou <code>/urs/local/etc/tor/torrc<br /></code><br />
<code>RunAsDaemon 1<br /># Port et adresse d'écoute du démon Tor(relai)</code><br />
<code># ORPort 9001</code><br />
<code># ORListenAddress 127.0.0.1</code><br />
<code># Port et adresse d'écoute pour les requêtes DNS</code><br />
<code>DNSPort 53</code><br />
<code># Port et adresse d'écoute pour Tor en mode proxy transparent</code><br />
<code>TransPort 8118</code><br />
<code>TransListenAddress 0.0.0.0</code><br />
<br />
A présent, vous pouvez lancer Tor:<br />
<code># invoke-rc.d tor start</code><br />
ou<br />
<code># tor</code></p>
<h4>Configuration IP forward</h4>
Un simple<code> echo 1 > /proc/sys/net/ipv4/ip_forward</code> suffit, il est également possible d'éditer le fichier <code>/etc/sysctl.conf</code> afin d'activer l'IP forward systématiquement:<br /><code><br />net.ipv4.ip_forward=1</code><br /><h4>Configuration netfilter/iptables</h4>
<p>Afin de concentrer tout le trafic entrant vers le proxy transparent local, on configure quelques règles iptables simples:<br />
<code>iptables -F -t nat</code><br />
<code>iptables -F</code><br />
<code>iptables -X</code><br />
<code>## Règles locales</code><br />
<code>iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 8118</code><br />
<code>iptables -t nat -A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 53</code><br />
<code>## Règles extérieures</code><br />
<code>iptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 8118</code><br />
<code>iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 53</code></p>
<p>Vous pouvez tester si le proxy fonctionne en local simplement en vous rendant sur www.whatismyip.org (et vérifier que ce n'est pas votre IP) ou:<br />
<code>$ GET whatismyip.org</code><br />
ou<br />
<code>$ w3m whatismyip.org</code><br />
Le même test est réalisable à partir d'un client extérieur après lui avoir modifié sa route par défaut.</p>
<h4>Configuration annexe</h4>
<p>Si vous voulez que l'ensemble du trafic d'un hôte passe systématiquement dans le réseau Tor, il suffit de configurer le serveur DHCP en rajoutant une entrée host. Par exemple pour dhcpd, on peut rajouter l'entrée suivante dans le fichier <code>/etc/dhcp3/dhcpd.conf</code><br />
<br />
<code>host monHote{</code><br />
<code> fixed-address A.B.C.D;</code><br />
<code> hardware ethernet XX:XX:XX:XX:XX:XX;</code><br />
<code> option routers {adresse IP du serveur Tor}</code><br />
<code>}</code></p>
<h5><strong>Mise à jour:</strong> Commande socat:</h5>
<code>socat -d -d TCP4-LISTEN:8118,fork,reuseaddr TCP4:<address_ip>:8118</code><br /><br />