[Freifunk Franken] Splashpagetest aktiv

Christian Berger casandro_lion at web.de
Fr Aug 16 18:20:23 CEST 2013


Am 16.08.2013 12:11, schrieb delphiN:
> Eine kurze Dokumentation wäre tatsächlich klasse. Dann könnte man das
> Ganze auf auf einem anderen Gateway einrichten auch wenn der Christian
> unerwartet vom Blitz getroffen werden sollte:-)

Ich denke zwar, dass das die unwahrscheinlichste Todesursache bei mir 
ist, trotzdem hier mal die Doku in hoffentlich verständlich.

Also hier ist der relevante Teil der squid.conf:
#Das hier ist fuer die Splash page

#allem was nicht ein Browser ist den Durchgang erlauben
acl brs browser Mozilla
http_access allow !brs

#Das hier definiert eine Datenbank gegen die Nutzer abgeglichen werden, 
da steht quasi für jede IP-Adresse drin, ob das freigeschaltet ist oder 
nicht. Nach 86400 Sekunden wird der Eintrag rausgeworfen
external_acl_type session ttl=2 concurrency=100 %SRC 
/usr/lib/squid3/squid_session -a -t 86400 -b /var/lib/squid/session.db
acl session_login external session LOGIN
acl session_is_active external session

#URL zum Einloggen
acl clicked_login_url url_regex -i 
http://freifunkfranken.github.io/landingpage-freifunkfranken/FreifunkFrankenAccess.html
#Wenn die URL zum einloggen verwendet wurde, einloggen
http_access allow clicked_login_url session_login
#Immer Zugriff zu Freifunk Franken erlauben
acl freifunk_franken_url url_regex -i freifunk
http_access allow freifunk_franken_url
#sonst
http_access deny !session_is_active
#URL der Landingpage
deny_info http://freifunkfranken.github.io/landingpage-freifunkfranken/ 
session_is_active


Also grob gesagt funktioniert das so. Es wird in einer Datenbank 
nachgeschaut, ob der Nutzer schon "eingeloggt" ist. Wenn nein, dann wird 
er auf die URL in deny_info umgeleitet.
Auf alle URLs die "freifunk" im Namen haben, kann man immer zugreifen, 
deshalb kann auch die Splashpage geladen werden.
Wenn der Nutzer auf die URL 
http://freifunkfranken.github.io/landingpage-freifunkfranken/FreifunkFrankenAccess.html 
geht, wird er in die Datenbank geschrieben und somit für 86400 Sekunden 
freigeschaltet. Es kann sein, dass diese Freischaltung evtl. 2 Sekunden 
lang noch nicht geht. (ttl-Parameter, der verhindert dass für jede 
Anfrage die Datenbank konsultiert werden muss)



Mehr Informationen über die Mailingliste franken