3270 v3 Freetz und das Gast-WLAN

_chrisu

Neuer User
Mitglied seit
15 Feb 2011
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich habe folgendes Szenario, welches ich gerne umsetzten würde.
Ich hab eine 3270 v3 Box, welche mit dem aktuellen Freetz devel-trunk läuft - soweit auch Problemlos. Ich musste den devel nehmen, da ich die Funktion des Gast-WLAN nutzen wollte.
Folgendes möchte ich nun umsetzen:
1. Gast WLAN, welches über Proxy läuft, um bei Bedarf Inhalte zu filtern
2. erste Seite soll eine Art Anmeldeseite sein auf der die Nutzungsbedingungen abgenickt werden müssen
3. Gastzugang schaltet sich zu vorgegeben Zeiten ab

Bei der Umsetzung habe ich jedoch ein paar kleine Problem.

Um Punkt 1. zu erfüllen habe ich Privoxy mit in mein Image gebaut und den Transparenten-Proxy laut Anleitung hier (http://freetz.org/wiki/packages/privoxy) konfiguriert.
Die iptables Rule habe ich folgendermasen abgeändert:
Code:
iptables -t nat -A PREROUTING -p tcp -i [B]guest[/B] --dport 80 -j REDIRECT --to 8118
Privoxy ist auf Port 8118 von IP 0.0.0.0 gebunden ...
Nach dem ich diese Funktion umgesetzt habe, habe ich das ganze getestet und war auch der Meinung es funktioniert.

Weiter zu Punkt 2. meine bisherigen Recherchen haben ergeben dass eine sogenannte AUP (Acceptable use policy) - wie man das ganze Vorhaben wohl nennen würde - aktuell nicht mit freetz umsetzbar ist ... das nehme ich auch so hin - aber vielleicht gibt es ja mittlerweile neue Erkenntnisse ?! ;)

Für Punkt 3. habe ich mir überlegt einfach mittels eines Eintrages in der crontab das interface down bzw. up zu setzten. Bei einem einfachen Versuch funktioniert das ganze auch ...

Jetzt habe ich das ganze mal einen Tag produktiv laufen lassen, und es haben sich folgende Probleme ergeben:

- ich habe auf einmal ein zweites Interface namens guest1
- surfen über den Proxy endet mit der Nachricht "Invalid Header" im Browser
Nach einer Zeit ist auch surfen über LAN nicht mehr möglich ...

Habe ich prinzipiell einen Denkfehler in der ganzen Geschichte? Wie würdet ihr diese Anforderungen umsetzten?

Hier das ganze nochmal Schematisch ;)

Gäste-WLAN -> Interface guest -> Privoxy -> Filter -> Internet
_______________________^up/down per cron

Gruß
_chrisu
 
Wenn auch schon über ein Jahr her, aber hat die Konfiguration bei dir mit dem transparenten Proxy tatsächlich funktioniert?! Meine rc.custom enthält folgende Befehle:

Code:
modprobe ip_tables
modprobe iptable_filter
modprobe x_tables
modprobe xt_tcpudp
modprobe ipt_REDIRECT
modprobe ip_nat
modprobe iptable_nat
iptables -t nat -A PREROUTING -p tcp -i guest1 --dport 80 -j REDIRECT --to 8118
iptables -t nat -A PREROUTING -p tcp -i guest1 --dport 443 -j REDIRECT --to 8118

guest1 da bei mir nur der WLAN-Gastzugang verwendet wird.
Privoxy ist ebenfalls an 0.0.0.0:8118 gebunden. Beim Testen im Browser erhalte ich die Meldung, dass keine Verbindung hergestellt werden kann. Zufällig eine Idee woran das liegen kann?
 
Japp, die Einstellung ist gesetzt.
Es gibt zwei interface, guest und guest1, guest hat die lokale IP 192.168.179.1

Ich muss das mit dem Interface von mir oben richtigstellen.
Wenn ich den Iptables befehl für das Interface guest1 ausführe, interessiert sich der Proxy herzlich wenig dafür, ganz normales surfen ist möglich. Beim Aufruf mit dem Interface guest läuft der Seitenaufruf auf einen Timeout raus. Eben habe ich es noch mit dem Inteface "lan" versucht, und erhalte die Meldung "Invalid header received from client." Es scheint zumindest irgendwas mal zu machen..
 
Eben habe ich es noch mit dem Inteface "lan" versucht, und erhalte die Meldung "Invalid header received from client." Es scheint zumindest irgendwas mal zu machen..
Welche Box/Firmware/Freetz/iptables hast Du? Evtl. sind (noch) andere/zusätzliche Module als im Wiki aufgelistet, erforderlich.
 
Die Box ist eine 7270 v2,
Firmwareversion 54.04.88,
Freetz-Version freetz-1.2_rc2
Iptables v1.4.1.1
 
Um noch mal auf die config setting "accept-intercepted-requests 1" zu kommen, diese Einstellung wird aus der config gelöscht, sobald es eingetragen und privoxy neu gestartet wird. Das ist doch kein normales Verhalten? Oder hat es seinen Grund, weswegen folgende Zeile laut dem kleinen Tutorial zu privoxy noch zusätzlich in die rc.custom eingetragen werden soll?

Code:
[ -z "$(grep accept-intercepted-requests /var/mod/etc/privoxy/config)" ] && echo "accept-intercepted-requests 1" >> /var/mod/etc/privoxy/config

Ist der Pfad noch korrekt? Eine identische config Datei wird auch nach /mod/etc/privoxy/config geschrieben.

Code:
root@fritz:/var/mod/etc/privoxy# ls -al /mod/etc/privoxy/config
-rw-r--r--    1 root     root           380 Apr 10 22:36 /mod/etc/privoxy/config
root@fritz:/var/mod/etc/privoxy# ls -al /var/mod/etc/privoxy/config
-rw-r--r--    1 root     root           380 Apr 10 22:36 /var/mod/etc/privoxy/config
 
D. h., entgegen deiner Aussage, hast Du den Eintrag nicht so gemacht, dass dieser wirkt.

Das ist doch kein normales Verhalten?
Doch, das ist ein normales Verhalten für privoxy mit Freetz.
Oder hat es seinen Grund, weswegen folgende Zeile laut dem kleinen Tutorial zu privoxy noch zusätzlich in die rc.custom eingetragen werden soll?
Ja, es hat seinen Grund, warum das in die rc.custom eingetragen werden soll.

Wenn Du was Anderes willst, dann kannst Du das privoxy-Freetz-Paket vor dem "make menuconfig" bzw. "make", in deinem Build-System ändern.
 
Entgegen meiner Aussage steht diese Zeile in der rc.custom mit drin, jedoch auskommentiert. Aber wie sollte man prüfen, ob diese Zeile in der config mit drin steht, wenn diese gleich wieder entfernt wird?
Letztendlich macht es aber leider keinen Unterschied, es wird das selber Verhalten an den Tag gelegt und die requests laufen gegen einen timeout.

Aber warum die Zeile entfernt wird erschließt sich für mich trotzdem nicht so ganz. Die rc.custom wird vor dem Start von privoxy ausgeführt?

Noch irgendwelche Ideen was man ausprobieren könnte?

Grüße, Andreas
 
Entgegen meiner Aussage steht diese Zeile in der rc.custom mit drin, jedoch auskommentiert.
Auskommentiert ist doch OK. Oder was meinst Du mit "auskommentiert"?
Aber wie sollte man prüfen, ob diese Zeile in der config mit drin steht, ...
Mit
Code:
root@fritz:/var/mod/root# cat /var/mod/etc/privoxy/config | grep accept-intercepted
kannst Du das prüfen.
... wenn diese gleich wieder entfernt wird?
Wenn Du den Eintrag _zum richtigen Zeitpunkt_ (... wie im wiki beschrieben) machst, dann wird diese Zeile nicht entfernt.
Letztendlich macht es aber leider keinen Unterschied, es wird das selber Verhalten an den Tag gelegt und die requests laufen gegen einen timeout.
Wie hast Du das festgestellt?
Aber warum die Zeile entfernt wird erschließt sich für mich trotzdem nicht so ganz.
Weil Du den Eintrag dieser Zeile, zum falschen Zeitpunkt gemacht hast. Siehe auch den Inhalt der Scripte im privoxy-Paket.
Die rc.custom wird vor dem Start von privoxy ausgeführt?
privoxy sollte vor dem ausführen der rc.custom, gestartet sein. D. h., die Datei "/var/mod/etc/privoxy/config" muss vor dem ausführen der rc.custom schon existieren (vorhanden sein). Statt der rc.custom kannst Du auch die Konsole (... immer zum richtigen Zeitpunkt) benutzen.
 
Die rc.custom scheint dafür jedoch nicht geeignet zu sein. Habe jetzt noch mal alles neu rein kopiert und die Box neu gestartet.

Code:
modprobe ip_tables
modprobe iptable_filter
modprobe x_tables
modprobe xt_tcpudp
modprobe ipt_REDIRECT
modprobe ip_nat
modprobe iptable_nat
iptables -t nat -A PREROUTING -p tcp -i guest --dport 80 -j REDIRECT --to 8118
iptables -t nat -A PREROUTING -p tcp -i guest --dport 443 -j REDIRECT --to 8118
[ -z "$(grep accept-intercepted-requests /var/mod/etc/privoxy/config)" ] && echo "accept-intercepted-requests 1" >> /var/mod/etc/privoxy/config

Das man den Inhalt der Config mit
Code:
cat /var/mod/etc/privoxy/config | grep accept-intercepted
prüfen kann ist soweit schon klar gewesen, nur nach dem reboot steht da eben nichts mehr davon drin.

Dass es gegen einen Timeout läuft, erkenne ich wenn ich versuche eine Seite im Browser zu öffnen.
Code:
Fehler 118 (net::ERR_CONNECTION_TIMED_OUT): Zeitüberschreitung beim Ladevorgang.

Jetzt habe ich das ganze auch noch mal in der Console versucht, privoxy läuft, den schon oben beschriebenen Code über ein Script ausgeführt, der Eintrag ist in der Configdatei enthalten und es ist immer noch das selbe Ergebnis mit dem Timeout.
 
... , nur nach dem reboot steht da eben nichts mehr davon drin.
D. h., privoxy wird nach dem ausführen der rc.custom, gestartet. Startet der privoxy bei dir automatisch oder manuell oder ...? Hast Du den privoxy evtl. externalisiert?
..., den schon oben beschriebenen Code über _ein Script_ ausgeführt, ...
Evtl. (d. h. je nach Inhalt) hättest Du die rc.custom auch als Script, über die Konsole ausführen können (sh -x /tmp/flash/mod/rc.custom).
... und es ist immer noch das selbe Ergebnis mit dem Timeout.
Poste mal die evtl. anonymisierten Ausgaben von:
Code:
iptables -L -n -v -t nat
und von:
Code:
iptables -L -n -v
 
Ja, hätte auch die rc.custom ausführen können, stehen aber noch andere Sachen mit drin die, daher hab ich's lieber schnell ausgelagert.
Privoxy liegt im external und wird automatisch gestartet. Aber stimmt, habe ich nicht daran gedacht, dass es daher erst nach der rc.custom ausgeführt wird.

Eben noch mal das Script gestartet und versucht google aufzurufen, danach die 2 Befehle von dir eingegeben.

Code:
root@fritz:/var/mod/root# iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 6951 packets, 932K bytes)
 pkts bytes target     prot opt in     out     source               destination
    6   304 REDIRECT   tcp  --  guest  *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 8118
    6   304 REDIRECT   tcp  --  guest  *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 redir ports 8118

Chain POSTROUTING (policy ACCEPT 2560 packets, 155K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 455 packets, 32696 bytes)
 pkts bytes target     prot opt in     out     source               destination


Code:
root@fritz:/var/mod/root# iptables -L -n -v
Chain INPUT (policy ACCEPT 14606 packets, 3450K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 184K packets, 138M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 12108 packets, 4315K bytes)
 pkts bytes target     prot opt in     out     source               destination
 
Zuletzt bearbeitet:
Eben habe ich es noch mit dem Inteface "lan" versucht, und ...
Ich habe es bei mir, mit dem lan-Interface getestet und es funktioniert einwandfrei:
Code:
20  1200 DNAT       tcp  --  lan    *       192.168.xxx.0/24     0.0.0.0/0            tcp dpt:80 to:192.168.xxx.1:8118
 
Das mit dem lan Interface kann ich so halbwegs bestätigen. Aufrufe von Seiten die rein über http laufen funktionieren, werden auch entsprechend der Actions geblockt. Seiten die über Port 80 aufgerufen werden, dann aber über einen redirect auf 443 umgebogen werden scheitern immer noch. Als Beispiel google mal wieder. Ein Aufruf der Seite leitet einen auf die https Version weiter, und landet in einem timeout. Das wird aber vermutlich daran liegen, dass generell keine Seiten über den Port erreichbar sind.
Erstes Fazit, Port 80 gut, 443 schlecht ;) Ich denk mal dass ich da bei meinem vorherigen Post noch was falsch gemacht hatte. Dennoch brauche ich den proxy nur für das guest Interface..

OS ist ein Win7, Browser ist Chrome

Btw, ich bewundere deinen Einsatz hier.
 
Ein Aufruf der Seite leitet einen auf die https Version weiter, und landet in einem timeout. Das wird aber vermutlich daran liegen, dass generell keine Seiten über den Port erreichbar sind.
Erstes Fazit, Port 80 gut, 443 schlecht
Eine Erklärung warum HTTPS (d. h. hier Port 443) mit privoxy als "intercepting proxy" nicht funktioniert bzw. nicht funktionieren darf, siehe diesen Link:
Code:
http://serverfault.com/questions/167233/iptables-https-transparent-proxy-with-privoxy
 
Okay, das mit dem man in the middle macht sinn...Naja, ich werde es die Tage noch mal mit dem Gastzugang versuchen, die nötige Kenntnisse sollte ich jetzt ja haben.

Danke für deine Hilfe :)
 
Auch wenn schon älter:
Im Eingangspost unter Punkt 2 wurde nach einer Anmeldeseite gefragt ( Acceptable use policy ) gefragt. Geht das tatsächlich nicht ?
Versuche mich gerade in das Thema einzulesen aber alle Beiträge zu diese Thema die ich gesehen habe versanden oder werden OT.
 
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.