Projekt Wifidog: Unterschied zwischen den Versionen
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{team | {{team | ||
|description=Weiterentwicklung und Integration des offenen WLAN Portals | |description=Weiterentwicklung und Integration des offenen WLAN Portals | ||
− | |nextMeeting= | + | |nextMeeting= |
|members=[[Benutzer:Ap46rene|Rene E.]]<br>[[user:MathiasMahnke|MathiasMahnke]]<br>[[Benutzer:Christianw|Christianw]]<br>[[Benutzer:Age| Henning]]<br>[[Benutzer:Moh|Moh]]<br>[[Benutzer:Christoph|Christoph]] | |members=[[Benutzer:Ap46rene|Rene E.]]<br>[[user:MathiasMahnke|MathiasMahnke]]<br>[[Benutzer:Christianw|Christianw]]<br>[[Benutzer:Age| Henning]]<br>[[Benutzer:Moh|Moh]]<br>[[Benutzer:Christoph|Christoph]] | ||
|kontakt=[https://list.opennet-initiative.de/mailman/listinfo/crew Crew Mailingliste] | |kontakt=[https://list.opennet-initiative.de/mailman/listinfo/crew Crew Mailingliste] | ||
|logo=Wifidog logo.png | |logo=Wifidog logo.png | ||
+ | }} | ||
+ | |||
+ | {{hinweis | ||
+ | |In neueren Firmwareversionen wird stattdessen [[Nodogsplash]] verwendet | ||
}} | }} | ||
Zeile 10: | Zeile 14: | ||
Um einen Gastzugang mit Anmeldung zum Opennet zu realisieren, haben wir nach einer vorhandenen Open Source Lösung gesucht. Wifidog bietet sich als sogenanntes Captive Portal an. Mehr unter http://dev.wifidog.org/ | Um einen Gastzugang mit Anmeldung zum Opennet zu realisieren, haben wir nach einer vorhandenen Open Source Lösung gesucht. Wifidog bietet sich als sogenanntes Captive Portal an. Mehr unter http://dev.wifidog.org/ | ||
− | Übersicht über Wifidog-Nodes: http://inez. | + | Übersicht über Wifidog-Nodes: http://inez.opennet-initiative.de/node_list.php |
== Aufbau == | == Aufbau == | ||
Zeile 21: | Zeile 25: | ||
=== OpenWrt AP (Wifidog Gateway) === | === OpenWrt AP (Wifidog Gateway) === | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Einrichtung auf Opennet AP siehe unten. | |
− | + | ||
− | === | + | === Debian/Ubuntu Server (Wifidog Portal) === |
Das Vorgehen ist sehr gut unter http://dev.wifidog.org/wiki/doc/install/ubuntu/auth-server beschrieben, hier die wichtigsten Schritte zusammengefasst: | Das Vorgehen ist sehr gut unter http://dev.wifidog.org/wiki/doc/install/ubuntu/auth-server beschrieben, hier die wichtigsten Schritte zusammengefasst: | ||
− | |||
====Vorbereitungen==== | ====Vorbereitungen==== | ||
Zeile 64: | Zeile 43: | ||
sudo apt-get install language-pack-en-base | sudo apt-get install language-pack-en-base | ||
sudo apt-get install language-pack-de-base | sudo apt-get install language-pack-de-base | ||
+ | |||
+ | ACHTUNG: Da wifidog-auth besonders lange Variablennamen verwendet, muss die [http://www.hardened-php.net/suhosin/index.html suhosin]-config angepasst werden: | ||
+ | sudo vi /etc/php5/apache2/conf.d/suhosin.ini | ||
+ | -> add: suhosin.post.max_name_length = 100 | ||
+ | -> add: suhosin.request.max_varname_length = 100 | ||
Installation des Versionsmanagementsystems (wenn noch nicht vorhanden): | Installation des Versionsmanagementsystems (wenn noch nicht vorhanden): | ||
Zeile 80: | Zeile 64: | ||
''Hinweis: Es ist möglich, dass ein Mirror nicht mehr existiert - dann gegen einen funktionierenden austauschen.'' | ''Hinweis: Es ist möglich, dass ein Mirror nicht mehr existiert - dann gegen einen funktionierenden austauschen.'' | ||
− | |||
====Installation + Konfiguration (Shell)==== | ====Installation + Konfiguration (Shell)==== | ||
Zeile 167: | Zeile 150: | ||
inez:/etc/rsyslog.d# | inez:/etc/rsyslog.d# | ||
== Aktueller Projektstand == | == Aktueller Projektstand == | ||
− | + | ||
− | + | Inzwischen ist Wifidog in unsere aktuelle Opennet Firmware integriert. Die Konfiguration wird weiter unten beschrieben. | |
<br clear="all"/> | <br clear="all"/> | ||
+ | |||
== Firmware Implementierung und Netzwerk-Integration == | == Firmware Implementierung und Netzwerk-Integration == | ||
+ | |||
+ | {{warnung | ||
+ | |Die Wifidog Funktion auf Access Points steht nicht über User-VPNs zur Verfügung die über UGW-Server laufen. Daher ggf. die Wahl der Gateways auf den Wifidog-APs manuell anpassen. Ursache ist fehlende direkte Erreichbarkeit von inez.on - benötigt für die DHCP-Client-Anfragen. | ||
+ | }} | ||
+ | |||
Die Wifidog-Implementierung ist mittlerweile Teil der Opennet-Firmware | Die Wifidog-Implementierung ist mittlerweile Teil der Opennet-Firmware | ||
− | * die aktuelle Opennet Firmware | + | * die aktuelle Opennet Firmware unterstützt ab Version 0.3-4 die dezentrale Wifidog-Lösung |
* die 'alte' Opennet-Firmware Version 0.9-on5-0.11ipkg-15 unterstützt ebenso die dezentrale Wifidog-Lösung (diese Firmware sollte nur auf alter Hardware eingesetzt werden) | * die 'alte' Opennet-Firmware Version 0.9-on5-0.11ipkg-15 unterstützt ebenso die dezentrale Wifidog-Lösung (diese Firmware sollte nur auf alter Hardware eingesetzt werden) | ||
Zeile 203: | Zeile 192: | ||
Beim dezentralen Wifidog-Konzept läuft der WifiDog-Gateway direkt auf dem AP. Der Tunnel wird mit einem Zertifikat aufgebaut, welches den Common-Name nach dem Schema X.Y.aps.on hat. | Beim dezentralen Wifidog-Konzept läuft der WifiDog-Gateway direkt auf dem AP. Der Tunnel wird mit einem Zertifikat aufgebaut, welches den Common-Name nach dem Schema X.Y.aps.on hat. | ||
Der Traffic wird - nach erfolgreicher Authentifizierung - direkt über den Opennet-VPN-Tunnel und den Opennet-Gateway ins Internet geroutet. | Der Traffic wird - nach erfolgreicher Authentifizierung - direkt über den Opennet-VPN-Tunnel und den Opennet-Gateway ins Internet geroutet. | ||
+ | |||
== Firmware-Konfiguration für Wifidog == | == Firmware-Konfiguration für Wifidog == | ||
=== neue Opennet-Firmware === | === neue Opennet-Firmware === | ||
− | Dokumentiert unter [[ | + | Dokumentiert unter [[Opennet_Firmware_Konfiguration#Wifidog-Konfiguration]] |
=== alte Opennet-Firmware === | === alte Opennet-Firmware === | ||
Die alte Opennet-Firmware sollte nur noch für alte Geräte genutzt werden (bspw. Linksys WRT54G), bei denen eine Nutzung der neuen Firmware nicht sinnvoll erscheint. Ab Version 0.11ipkg-15 unterstützt die alte Firmware Wifidog, dieses wird aktiviert, indem die Wireless-Schnittstelle in den Access-Point Modus gesetzt wird. Weiterhin ist wichtig, der Schnittstelle eine IP-Adresse im richtigen Bereich zu geben. | Die alte Opennet-Firmware sollte nur noch für alte Geräte genutzt werden (bspw. Linksys WRT54G), bei denen eine Nutzung der neuen Firmware nicht sinnvoll erscheint. Ab Version 0.11ipkg-15 unterstützt die alte Firmware Wifidog, dieses wird aktiviert, indem die Wireless-Schnittstelle in den Access-Point Modus gesetzt wird. Weiterhin ist wichtig, der Schnittstelle eine IP-Adresse im richtigen Bereich zu geben. | ||
Zeile 213: | Zeile 203: | ||
* VPN-Zertifikat installieren, AP neu starten | * VPN-Zertifikat installieren, AP neu starten | ||
Der Access-Point aktiviert nun Wifidog auf der WLAN-Schnittstelle mit der Gateway-ID "APX.Y". Diese muss unter inez.on-i.de noch nach Wunsch konfiguriert werden. | Der Access-Point aktiviert nun Wifidog auf der WLAN-Schnittstelle mit der Gateway-ID "APX.Y". Diese muss unter inez.on-i.de noch nach Wunsch konfiguriert werden. | ||
+ | |||
+ | == Logo == | ||
+ | |||
+ | Stand 2013 wurden alle freien Zugänge auf die einheitliche SSID "join.opennet-initiative.de" getauft und ein entsprechendes Logo und Aufkleber entwickelt. Die Quelle findet sich unter [[Opennet Logo]]. | ||
+ | |||
+ | [[Datei:Opennet wlan aufkleber logo.png|thumb|left|Aufkleber]] | ||
[[Kategorie:Firmware]] | [[Kategorie:Firmware]] |
Aktuelle Version vom 6. Januar 2017, 20:55 Uhr
Team |
![]() Projekt Wifidog |
Treffen: |
Weiterentwicklung und Integration des offenen WLAN Portals |
Mitglieder: Rene E. MathiasMahnke Christianw Henning Moh Christoph |
Kontakt: Crew Mailingliste |
In neueren Firmwareversionen wird stattdessen Nodogsplash verwendet |
Inhaltsverzeichnis |
[Bearbeiten] Einleitung
Um einen Gastzugang mit Anmeldung zum Opennet zu realisieren, haben wir nach einer vorhandenen Open Source Lösung gesucht. Wifidog bietet sich als sogenanntes Captive Portal an. Mehr unter http://dev.wifidog.org/
Übersicht über Wifidog-Nodes: http://inez.opennet-initiative.de/node_list.php
[Bearbeiten] Aufbau
Wifidog besteht aus den Komponenten:
- Gateway -- hier die Opennet Access Points
- Portal (Auth-Server) -- ein zentraler Server für die Verwaltung
[Bearbeiten] Installation
[Bearbeiten] OpenWrt AP (Wifidog Gateway)
Einrichtung auf Opennet AP siehe unten.
[Bearbeiten] Debian/Ubuntu Server (Wifidog Portal)
Das Vorgehen ist sehr gut unter http://dev.wifidog.org/wiki/doc/install/ubuntu/auth-server beschrieben, hier die wichtigsten Schritte zusammengefasst:
[Bearbeiten] Vorbereitungen
Installation Webserver, PHP sowie Datenbank:
sudo apt-get update sudo apt-get install apache2 php5 sudo apt-get install postgresql sudo apt-get install php5-cgi sudo apt-get install php5-mhash php5-pgsql php-pear php5-xmlrpc php5-curl php5-mcrypt sudo apt-get install language-pack-en-base sudo apt-get install language-pack-de-base
ACHTUNG: Da wifidog-auth besonders lange Variablennamen verwendet, muss die suhosin-config angepasst werden:
sudo vi /etc/php5/apache2/conf.d/suhosin.ini -> add: suhosin.post.max_name_length = 100 -> add: suhosin.request.max_varname_length = 100
Installation des Versionsmanagementsystems (wenn noch nicht vorhanden):
sudo apt-get install subversion
Installation einer zusätzlichen PHP-Bibliothek:
sudo pear install XML_RPC cd /tmp wget http://downloads.sourceforge.net/project/phlickr/Phlickr/0.2.7/Phlickr-0.2.7.tgz sudo pear install Phlickr-0.2.7.tgz rm Phlickr-0.2.7.tgz
Installation der Graphic-Libraries für die Statistik-Pages:
sudo aptitude install php5-gd sudo pear install --alldeps Image_Graph-0.8.0 Image_Canvas-0.3.0
Hinweis: Es ist möglich, dass ein Mirror nicht mehr existiert - dann gegen einen funktionierenden austauschen.
[Bearbeiten] Installation + Konfiguration (Shell)
Installation wifidog-AuthServer und Konfiguration im Webserver:
svn checkout https://dev.wifidog.org/svn/trunk/wifidog-auth sudo mv wifidog-auth/ /var/www/ sudo nano /etc/apache2/sites-available/default DocumentRoot /var/www/ -> DocumentRoot /var/www/wifidog-auth/wifidog sudo /etc/init.d/apache2 restart
Spracheinstellungen:
sudo nano /var/www/wifidog-auth/wifidog/config.php define('DEFAULT_LANG', 'en_US');
Mailserver installieren:
sudo apt-get install postfix
Datenbank anlegen:
sudo su - postgres createuser wifidog --pwprompt createdb wifidog --encoding=UTF-8 --owner=wifidog
Alle Fragen mit 'n' beantworten.
Das initiale Passwort für die Installation erhält man mittels
cat /tmp/dog_cookie.txt
(benötigt für Installation + Konfiguration (Webinterface))
[Bearbeiten] Installation + Konfiguration (Webinterface)
http://<server>/install.php (Login mit Username leer, Passwort siehe dog_coockie.txt)
Den Instruktionen folgen.
Hinweis: Es sollten alle rot markiertn Komponenten installiert werden, auch wenn die Beschreibung suggeriert dass diese optional sind. Wir hatten Probleme mit phpmailer - hier war der in den Quellen hinterlegte Link nicht mehr aktuell, wir haben manuell angepasst.
[Bearbeiten] Aufräumen (Shell)
Entfernen des Installationsscipts:
cd /var/www/wifidog-auth/wifidog mv install.php ../install.php
Nun ist der Portal-Server über http://<server>/ erreichbar.
[Bearbeiten] DHCP-Server
#> aptitude install dhcp3-server
Konfiguration (/etc/dhcp3/dhcpd.conf):
# option definitions common to all supported networks... option domain-name "free.on-i.de"; # every router has the 10.3.0.1 as a virtual address for DNS and as the Gateway option domain-name-servers 10.3.0.1; # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. subnet 192.168.0.0 netmask 255.255.0.0 { } # This is the DHCP-subnet, which is common for all Wifidog-clients subnet 10.3.0.0 netmask 255.255.0.0 { range 10.3.100.1 10.3.200.254; # every router has the 10.3.0.1 as a virtual address for DNS and as the Gateway option routers 10.3.0.1; }
für das dynamische Anlegen der Firwall-rules wird der syslog-deamon genutzt (vgl. dazu das Schema des DHCP-Forwarding). Konfiguration:
inez:/etc/rsyslog.d# cat dnat_dhcp.conf $template forward_msg,"%msg%" :programname, isequal, "dhcpd" ^/etc/rsyslog.d/dnat_dhcp.sh;forward_msg inez:/etc/rsyslog.d# cat dnat_dhcp.sh #!/bin/sh ID=$(echo $1 | awk 'BEGIN{FS="[ \.]"} $1 == "DHCPDISCOVER" && $(NF-4) == "via" {print $(NF-1)"."$NF}') if [ -z "$ID" ]; then exit; fi if [ -z "$(iptables -L OUTPUT -t nat | awk '$1 == "DNAT" && $5 == "10.3.'$ID'" && $NF == "to:192.168.'$ID'"')" ]; then iptables -A OUTPUT -t nat -d 10.3.$ID -j DNAT -p udp --dport 67 --sport 67 --to-destination 192.168.$ID fi inez:/etc/rsyslog.d#
[Bearbeiten] Aktueller Projektstand
Inzwischen ist Wifidog in unsere aktuelle Opennet Firmware integriert. Die Konfiguration wird weiter unten beschrieben.
[Bearbeiten] Firmware Implementierung und Netzwerk-Integration
Die Wifidog Funktion auf Access Points steht nicht über User-VPNs zur Verfügung die über UGW-Server laufen. Daher ggf. die Wahl der Gateways auf den Wifidog-APs manuell anpassen. Ursache ist fehlende direkte Erreichbarkeit von inez.on - benötigt für die DHCP-Client-Anfragen. |
Die Wifidog-Implementierung ist mittlerweile Teil der Opennet-Firmware
- die aktuelle Opennet Firmware unterstützt ab Version 0.3-4 die dezentrale Wifidog-Lösung
- die 'alte' Opennet-Firmware Version 0.9-on5-0.11ipkg-15 unterstützt ebenso die dezentrale Wifidog-Lösung (diese Firmware sollte nur auf alter Hardware eingesetzt werden)
[Bearbeiten] DHCP-Ablauf der Wifidog-Implementierung
Features:
- zentrale DHCP-Verwaltung
- DHCP-Adressvergabe nur, wenn Tunnel aktiv ist
Die DHCP-Verteilung für alle Wifidog-Clients erfolgt zentral. Dies ist wichtig, da nur so Features wie Roaming oder zentrale Trafficüberwachung realisierbar sind. Ausserdem können effektiv Überschneidungen der IP-Bereiche verschiedener Access-Points vermieden werden.
Der zentrale DHCP-Server ist auf inez.on-i.de / 102.168.10.3 installiert und liefert eine Adresse aus dem Netzwerk 10.3.0.0/16. Jeder AccessPoint APX.Y hat im entsprechend für Wifidog freigegebenen Netzwerk ("FREE") die eindeutige Adresse 10.3.X.Y. Da der DHCP-Server an alle Clients den gleichen DNS-Server und den gleichen Gateway liefert, haben alle AccessPoints auf diesem Interface zusätzlich die Adresse 10.3.0.1.
Eine Anfrage per DHCP wird mit dem dhcp-forwarder an das Ende des aktiven VPN-Tunnels geschickt (dhcp-fwd zu 10.1.0.1). So wird diese Anfrage nur zugestellt und beantwortet, wenn der Tunnel aufgebaut ist und funktioniert. Ist der Tunnel nicht aktiv, bekommt der Client keine Adresse und verbindet sich so nicht mit dem Netzwerk.
Auf allen Gateways wird eine in 10.1.0.1 eingehende DHCP-Anfrage an die Opennet-Adresse von inez weitergeleitet (192.168.10.3). Üblicherweise würde nun der DHCP-Server an die Quelladresse antworten, also an 10.3.X.Y. Diese ist aber nicht direkt im Opennet erreichbar, darum wird bereits bei Eingehen der DHCP-Anfrage auf inez eine iptables-DNAT-rule erstellt, die das ausgehende Paket statt an 10.3.X.Y an 192.168.X.Y weiterleitet.
Auf dem APX.Y geht nun die Antwort von inez ein und wird an den Client weitergereicht.
[Bearbeiten] dezentrales Wifidog-Konzept
[Bearbeiten] Vorteile
- jeder AP ist ein Wifidog-Node, kann getrennt konfiguriert werden
- gleichzeitiger Betrieb als normaler User-AP möglich
- Zugang für Wifidog-Nutzer direkt über Gateway-VPN-tunnel
[Bearbeiten] Nachteile
- jeder AP ist ein Wifidog-Node, muss getrennt konfiguriert werden, hoher Verwaltungsaufwand
- spezifische Firmware notwendig, Speicherbedarf größer
- Nutzerverwaltung (aussperren, freigeben) nicht für alle Nodes möglich
Beim dezentralen Wifidog-Konzept läuft der WifiDog-Gateway direkt auf dem AP. Der Tunnel wird mit einem Zertifikat aufgebaut, welches den Common-Name nach dem Schema X.Y.aps.on hat. Der Traffic wird - nach erfolgreicher Authentifizierung - direkt über den Opennet-VPN-Tunnel und den Opennet-Gateway ins Internet geroutet.
[Bearbeiten] Firmware-Konfiguration für Wifidog
[Bearbeiten] neue Opennet-Firmware
Dokumentiert unter Opennet_Firmware_Konfiguration#Wifidog-Konfiguration
[Bearbeiten] alte Opennet-Firmware
Die alte Opennet-Firmware sollte nur noch für alte Geräte genutzt werden (bspw. Linksys WRT54G), bei denen eine Nutzung der neuen Firmware nicht sinnvoll erscheint. Ab Version 0.11ipkg-15 unterstützt die alte Firmware Wifidog, dieses wird aktiviert, indem die Wireless-Schnittstelle in den Access-Point Modus gesetzt wird. Weiterhin ist wichtig, der Schnittstelle eine IP-Adresse im richtigen Bereich zu geben.
- prüfe ob der AP per LAN oder WAN mit Opennet verbunden ist - sonst sägst Du an dem Ast auf dem Du sitzt
- im OpenWRT-Admin-Bereich (Netzwerk) die Wireless-Schnittstelle auf "Access Point" konfigurieren (save, apply)
- im Opennet-WIFI Bereich der Wireless-Schnittstelle eine zur Opennet-ID (X.Y) passende IP-Adresse der Form 10.3.X.Y geben
- VPN-Zertifikat installieren, AP neu starten
Der Access-Point aktiviert nun Wifidog auf der WLAN-Schnittstelle mit der Gateway-ID "APX.Y". Diese muss unter inez.on-i.de noch nach Wunsch konfiguriert werden.
[Bearbeiten] Logo
Stand 2013 wurden alle freien Zugänge auf die einheitliche SSID "join.opennet-initiative.de" getauft und ein entsprechendes Logo und Aufkleber entwickelt. Die Quelle findet sich unter Opennet Logo.