Netzwerkverkehr über Proxy leiten
Netzwerkverkehr über Proxy leiten
Hallo zusammen,
ich hätte mal ne kleine Frage zur Verwendung des lokalen Proxys Privoxy:
Ich weiß, dass man bestimmte Programme so konfigurieren kann, dass sie Privoxy verwenden, aber geht das auch systemweit?
Also dass alle ausgehenden Verbindungen automatisch über localhost:8118 geroutet werden?
Ich habe mir schon überlegt, ob man dafür evtl. iptables mit -nat und PREROUTING verwenden könnte?
gruß thomas235
ich hätte mal ne kleine Frage zur Verwendung des lokalen Proxys Privoxy:
Ich weiß, dass man bestimmte Programme so konfigurieren kann, dass sie Privoxy verwenden, aber geht das auch systemweit?
Also dass alle ausgehenden Verbindungen automatisch über localhost:8118 geroutet werden?
Ich habe mir schon überlegt, ob man dafür evtl. iptables mit -nat und PREROUTING verwenden könnte?
gruß thomas235
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Netzwerkverkehr über Proxy leiten
Genau so kann man es machen. Ein Beispiel:
Wirft saemtlichen TCP-Traffic gegen Tor. Damit keine DNS-Requests an Tor vorbei rauschen werden auch saemtliche DNS-Requests auf die Tor-Node umgebogen.
Gruss syssi
Code: Alles auswählen
iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040
iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 9053
Gruss syssi
Re: Netzwerkverkehr über Proxy leiten
Privoxy ist aber scheinbar nur ein HTTP-Proxy. HTTP-Proxy wurden früher zum vor allem zu cachen und filtern eingesetzt. Beides halte ich heutzutage für vollkommen unnötig. Es wäre interessanter zu erfahren was du erreichen willst. Dann könnte man auch ernsthafte Vorschläge machen.
Willst du privat Privoxy nutzen würde ich einfach im Browser den Proxy entsprechend manuell konfigurieren und evtl. noch das direkte Routing von HTTP-Traffic (meist Zielports 80, 81, 443, ...) per iptables unterbinden.
Willst du privat Privoxy nutzen würde ich einfach im Browser den Proxy entsprechend manuell konfigurieren und evtl. noch das direkte Routing von HTTP-Traffic (meist Zielports 80, 81, 443, ...) per iptables unterbinden.
Re: Netzwerkverkehr über Proxy leiten
Nohmal zusammenfassend: Privoxy ist nur ein HTTP-Proxy => Er kann nur HTTP umleiten. Anders sieht das mit SOCKS-Proxys, wie sie TOR bereit stellt oder VPNs aus. Da kann man alles durchleiten.
Systemweit gibt es die Vriable http_proxy aus der alle Browser holen sollten, welche Proxy sie nehmen sollen. Ob sie das dann auch machen ist eine andere Frage.
Alternativ kannn man auch eine Transparente Proxy erstellen also versuchen allen HTTP-Traffic zu erkennen und den gewaltsam (über iptables) über die Proxy zu leiten. (Das halte ich allerdings wirklich nicht mehr zeitgemäß, zumal die Erkennung mitunter nicht so einfach ist und das dann mit unter gerne mal was zuviel umleitet, da sich mittlerweile fast alle dienste als HTTP tarnen weil die ganzen Firewalls nichts mehr anderes durch lassen.)
Systemweit gibt es die Vriable http_proxy aus der alle Browser holen sollten, welche Proxy sie nehmen sollen. Ob sie das dann auch machen ist eine andere Frage.
Alternativ kannn man auch eine Transparente Proxy erstellen also versuchen allen HTTP-Traffic zu erkennen und den gewaltsam (über iptables) über die Proxy zu leiten. (Das halte ich allerdings wirklich nicht mehr zeitgemäß, zumal die Erkennung mitunter nicht so einfach ist und das dann mit unter gerne mal was zuviel umleitet, da sich mittlerweile fast alle dienste als HTTP tarnen weil die ganzen Firewalls nichts mehr anderes durch lassen.)
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Netzwerkverkehr über Proxy leiten
Hallo,
die Antwort von syssi ist genau das was ich wollte.
Ich dachte aber man müsse vor Tor einen HTTP-Proxy schalten, deswegen hab ich meine Frage auf Privoxy bezogen.
@syssi ich hab die 2 Befehle mal ausprobiert: iptables zeigt nun zwar an, dass umgeleitet wird, aber eine Wirkung auf meinen Traffic kann ich bisher nicht feststellen
iptables -t nat --list:
gruß thomas235
die Antwort von syssi ist genau das was ich wollte.
Ich dachte aber man müsse vor Tor einen HTTP-Proxy schalten, deswegen hab ich meine Frage auf Privoxy bezogen.
@syssi ich hab die 2 Befehle mal ausprobiert: iptables zeigt nun zwar an, dass umgeleitet wird, aber eine Wirkung auf meinen Traffic kann ich bisher nicht feststellen
iptables -t nat --list:
Code: Alles auswählen
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN redir ports 9050
REDIRECT udp -- anywhere anywhere udp dpt:domain redir ports 9053
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Netzwerkverkehr über Proxy leiten
Du solltest dir in der Tat Gedanken machen, was du eigentlich bezwecken willst. Privoxy waescht deine HTTP-Requests sauber bevor sie an das Ziel weitergereicht werden. Wirfst du deine HTTP-Anfrage einfach in die Tor-Node, dann surfst du noch lange nicht anonym.
Mit welchen Zeilen hast du iptables genau gefuettert? Du solltest ausserdem verhindern, dass du deine Tor-Node nicht lahm legst. In meinem Fall spricht die Node auf einem anderen Interface (eth0) mit der Außenwelt. In deinem Fall versumpfst du gerade allen Traffic auf Port 9050 (vermute ich mal).
Mit welchen Zeilen hast du iptables genau gefuettert? Du solltest ausserdem verhindern, dass du deine Tor-Node nicht lahm legst. In meinem Fall spricht die Node auf einem anderen Interface (eth0) mit der Außenwelt. In deinem Fall versumpfst du gerade allen Traffic auf Port 9050 (vermute ich mal).
Re: Netzwerkverkehr über Proxy leiten
ich habe die Befehle eingegeben.
Also du meinst, ich sollte lieber alle Requests an Privoxy also an Port 8118 leiten, als an Tor (Port 9050 bei mir)?
Code: Alles auswählen
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --syn -j REDIRECT --to-ports 9050
sudo iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j REDIRECT --to-ports 9053
Also du meinst, ich sollte lieber alle Requests an Privoxy also an Port 8118 leiten, als an Tor (Port 9050 bei mir)?
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Netzwerkverkehr über Proxy leiten
Nein, ich meine du solltest einmal klar stellen, was dein Ziel ist. Deine Zeilen koennen nicht funktionieren, sofern deine Tor-Node ueber eth0 ebenfalls mit der Aussenwelt kommuniziert. Sobald die Tor-Node ein Packet verschickt wirft iptables dieses Packet wieder gegen die Tor-Node. Du siehst das Problem?
In meinem Beispiel kam der Traffic von wlan0. Die iptables-Regel greift also nicht, wenn die Node ueber eth0 mit der Aussenwelt kommuniziert. Du solltest deine Regel so anpassen, dass sie nur fuer deine Zwecke greift und die Tor-Node unbeeinflusst laesst.
In meinem Beispiel kam der Traffic von wlan0. Die iptables-Regel greift also nicht, wenn die Node ueber eth0 mit der Aussenwelt kommuniziert. Du solltest deine Regel so anpassen, dass sie nur fuer deine Zwecke greift und die Tor-Node unbeeinflusst laesst.
Re: Netzwerkverkehr über Proxy leiten
Hallo,
ok, ich glaube ich verstehe.
Dann müsste ich in meinem Fall ein zweites Interface erstellen, das ohne Umleitung mit dem Internet kommunizieren darf (eth1).
Die Umleitung wird dann auf alle Verbindungen in eth0 angewandt, aber wie sage ich Tor, dass es sich über eth1 verbindet und den restlichen Programmen, dass sie über eth0 gehen sollen?
gruß thomas235
ok, ich glaube ich verstehe.
Dann müsste ich in meinem Fall ein zweites Interface erstellen, das ohne Umleitung mit dem Internet kommunizieren darf (eth1).
Die Umleitung wird dann auf alle Verbindungen in eth0 angewandt, aber wie sage ich Tor, dass es sich über eth1 verbindet und den restlichen Programmen, dass sie über eth0 gehen sollen?
gruß thomas235
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Netzwerkverkehr über Proxy leiten
Eine Alternative ist ein weiteres iptables-Feature, welches dafuer sorgt, dass die Regel nur bei bestimmten Usern greift:
Hier wird jeglicher Traffic von UID 1000 gegen deine Tor-Node geworfen. Man kann diese Regel auch umdrehen, so dass die UID deiner Tor-Node vom Regelwerk ausgespart wird. Der Fantasie sind keine Grenzen gesetzt!
Code: Alles auswählen
iptables -t nat -A PREROUTING -p tcp -m owner --uid-owner 1000 -j REDIRECT --to-ports 9040
Re: Netzwerkverkehr über Proxy leiten
@syssi gib's zu den hast du von Cae geklaut. Wenn du geständig bist, überlegen wir uns nochmal ob wir Gnade vor Recht ergehen lassen und dich nicht verbrennen.
rot: Moderator wanne spricht, default: User wanne spricht.
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Netzwerkverkehr über Proxy leiten
Cae schreibt halt gute Beitraege! Ich habe die Zeile aus alten Aufzeichnungen gefischt. Ich moechte nicht abstreiten, dass sie initial von ihm stammen.wanne hat geschrieben:@syssi gib's zu den hast du von Cae geklaut. Wenn du geständig bist, überlegen wir uns nochmal ob wir Gnade vor Recht ergehen lassen und dich nicht verbrennen.
Re: Netzwerkverkehr über Proxy leiten
Hey, danke. Hint: Ich hab' sie auch geklaut, und zwar aus iptables(8).syssi hat geschrieben:Cae schreibt halt gute Beitraege! Ich habe die Zeile aus alten Aufzeichnungen gefischt. Ich moechte nicht abstreiten, dass sie initial von ihm stammen.wanne hat geschrieben:@syssi gib's zu den hast du von Cae geklaut. Wenn du geständig bist, überlegen wir uns nochmal ob wir Gnade vor Recht ergehen lassen und dich nicht verbrennen.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Netzwerkverkehr über Proxy leiten
Hallo,
mit der Zeile bekomm ich aber einen Fehler:
Welche iptables-Version braucht man denn dafür (ich verwende hier gerade squeeze und iptables v1.4.8 ).
gruß thomas235
mit der Zeile bekomm ich aber einen Fehler:
Code: Alles auswählen
ip_tables: owner match: used from hooks PREROUTING, but only valid from OUTPUT/POSTROUTING
gruß thomas235
Re: Netzwerkverkehr über Proxy leiten
Das sollte wohl iptables -A OUTPUT -p... sein, vgl. auch die Grafik in [1]. Es soll Pakete betreffen, die direkt von der Maschine kommen, daher nicht POSTROUTING (da waeren auch evtl. forwardete Pakete mit drin). Da hab' ich wohl nur auf's --uid-owner geschaut...thomas235 hat geschrieben:mit der Zeile bekomm ich aber einen Fehler:Code: Alles auswählen
ip_tables: owner match: used from hooks PREROUTING, but only valid from OUTPUT/POSTROUTING
Gruss Cae
[1] http://www.csh.rit.edu/~mattw/proj/nf/
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Netzwerkverkehr über Proxy leiten
Ah danke! jetzt hab ichs (glaub ich):
Also mal ohne INPUT Regeln: ich erlaube nur 110 und 117 (ist bei mir beides in /etc/passwd bei debian-tor eingetragen, die 117 könnte man sich vllt sogar sparen) und sonst darf nur über lo kommuniziert werden.
Ist das so richtig? Oder hab ich noch etwas übersehen?
gruß thomas235
Code: Alles auswählen
*filter
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m owner --uid-owner 110 -j ACCEPT
-A OUTPUT -m owner --uid-owner 117 -j ACCEPT
-A OUTPUT -j DROP
COMMIT
Ist das so richtig? Oder hab ich noch etwas übersehen?
gruß thomas235
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Netzwerkverkehr über Proxy leiten
Die Regeln bewirken, dass niemand mit der Aussenwelt kommunizieren darf ausser UID 110 und 117. Starte doch mal Tor und guck, ob das Bootstrappen noch funktioniert. Als normaler User in der Shell sollte sogar schon ein "ping google.com" scheitern.
Re: Netzwerkverkehr über Proxy leiten
Ich glaube das ist besser:
Manche Verbindungen die root aufmacht haben keine Sockets bzw. welche ohne owner. Insbesondere macht Tor (zumindest als relay) die Verbindung als root auf und wird erst dann zum Toruser.
Code: Alles auswählen
-A OUTPUT -m owner ! --uid-owner 110 -j REJECT
-A OUTPUT -m owner ! --uid-owner 117 -j REJECT
-A OUTPUT -j ACCEPT
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Netzwerkverkehr über Proxy leiten
@wanne funktioniert beides (hatte aber das Gefühl, deine Lösung war schneller)
Jap, geht nichtsmehr, nur wenn ich Tor als Proxy verwende
Die Umleitung werde ich wegen der Komplexität dann lieber das jeweilige Programm übernehmen lassen, und wenn das Programm nicht mitspielt hat es halt Pech
Danke euch allen für die Hilfe!
gruß thomas235
Jap, geht nichtsmehr, nur wenn ich Tor als Proxy verwende
Die Umleitung werde ich wegen der Komplexität dann lieber das jeweilige Programm übernehmen lassen, und wenn das Programm nicht mitspielt hat es halt Pech
Danke euch allen für die Hilfe!
gruß thomas235