iptables + privoxy + tor + wget

Hallo,

Debian Linux, Tor auf Port 9050, Privoxy auf Port 8118, leitet an Tor weiter. Ziel ist es zwecks Anonymisierung alle ausgehenden HTTP-Verbindungen über den lokalen Proxy weiterzuleiten. Folgende funktionierende iptables-Konfiguration verwende ich hierfür.

Code:
# Accept tor-user output connections
iptables -A OUTPUT -j ACCEPT -m owner --uid-owner debian-tor

# Accept local connections
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A INPUT  -j ACCEPT -i lo

# Accept already established connections
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

# Redirect http traffic to local proxy
iptables -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner privoxy -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner privoxy --dport 80 -j REDIRECT --to-port 8118

# Drop everything else
iptables -P OUTPUT DROP
Nun setze ich für den wget noch den Proxy-Server:
Code:
export http_proxy=localhost:8118
Und lade mir dann über meine LAN-IP 192.168.1.40 über den lokalen Proxy und Tor exemplarisch Google mit der IP-Adresse 173.194.70.102 herunter:
Code:
wget -r 173.194.70.102
Das funktioniert auch. Netstat zeigt, dass ausschließlich via Tor verbunden wird:
Code:
netstat -te | egrep -v "localhost.*localhost"
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      
tcp        0      0 192.168.1.40:44395      lh21184.voxility.n:9001 ESTABLISHED debian-tor 19184      
tcp        0      0 192.168.1.40:35955      us02.nyr.be:https       ESTABLISHED debian-tor 10793
Letzteres habe ich auf einem meiner eigenen Web-Server via tcpdump verifizieren können.

Bis hierhin ist alles dem Anschein nach o.k.

Was ich zu solch später Stunde nicht mehr nachvollziehen kann ist, dass das o.g. Szenario nicht funktioniert, wenn ich den export der http_proxy-Variable weglasse:
Code:
unset http_proxy
Ich erwarte nun aufgrund der vorletzten iptables-Regel (NAT), dass die HTTP-Anfrage von wget durch den lokalen Proxy geschleust wird. Aus irgend einem Grund geschieht das aber nicht, wget versucht trotz der NAT-Regel eine Direkt-Verbindung zu Google aufzubauen:
Code:
wget -r 173.194.70.102
--2013-07-28 05:07:49--  http://173.194.70.102/
Connecting to 173.194.70.102:80...
und wird dann glücklicherweise von der letzten iptables-Regel brav blockiert:
Code:
netstat -te | egrep -v "localhost.*localhost"
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      
tcp        0      0 192.168.1.40:44395      lh21184.voxility.n:9001 ESTABLISHED debian-tor 19184      
[B]tcp        0      1 192.168.1.40:44473      fa-in-f102.1e100.n:http SYN_SENT    root       19782      [/B]
tcp        0      0 192.168.1.40:35955      us02.nyr.be:https       ESTABLISHED debian-tor 10793
Mir ist nicht klar wie der SYN_SENT des Users root zustande kommt. Dieser HTTP-Verbindungsversuch müsste IMHO aufgrund der NAT-Regel durch den Proxy auf localhost:8118 geschleust werden, wie es auch der Fall ist, wenn der http_proxy gesetzt ist, oder?

Manch andere Programme ignorieren die http_proxy Variable, daher ist es wichtig, dass die NAT-Regel funktioniert.

Gruß
Hackse
 
ich habs zwar gerade nur so überflogen, aber wo genau setzt du die umleitung nach localhost:8118?

wenn ich mich nicht täusche, wird das redirect was du machst, ausschließlich den zielport von 80 auf 8118 ändern, aber den zielhost beibehalten ... und der dürfte nicht localhost sein ...
 
Lass doch die armen TOR User mit deinem HTTP Traffic in ruhe. Speziell Anwender aus wirklich betroffenen Krisenregionen sind auf den TOR Traffic angewiesen. Nimm dir ein VPN und zahle als reicher Europäer auch für solche Dienste ;)
 
@GrafZahl:
Natürlich, der localhost fehlt. Danke!

@usoya:
Vertrauen ist eine Schwäche ...
Ich vertraue keinem VPN-Provider auf diesem Planeten. Wenn es hart auf hart kommt und man denen in einem Rechtsstreit die Knarre auf die Brust setzt, werden sie Deine Daten herausgeben, egal auf welchem Kontinent. Du hast gehört, was u.a. mit PRISM abgeht, Du hast gehört, dass auch Europa Daten mitschneidet und selbst wenn Vorratsdatenspeicherung illegal ist, würde es mich nicht überraschen, wenn der ein oder andere Geheimdienst die Möglichkeit hat Zugriff auf alle VPN-Provider zu haben; siehe PRISM. Es redet einfach keiner drüber.

Denkst Du wirklich Google, Facebook, Microsoft & co. haben nichts mit der NSA zu tun, nur weil sie es offiziell leugnen (müssen)? Im Gegenteil, wenn ich seitens der Regierung beauftragt werden würde um zu spionieren, wären alle VPN-Provider die Ersten, die ich anzapfen würde, weil man exakt hier Leute findet, die etwas verstecken möchten.

Ich bleibe bei Tor, aus gutem Grund. Und meinen HTTP-Traffic kompensiere ich mit eigenen Tor Exit-Nodes.

Greetz
Hackse
 
@usoya:
Vertrauen ist eine Schwäche ...
Ich vertraue keinem VPN-Provider auf diesem Planeten. Wenn es hart auf hart kommt und man denen in einem Rechtsstreit die Knarre auf die Brust setzt, werden sie Deine Daten herausgeben, egal auf welchem Kontinent. Du hast gehört, was u.a. mit PRISM abgeht, Du hast gehört, dass auch Europa Daten mitschneidet und selbst wenn Vorratsdatenspeicherung illegal ist, würde es mich nicht überraschen, wenn der ein oder andere Geheimdienst die Möglichkeit hat Zugriff auf alle VPN-Provider zu haben; siehe PRISM. Es redet einfach keiner drüber.

Lustiger Hackse, aber einem TOR vertraust du hahaha. Definiere mir Vertrauen, was ist für dich Vertrauen? Wenn ein VPN logts habe ich keine Probleme mit der Datenherausgabe, die Logs sind einach 0 Byte gross. Dafür brauchst du auch keine super Kanone dafür, hahaha. Ich wünsche dir viel Erfolg beim TOR, die VPN Provider werden sich bei dir bedanken weil dank euren Middle Node werden Anon Traffic produziert :)
 
je nachdem wo dein VPN provider sitzt, hat er ggf. logs oder auch nicht, aber in jedem fall ist er als telekommunikationsanbieter der jeweiligen staatlichen gesetzgebung verpflichtet, die im falle eines deutschen unternehmen bleistiftsweise bedeutet, dass er ab einer bestimmten größe verpflichtet ist abhörschnittstellen mindestens für strafverfolger bereitzustellen, in anderen ländern sieht es nicht anders aus ... das ist dann schön dass der anbieter keine logs hat ... die weden dann halt bei jemand anderem angelegt ... gib dich bitte nicht der illusion hin es gäbe anonyme kommunikation auf diesem planeten ...

auch TOR ist nur begrenzt als sicher zu betrachten da es für die nichtnachvollziehbarkeit schlicht eine grundannahme braucht: ein angreifer kann nicht 90% des netzes kontrollieren ... im falle PRISM / TEMPORA hält diese annahme nicht.
 
@usoya:
Nun, die Antwort ist simpel:
Worauf ich vertraue ist die hinter Tor steckende Grundidee/Technologie und die Tatsache, dass es fuer die Behoerden sehr viel schwieriger ist 90% aller weltweit verteilten TOR-Server zu kompromittieren als ein geheimes Handshake Agreement aka PRISM mit einem großen VPN-Provider einzugehen.

@Grafzahl:
Sehe ich genauso. Nichts ist 100% sicher. Gerade vor kurzem wurde eine schwere Sicherheitsluecke im TOR Browser-Bundle bekannt. However, TOR samt entsprechender Sicherheitsvorkehrungen (kein Windows, kein Javascript, kein Flash, keine Authentifizierung, keine personenbezogenen Dinge wie Emails, Facebook & co, Security Patches, keine unnoetigen Daemons, am besten virtualisierte Sandbox, keine personenbezogenen Daten auf dem Rechner, Blocken von Non-Tor Traffic, MAC-Adresse zufaellig, evtl. noch Zugriff aus einem fremden WLAN ;-), ...) sollten schon das sein, was Anonymitaet am naehsten kommt.

@all:
Zurueck zum eigentlichen Thema:
Die o.g. iptables-Regeln werden auf verschiedenen Seiten identisch verwendet, daher kann ich nicht nachvollziehen, weshalb der Traffic nicht korrekt auf Port 8118 umgeleitet wird. Ich sehe auch auf anderen Websites keine explizite Angabe des localhost bei der NAT-Regel, und dennoch scheint es dort zu funktionieren:

https://wiki.archlinux.org/index.php/Polipo
How to transparent proxy | Shadows of epiphany
[SOLVED] Transparent proxy: iptables+privoxy+polipo


Greetz
Hackse
 
Zuletzt bearbeitet:
Zurück
Oben