Zum Inhalt springen

Projekt Wifidog: Unterschied zwischen den Versionen

Aus Opennet
Inhalt gelöscht Inhalt hinzugefügt
Ap46rene (Diskussion | Beiträge)
→Nachteile: aktualisiert
MathiasMahnke (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(21 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=??.03.2011
|nextMeeting=
|members=[[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
}}
}}


== Einleitung ==
== 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/
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


== Aufbau ==
== Aufbau ==
Zeile 19: Zeile 25:


=== OpenWrt AP (Wifidog Gateway) ===
=== OpenWrt AP (Wifidog Gateway) ===
Zunächst müssen wir das Gateway-Plugin auf unserem AccessPoint installieren. Dazu wählen wir für unsere Firmware das passende Packet, in diesem Fall für WhiteRussianRC6:
ipkg install http://easynews.dl.sourceforge.net/sourceforge/wifidog/wifidog_1.1.3_beta6-1_mipsel_whiterussianRC6.ipk


Einrichtung auf Opennet AP siehe unten.
Jetzt muss noch die Konfiguration angepasst werden:
vi /etc/wifidog.conf


=== Debian/Ubuntu Server (Wifidog Portal) ===
Wir haben testweise gesetzt:

GatewayID oni1
ExternalInterface vlan1
GatewayInterface eth1
GatewayAddress 192.168.1.137
AuthServer {
Hostname inez.on-i.de
Path /
}

* Die '''GatewayID''' hilft später bei der Verwaltung mehrerer Knoten auf dem auth server.
* Als '''ExternalInterface''' muss das Interface konfiguriert werden, welches Verbindung zum Internet hat.
* Das '''GatewayInterface''' ist die Schnittstelle über welche sich Clients verbinden können, in unserem Fall über WLAN.
* Der '''Hostname''' gibt den Rechner an, auf dem der auth server läuft. '''Achtung:''' hier ist es wichtig keine Leerstelle hinter dem Namen zu haben!
* Der '''Path''' gibt den Pfad zum wifidog auth server home-Verzeichnis an. '''Achtung:''' auch hier darf keine Leerstelle hinter dem letzten Zeichen sein!


Die Konfiguration auf dem AccessPoint wäre damit abgeschlossen. Wenn auch der auth server richtig konfiguriert ist, sollte wifidog auf dem AP nun ohne Fehlermeldungen durchstarten:
/etc/init.d/S*wifidog start

=== Debain/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 62: 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 73: Zeile 59:
rm Phlickr-0.2.7.tgz
rm Phlickr-0.2.7.tgz


Installation der Graphic-Libraries für die Statistik-Pages:
''Hinweis: Es ist möglich, dass ein Mirror nicht mehr existiert - dann gegen einen funktionierenden austauschen.''
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.''


====Installation + Konfiguration (Shell)====
====Installation + Konfiguration (Shell)====
Zeile 108: Zeile 97:


(benötigt für [[#Installation_.2B_Konfiguration_.28Webinterface.29|Installation + Konfiguration (Webinterface)]])
(benötigt für [[#Installation_.2B_Konfiguration_.28Webinterface.29|Installation + Konfiguration (Webinterface)]])



====Installation + Konfiguration (Webinterface)====
====Installation + Konfiguration (Webinterface)====
Zeile 129: Zeile 117:
Nun ist der Portal-Server über http://<server>/ erreichbar.
Nun ist der Portal-Server über http://<server>/ erreichbar.


====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 [[Projekt_Wifidog#DHCP-Ablauf_der_Wifidog-Implementierung|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#
== Aktueller Projektstand ==
== Aktueller Projektstand ==
Die ursprüngliche Entwicklung von WifiDog ist leider eingeschlafen und seit nunmehr über einem Jahr wurde nichts mehr daran gemacht. Die Pakete sind teilweise noch aus 2007. Daher ist das WifiDogTeam im Moment am Überlegen, ob wir nicht auf ein anderes Captive Portal umsteigen. Angedacht war da z.B. [http://coova.org/CoovaChilli CoovaChili].
In den nächsten Wochen wollen wir uns Treffen und über solche Dinge entscheiden. Angestrebt wird eine einfache Lösung, die auch in unserer neuen Firmware integriert ist. Hier wäre es schön, wenn sich das Team Firmware darum kümmern könnte. Wir würden dann demnächst unsere gewünschten Anforderungen mitteilen. Wir möchten unseren ersten Portalknoten testweise am Doberaner Platz installieren. Bewährt er sich dort wäre es auch denkbar eine Pressemitteilung zu schalten, dass am Dobi unser Knoten für die Allgemeinheit nutzbar ist. Eventuell ließen sich so auch neue Interessenten für das Projekt oder Opennet im Allgemeinen gewinnen. Eventuell können wir das ja mit dem PR-Team koordinieren. :)


Inzwischen ist Wifidog in unsere aktuelle Opennet Firmware integriert. Die Konfiguration wird weiter unten beschrieben.

<br clear="all"/>


== Firmware Implementierung und Netzwerk-Integration ==
== Firmware Implementierung und Netzwerk-Integration ==

=== Konzeptvorschlag 1 ===
{{warnung
[[bild:Wifidog_1.png|400px|thumb|right|Wifidog 1.png]]
|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.
(aktuell in Firmware 3.0-2 NG implementiert)
}}
* Wifidog-Gateway läuft auf dem AccessPoint

* DNS-Forward zu AP 192.168.10.3 (inez.on.i.de), Netzmaske 172.17.0.0/24
Die Wifidog-Implementierung ist mittlerweile Teil der Opennet-Firmware
* alias-Interface 172.17.0.1, da GW / DNS mit 172.17.0.1 übermittelt werden
* die aktuelle Opennet Firmware unterstützt ab Version 0.3-4 die dezentrale Wifidog-Lösung
* normaler Tunnelaufbau
* 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)

[[image:Wifidog_DHCP.png|500px|thumb|right|Wifidog DHCP Ablauf]]
=== 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.
<br clear="all"/>
[[image:Wifidog_decentral.png|300px|thumb|right|dezentrales WifiDog]]
=== dezentrales Wifidog-Konzept ===
==== Vorteile ====
==== Vorteile ====
* jeder AP ist ein Wifidog-Node, kann getrennt konfiguriert werden
* jeder AP ist ein Wifidog-Node, kann getrennt konfiguriert werden
Zeile 149: Zeile 189:
* jeder AP ist ein Wifidog-Node, muss getrennt konfiguriert werden, hoher Verwaltungsaufwand
* jeder AP ist ein Wifidog-Node, muss getrennt konfiguriert werden, hoher Verwaltungsaufwand
* spezifische Firmware notwendig, Speicherbedarf größer
* spezifische Firmware notwendig, Speicherbedarf größer
* kein Roaming zwischen Wifidog-Aps gleicher SSID möglich
* Nutzerverwaltung (aussperren, freigeben) nicht für alle Nodes möglich
* 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.


== Firmware-Konfiguration für Wifidog ==
=== Konzeptvorschlag 2 ===
=== neue Opennet-Firmware ===
[[bild:Wifidog_2.png|400px|thumb|right|Wifidog 2.png]]
Dokumentiert unter [[Opennet_Firmware_Konfiguration#Wifidog-Konfiguration]]
* Wifidog-Gateway läuft auf inez.on-i.de, nur durch tunnel erreichbar
=== alte Opennet-Firmware ===
* Weiterleitung von Tunnel auf Gateway anhand des CommenName (X.Y.wifidog.on) zu inez.on-i.de
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.
* DNS-Forward zu AP 192.168.10.3 (inez.on.i.de), Netzmaske 172.17.0.0/24
* prüfe ob der AP per LAN oder WAN mit Opennet verbunden ist - sonst sägst Du an dem Ast auf dem Du sitzt
* alias-Interface 172.17.0.1, da GW / DNS mit 172.17.0.1 übermittelt werden
* im OpenWRT-Admin-Bereich (Netzwerk) die Wireless-Schnittstelle auf "Access Point" konfigurieren (save, apply)
* Roaming zwischen Wifidog-Aps gleicher SSID
* im Opennet-WIFI Bereich der Wireless-Schnittstelle eine zur Opennet-ID (X.Y) passende IP-Adresse der Form 10.3.X.Y geben
* Nutzerverwaltung (aussperren, freigeben) für alle Nodes möglich
* VPN-Zertifikat installieren, AP neu starten
==== Vorteile ====
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.
* alle APs haben einen Wifidog-Node (inez.on-i.de)

* keine extra Software (ausser DHCP-forwarder) auf AP nötig, geringer Speicherbedarf
== Logo ==
* kann auf APs mit alter Firmware problemlos nachgerüstet werden

==== Nachteile ====
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]].
* es gibt nur einen Wifidog-Node, keine getrennte Konfiguration möglich (oder schwieriger)

* Internet-Traffic fliesst vom Gateway immer erst über inez-on-i.de
[[Datei:Opennet wlan aufkleber logo.png|thumb|left|Aufkleber]]


[[Kategorie:Firmware]]
Anmerkung: Wenn auf den Gateways mehrfache logins mit gleichem Zertifikat erlaubt werden, dann lassen sich unterschiedliche Nodes auf Basis unterschiedlicher Zertifikate verwalten. Alternativ könnten Zertifikatgruppen erstellt werden, dass macht aber alles etwas komplexer
[[Kategorie:Opennet Projekte]]

Aktuelle Version vom 6. Januar 2017, 18:55 Uhr

Team

Projekt Wifidog
Treffen:
Weiterentwicklung und Integration des offenen WLAN Portals
Mitglieder:
Rene E.
MathiasMahnke
Christianw
Henning
Moh
Christoph
Kontakt:
Crew Mailingliste


| warning = #b22222 solid;background-color: #ffdddd;"> | caution = #f28500 solid;background-color: #ffffaa;"> | approval = #00ff00 solid;background-color: #deffde;"> | proposal = #9932cc solid;background-color: #e4d8ff;"> | detail = #f4c430 solid;background-color: #fbfbfb;"> | protection = #bba solid;background-color: #fbfbfb;"> | notice | #default = #1e90ff solid;background-color: #fbfbfb;"> }} {{#switch: | blank | none =

| #default =

}}

{{#if: | {{#ifeq:|none

 | 
| }} }}


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

Aufbau

Wifidog besteht aus den Komponenten:

  • Gateway -- hier die Opennet Access Points
  • Portal (Auth-Server) -- ein zentraler Server für die Verwaltung

Installation

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:

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.

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))

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.

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.

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#

Aktueller Projektstand

Inzwischen ist Wifidog in unsere aktuelle Opennet Firmware integriert. Die Konfiguration wird weiter unten beschrieben.


Firmware Implementierung und Netzwerk-Integration

| warning = #b22222 solid;background-color: #ffdddd;"> | caution = #f28500 solid;background-color: #ffffaa;"> | approval = #00ff00 solid;background-color: #deffde;"> | proposal = #9932cc solid;background-color: #e4d8ff;"> | detail = #f4c430 solid;background-color: #fbfbfb;"> | protection = #bba solid;background-color: #fbfbfb;"> | notice | #default = #1e90ff solid;background-color: #fbfbfb;"> }} {{#switch: | blank | none =

| #default =

}}

{{#if: | {{#ifeq:|none

 | 
| }} }}


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)
Wifidog DHCP Ablauf

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.

dezentrales WifiDog

dezentrales Wifidog-Konzept

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

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.

Firmware-Konfiguration für Wifidog

neue Opennet-Firmware

Dokumentiert unter Opennet_Firmware_Konfiguration#Wifidog-Konfiguration

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.

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.

Aufkleber