Aus Neugier lese ich einige Tutorials über transparente TOR-Proxys, da dies vom Standpunkt des Netzwerks aus ein recht interessantes Thema ist. Im Gegensatz zu VPN-Gateways, die nur tun/ tapSchnittstellen verwenden und für mich völlig klar sind, verwendet der TOR-Proxy einen einzelnen Port. Alle Tutorials wiederholen die magische Linie:
iptables -t nat -A PREROUTING -i eth0 -p tcp --syn -j REDIRECT --to-ports 9040
Wo eth0ist die Eingangsschnittstelle (LAN) und 9040ist ein TOR-Port. Die Sache ist, ich verstehe überhaupt nicht, warum so etwas vom Standpunkt der Vernetzung überhaupt Sinn macht.
Nach meinem Verständnis von redirect/ chain dst-natund wie es in physischen Routern zu funktionieren scheint, dst-natnimmt Chain Takes dst-portund dst-addr BEVOR die Routing-Entscheidung getroffen wird und ändert sie in etwas anderes. Also zum Beispiel:
- vorher
dst-nat:192.168.1.2:46364 -> 88.88.88.88:80 - nachher
dst-nat:192.168.1.2:46364 -> 99.99.99.99:8080
Und 99.99.99.99:8080das sehen weitere Ketten in der IP-Paketflussspur (z. B. filterTabelle), und so sieht das Paket von nun an beispielsweise nach dem Verlassen des Geräts aus.
Nun behaupteten viele Leute im Internet (einschließlich dieses Stapelaustauschs), dass dies redirectim Grunde dasselbe sei wie dst-natbei der dst-addrEinstellung der lokalen Adresse der Schnittstelle. In diesem Licht gilt diese Regel:
iptables -t nat -A PREROUTING -i eth0 -p tcp --syn -j REDIRECT --to-ports 9040
macht eindeutig keinen Sinn. Wenn es so funktionieren würde, würde TOR alle Pakete mit Ziel erhalten 127.0.0.1:9040. Für typische Anwendungen, bei denen die App ein Paket entgegennimmt und irgendwie darauf reagiert (z. B. Webserver), ist dies absolut sinnvoll, da ein solcher Serverprozess ohnehin das endgültige Ziel des Pakets ist und es in Ordnung ist, dass die Zieladresse localhost ist. Aber der TOR-Router ist gut ... ein Router, der das ursprüngliche Ziel des Pakets kennen muss. Vermisse ich etwas Hat dies DNATkeinen Einfluss darauf, welche lokalen Anwendungen empfangen werden? Oder ist es spezifisches Verhalten der REDIRECTRichtlinie?
192.168.1.1:9040in den Verbindungsdetails wirklich als Ziel angezeigt, sodass ich keine Ahnung habe, woher der Tor-Proxy weiß, was das tatsächliche Ziel des Pakets ist ... Es ist vollständig ... Magie