[Frage] Gastzugang mit Tor und Privoxy?

cuco88

Mitglied
Mitglied seit
9 Okt 2009
Beiträge
265
Punkte für Reaktionen
0
Punkte
16
Hi

Mir ist gerade so die Idee gekommen, wie man aus dem Gastzugang einen "sicheren" freien Zugang bauen könnte, bei dem nicht mehr die Störerhaftung (oder wie sich das noch nennt) greift. Man könnte ja einfach den kompletten Gastzugang-Traffic über Tor routen. Für Freetz wären mit Tor und Privoxy (und iptables?) ja eigentlich alle nötigen Pakete da.
Bevor ich wild drauf los probiere (und ich habe davon zumindest noch nicht viel Ahnung): Hat das schon mal jemand probiert? Und evtl. auch zum Laufen gebracht? Also transparenter Proxy, der den kompletten Traffic (ausnahmslos) vom Gastzugang über Tor routet, den Traffic des "internen" Netzes aber unangetastet lässt?
Wenn ja: Wo gibt es Infos? ;)
 
Bevor ich wild drauf los probiere (und ich habe davon zumindest noch nicht viel Ahnung): Hat das schon mal jemand probiert? Und evtl. auch zum Laufen gebracht? Also transparenter Proxy, der den kompletten Traffic (ausnahmslos) vom Gastzugang über Tor routet, den Traffic des "internen" Netzes aber unangetastet lässt?
Es geht auch ohne Tor und privoxy auf der Box. Es wird nur der dropbear (d. h. ein ssh-Client) und ein kostenloser shell-account, der seinen ausgehenden Traffic durch das Tor-Netzwerk leitet benötigt. Z. B.:
Code:
Outgoing TCP connections are allowed and are proxied through the Tor network.
In der Box wird ein socks-proxy mit der Gast-Zugang-IP-Adresse eingetragen. Z. B.:
Code:
ssh -f -n -N -D 192.168.179.1:54321 -oPort=443 <shell-user>@<shell-account.xyz.net>
Mit iptables in der PREROUTING chain für dport 80 ein DNAT (oder REDIRECT) auf 192.168.179.1:54321 machen. Den restlichen Ausgang/Durchgang (FORWARD chain) mit iptables blocken. Mit "www.wieistmeineip.de/" testen.
 
Ich habe jetzt mal ein freetz-Image erstellt, das sowohl privoxy und Tor enthält, als auch Dropbear und OpenSSH. Zum Testen. Leider kann ich keinen der Services starten. Dropbear, Privoxy und Tor geben beim Start nur die tolle Meldung "failed" aus. OpenSSH meckert, dass ich doch bitte die keyutils mit einbinden solle, damit es die nötigen Schlüssel erstellen kann und startet dann auch nicht. Die keyutils sind aber mit eingebunden...

Ich bin noch Anfänger, was freetz angeht - habe ich irgendwo einen ganz wichtigen Punkt übersehen?

Ach ja, Router: Fritz!Box 7390 international (Australia Edition), Firmware 84.05.22, Freetz-Trunk.
 
Ich habe jetzt mal ein freetz-Image erstellt, das sowohl privoxy und Tor enthält, als auch Dropbear und OpenSSH.
Warum dropbear _und_ OpenSSH? Du brauchst nicht beide. Und wenn Du es mit privoxy und Tor auf deiner Box machen willst, dann brauchst Du weder dropbear noch OpenSSH (als ssh-client).
Zum Testen. Leider kann ich keinen der Services starten. Dropbear, Privoxy und Tor geben beim Start nur die tolle Meldung "failed" aus. OpenSSH meckert, dass ich doch bitte die keyutils mit einbinden solle, damit es die nötigen Schlüssel erstellen kann und startet dann auch nicht. Die keyutils sind aber mit eingebunden...
Und wenn Du es mit einem externen shell-Account machen willst, dann brauchst Du nur den ssh-Client. Warum willst Du dann einen sshd-Server (dropbear oder OpenSSH) auf deiner Box starten?
 
Auf der 7270 habe ich vor längerer Zeit beide Pakete von Hand gestartet. Das hat mit der Polipo-Konfiguration unten auch funktioniert.
Code:
./tor &
./polipo -c polipo.cfg &

Bzgl. des Gast-Wlans und IPTABLES würde ich gerne die folgenden Regeln zur Diskussion stellen. ( Man möchte ja dazulernen ;) )
Mit den Regeln sollen alle Anfragen, die nicht Port80 zum Ziel haben, abgewiesen werden. Alle Anfragen an Port80 sollen an den Polipo-Proxy-Port8118 weitergeleitet werden.

Code:
iptables -A INPUT -s 192.168.0.0/24 -p all -i guest -- ! --dport 80 -j REJECT
iptables -t nat -A PREROUTING -p all -i guest --dport 80 -j REDIRECT --to 8118

polipo.cfg:
Code:
proxyAddress = "0.0.0.0"
proxyPort = 8118

allowedClients = 192.168.0.0/24
allowedPorts = 1-65535


proxyName = "localhost"

# Uncomment this if there's only one user using this instance of Polipo:

cacheIsShared = false


socksParentProxy = "localhost:9050"
socksProxyType = socks5


chunkHighMark = 67108864


diskCacheRoot = ""


localDocumentRoot = ""


disableLocalInterface = true
disableConfiguration = true

dnsUseGethostbyname = yes
disableVia = true

censoredHeaders = from,accept-language,x-pad,link
censorReferer = maybe

maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
tunnelAllowedPorts = 1-65535
 
Mit den Regeln sollen alle Anfragen, die nicht Port80 zum Ziel haben, abgewiesen werden. Alle Anfragen an Port80 sollen an den Polipo-Proxy-Port8118 weitergeleitet werden.
Code:
iptables -A INPUT -s 192.168.0.0/24 -p all -i guest -- ! --dport 80 -j REJECT
Du meinst doch Port 80 im Internet und nicht Port 80 auf der Box, oder? Wenn ja, dann ist die FORWARD chain zuständig und nicht die INPUT chain.
 
Warum dropbear _und_ OpenSSH? Du brauchst nicht beide. Und wenn Du es mit privoxy und Tor auf deiner Box machen willst, dann brauchst Du weder dropbear noch OpenSSH (als ssh-client).

Und wenn Du es mit einem externen shell-Account machen willst, dann brauchst Du nur den ssh-Client. Warum willst Du dann einen sshd-Server (dropbear oder OpenSSH) auf deiner Box starten?

Hi

Wie gesagt, das war einfach mal zum Testen. Wollte mir die Möglichkeiten mal anschauen, hab mit Freetz vorher noch nie gearbeitet. So lange ich keinen Dienst starten kann, ist es aber ja relativ egal, WELCHEN Dienst ich installiert habe ;)

Inzwischen habe ich rausgefunden (via Telnet die Befehle mal selbst ausgeführt) dass zwar alle Binaries verlinkt werden, aber beim Aufruf die Meldung erscheint, dass sie nicht gefunden worden sind. Dabei hab ich dann weiter probiert und festgestellt, dass genau DIE Dienste nicht gehen, die ich nach extern verlagert habe. Gefunden werden sie - wenn man den USB-Stick nicht dran hat, bietet Freetz die Dienste ja gar nicht an. Aber ausführen geht nicht. Alle Dienste, die nicht ausgelagert sind, funktionieren dagegen. Und sobald ich einen Dienst von extern nach intern verlagere, scheint er plötzlich zu gehen. Nur ist der Flashspeicher der Box ja nun nicht gerade in großen Teilen frei ;) Wie bekomme ich also Dienste im external zum Laufen bzw. warum laufen sie nicht?
 
Zuletzt bearbeitet:
@sf3978: Danke, ja Port 80 extern ist gemeint.
@cuco88: Das "External"-Problem hatte ich mit dem Trunk9000 mit dem MiniDLNA-Paket ebenfalls beobachtet.
 
Hast du das Problem irgendwie umgehen können? Oder so lange gepuzzelt, bis alles, was du wolltest, in den Flash passte? Ich kann es mit OpenSSH, Dropbear, Tor und Privoxy reproduzieren - also alle Pakete, mit denen ich es ausprobiert habe ^^
 
Ich kann es mit OpenSSH, Dropbear, Tor und Privoxy reproduzieren - ...
Evtl. kannst Du, nicht benötigte Funktionen/Dienste mit Freetz removen. Und/oder binaries (only) ohne die external-Funktion aus Freetz, auf den Stick auslagern. D. h., die binaries (only) nicht in das Freetz-Image aufnehmen, sondern mit make <binary>-precompiled kompilieren. Symlinks zu diesen binaries kannst Du im Build-System erstellen und ins Freetz-Image aufnehmen. Ich mache das auch so, und es funktioniert.
 
*hust* für einen Freetz-Neuling wie mich klingt das nach: ok, ich räume doch lieber den Flash frei ;) Sorry, aber das ist leider für mich noch eine Stufe zu hoch, da muss ich glaube ich erst mehr Erfahrung sammeln. Wie groß ist denn die Wahrscheinlichkeit, dass external mit kommenden Freetz-Versionen (wieder?) geht?
 
Die Fw habe ich nur zu Testzwecken gebaut und dafür Platz geschaffen.
Bzgl. External habe ich mal ein Ticket eröffnet.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.