Hybrider Access Point (WPA2/privat + Freifunk)
Intro
Mit vielen Routern ist es möglich, mehr als ein Funknetz aufzuspannen. So spannen die Freifunk Franken Router in Ihrer Grundkonfiguration zwei Wifi Netze auf: batman.franken.freifunk.net zum vermeshen und franken.freifunk.net als Access Point.
Es lassen sich unter Umständen weitere Netze hinzufügen. Der Artikel beschreibt das Einrichten eines privaten WPA2 verschlüsselten Funknetzes auf einem Freifunk Franken Router. Der Traffic, der dann über das private WPA2 verschlüsselte Netz läuft, wird hierbei nicht ins Freifunk Netz (fffVPN) geroutet, sondern verlässt das Heimnetz über den Heimrouter (z.B. Fritzbox, Kabelmodem, Speedport, etc..) direkt in das Netz des privaten Internetproviders. Voraussetzung hierfür ist, dass auf dem Freifunk Router ein WAN Port verfügbar ist, und der Router über den WAN Port an den Heimrouter und damit an das Internet angeschlossen ist.
An dem so umkonfigurierten Freifunk Router (mit WAN/ Netzwerkkabel Anbindung) lässt sich per Funkanbindung ein weiterer Freifunk Router anschliessen, der das Heimnetz weiterspannt. Der per Funk angeschlossene Freifunk Router fungiert hierbei als Repeater für den über WAN angeschlossenen Freifunk Router, wobei der Repeaterbetrieb auf das private Funknetz beschränkt ist. Das Freifunk-Funknetz wird parallel dazu weiterhin über die Meshing Funktionalität aufgespannt.
Die Konfiguration (WAN Anschluss) wurde bislang auf folgenden Routern erfolgreich getestet:
- Ubiquiti PicoStation M2HP
- Ubiquiti NanoStation Loco M2
- TP-Link WR841N(D)v9
- TP-Link WR1043ND v2
Die Konfiguration (Repeater Anschluss) wurde bislang auf folgenden Routern erfolgreich getestet:
- TP-Link WR841N(D)v9
Voraussetzungen
- Funktionsfähiger und angeschlossener WAN Port am Freifunk Router (Für die Konfiguration eines WAN Ports auf der Ubiquiti PicoStation M2HP oder NanoStation Loco M2 siehe bitte die Ubiquiti Freifunk Firmware Installationsanleitung)
- Sicheres Passwort auf dem Freifunk Router ("Wie ändere ich das Passwort für den Router?")
- SSH Zugriff auf den Router ("Wie kann ich mich auf den Router einloggen?")
- Die Anleitung hat einen mittleren Schwierigkeitsgrad: Jemand ohne bisherige Linux-Berührungspunkte wird möglicherweise verzweifeln, Pros werden sich nicht ganz ernst genommen fühlen
Vor- und Nachteile
Pro:
- Evtl. lässt sich der Kauf eines zusätzlichen privaten WiFi-Routers vermeiden, indem der Freifunk Router mitgenutzt wird
- Manche Freifunk-Router zeigen deutlich ansprechendere Leistungscharakteristiken als Router, die üblicherweise in Betrieb sind. Die eigenen 4 Wände werden besser ausgeleuchtet.
- Die eigene WiFi-Homezone lässt sich auf mehrere Wifi-Router abstützen, sofern die Konfigurationsparameter SSID, Key und das Verschlüsselungsverfahren auf allen verwendeten Routern identisch sind. Viele Endgeräte unterstützen Roaming zwischen den so konfigurierten Access Points. Die private Homezone wird auf das von euch umkonfigurierte Freifunk Netz erweitert, eine bessere Ausleuchtung wird erreicht.
Con:
- Der Freifunk Router wird nicht in Standardkonfiguration betrieben. Zwar gibt es auch so keine Funktionsgarantien, aber die Funktionszuverlässigkeit steigt jenseits der Standardkonfiguration nicht unbedingt. Evtl. geht was kaputt.
- Jeder Freifunk Router, der per WAN über das Internet ans Freifunk Franken VPN (Interface fffVPN) angeschlossen wird, erzeugt einen geringen Grundlast-Traffic im Up- und Download.
Routeranschluss via WAN Port
Dieser Abschnitt beschreibt die Konfiguration für einen Freifunk-Router, der per WAN port (Netwerkkabel) an den Heimrouter angeschlossen wird.
Einloggen und Check der Konfiguration (WAN)
Zunächst loggt man sich auf dem Router per ssh ein.
Dann kann man mit "route" kurz überprüfen...
route
... inwieweit der Freifunk-Router per WAN Port mit dem Internet verbunden ist:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default fritz.box 0.0.0.0 UG 0 0 0 eth1 192.168.178.0 * 255.255.255.0 U 0 0 0 eth1
Hier sollte der Heimrouter als Default-Gateway eingetragen sein (IP oder DNS Name). Den Namen des WAN-Interfaces (in diesem Beispiel wird der Default-Gateway "fritz.box" über das WAN-Interface "eth1" angesprochen) sollte man sich für später aufschreiben.
Ein ping ...
ping freifunk-franken.de
...sollte beantwortet werden (Abbruch mit "STRG-C"):
PING freifunk-franken.de (31.172.113.113): 56 data bytes 64 bytes from 31.172.113.113: seq=0 ttl=52 time=26.216 ms 64 bytes from 31.172.113.113: seq=1 ttl=52 time=24.924 ms ^C --- freifunk-franken.de ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 24.924/25.570/26.216 ms
Da ein Default-Gateway definiert ist und der ping beantwortet wird, kann man davon ausgehen, das der Freifunk Router direkt über den WAN Port mit dem Internet verbunden ist.
Privates verschlüsseltes WiFi Netz im FF-Router konfigurieren (WAN)
Sicherheitskopien (WAN)
Zunächst sind Sicherheitskopien der später veränderten Dateien empfehlenswert:
cp /etc/config/network /etc/config/network.sik-orig
cp /etc/config/wireless /etc/config/wireless.sik-orig
cp /etc/config/nodewatcher /etc/config/nodewatcher-orig
Falls später gewünscht, ist ein Zurückspielen der gesicherten Konfiguration umgekehrt über
cp /etc/config/network.sik-orig /etc/config/network
cp /etc/config/wireless.sik-orig /etc/config/wireless
cp /etc/config/nodewatcher-orig /etc/config/nodewatcher
möglich. Dies macht unten durchgeführte Änderungen rückgängig.
Editieren von /etc/config/network (WAN)
Mittels eines Texteditors (auf allen Freifunk Routern gibt es den etwas speziellen Editor vi) muss an die vorhandene Konfigurationsdatei /etc/config/network ein Konfigurationsblock angefügt werden. Die bestehenden Konfigurationsblöcke müssen unbedingt erhalten bleiben.
Aufruf des Texteditors:
vi /etc/config/network
Mittels "i" kann der Editor in den Einfügemodus versetzt werden. Folgender Konfigurationsblock sollte am Ende der Datei angefügt werden. Der Eintrag erstellt eine zusätzliche Bridge zum WAN-Interface des FF-Routers:
config interface 'privnet' option ifname 'eth1' option type 'bridge' option proto 'dhcp'
Hierbei ist zu beachten, dass der Name des WAN-Interfaces genommen wird (Hier im Beispiel "eth1"). Dieser wurde oben unter "Einloggen und Check der Konfiguration" ermittelt.
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
Info: Weitere Konfigurationsmöglichkeiten sind hier dokumentiert.
Editieren von /etc/config/wireless (WAN)
Auch hier muss die Konfiguration mittels Texteditor angepasst werden:
vi /etc/config/wireless
Wieder muss der Texteditor mit "i" in den Einfügemodus versetzt werden und folgender Konfigurationsblock angefügt werden. Die bestehenden Einträge müssen erhalten bleiben.
config wifi-iface option device 'radio0' option network 'privnet' option ifname 'privwifi' option mode 'ap' option ssid 'MyHomeIsMyCastle' option key '12345678123456781234' # option encryption 'psk2+tkip+aes' option encryption 'psk2+ccmp' option wds '1'
Der Eintrag erstellt ein neues verschlüsseltes Wifi mit dem Namen (SSID) "MyHomeIsMyCastle" und dem Schlüssel (Key) "12345678123456781234". Key und SSID müssen unbedingt persönlich angepasst und notiert werden. Wer die Parameter "SSID", "Key" und "Encryption" identisch zu einem im Heimnetz bestehenden Wifi-Router wählt, ermöglicht ggf. ein Roaming zwischen den Wifi-Routern seines Heimnetzes (s.o.).
Als Network wird der Name der vorher definieren Bridge "privnet" eingetragen. Wer stattdessen hier "mesh" einträgt, routet sein neu erstelltes privates und verschlüsseltes Wifi über das Freifunk Netz und nicht über seinen privaten Internetprovider.
Der Name des Funk-Devices "radio0" sollte bereits in den bestehenden Konfigurationsblöcken von /etc/config/wireless erwähnt sein.
Hinweis: Soll kein weiterer Freifunkrouter per Funk an diesen Router angeschlossen werden, der ebenfalls das private Funknetz im Repeaterbetrieb aufspannt, kann auf die Zeile "option wds '1'" verzichtet werden.
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
Info: Weitere Konfigurationsmöglichkeiten sind hier dokumentiert.
Ausblenden der neuen Interfaces im Netmon (WAN)
Wir editieren die Datei nodewatcher:
vi /etc/config/nodewatcher
Und tragen die oben neu definierten Interfaces (br-privnet, privwifi) in die Blackliste der Interfaces ein, die nicht an den Netmon durchgereicht werden.
Mittels "i" kann der Editor in den Einfügemodus versetzt werden. Folgender Konfigurationsblock kann angepasst werden:
. . config network option mesh_interface 'br-mesh' option iface_blacklist 'lo ifb0 br-privnet privwifi' option ip_whitelist 'br-mesh' option client_interfaces 'w2ap'
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
Reboot des Freifunk Routers (WAN)
Die Änderungen werden nach Neustart des Routers aktiv:
reboot & exit
Abschlusscheck der Konfiguration (WAN)
Zunächst loggt man sich wieder auf dem Router per ssh ein.
Mit Aufruf von ifconfig...
ifconfig
...sollten die neuen Interfaces privwifi und br-privnet eingetragen sein. Exemplarisch:
. . br-privnet Link encap:Ethernet HWaddr 68:72:51:43:67:FA inet addr:192.168.178.37 Bcast:192.168.178.255 Mask:255.255.255.0 inet6 addr: fe80::6a72:51ff:fe31:87ff/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1222913 errors:0 dropped:0 overruns:0 frame:0 TX packets:460641 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:236426915 (225.4 MiB) TX bytes:80415509 (76.6 MiB) . . privwifi Link encap:Ethernet HWaddr 68:72:51:43:67:FA inet6 addr: fe80::68:72:51:43:67:fa/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11921 errors:0 dropped:0 overruns:0 frame:0 TX packets:15364 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1646145 (1.5 MiB) TX bytes:8456964 (8.0 MiB)
Ein Aufruf von iwconfig ...
iwconfig
...sollte das neu konfigurierte private Funknetz anzeigen:
privwifi IEEE 802.11bgn Mode:Master Tx-Power=22 dBm RTS thr:off Fragment thr:off Power Management:off
Repeaterbetrieb
Sofern oben ein Freifunkrouter an dem Heimrouter per WAN/ Netzwerkkabel angeschlossen wurde, können weitere Freifunk-Router, die sich in Funkreichweite zum ersten befinden, das private Funknetz (und das Freifunknetz) weiter aufspannen. Hierfür kann der zweite Freifunk Router als Repeater des ersten Freikfunk-Routers (mit WAN Anschluss) konfiguriert werden. Der Repeaterbetrieb gilt hierbei für das private Funknetz, das Freifunk-Funknetz wird weiterhin parallel über die Mesh-Funktionalität aufgespannt.
Die Anleitung orientiert sich hierbei an diesem OpenWRT Receipt.
Einloggen und Check der Konfiguration (Repeater)
Zunächst loggt man sich auf dem Router per ssh ein.
Dann kann man kurz überprüfen...
iw dev w2mesh station dump
.. inwieweit beide Freifunk-Router sich in Funkreichweite zueinander befinden und wie die Verbindungsqualität ist.
Möchte man z.B. das Signal des FF-Router mit der MAC 68:72:51:43:67:fa repeaten, findet man exemplarisch die Ausgabe:
Station 68:72:51:43:67:fa (on w2mesh) inactive time: 10 ms rx bytes: 24762511 rx packets: 193483 tx bytes: 4109 tx packets: 77 tx retries: 122 tx failed: 0 signal: -70 [-73, -72] dBm signal avg: -69 [-73, -71] dBm tx bitrate: 36.0 MBit/s rx bitrate: 36.0 MBit/s authorized: yes authenticated: yes preamble: long WMM/WME: yes MFP: no TDLS peer: no
Im Repeater-Betrieb wird als Verbindungsqualität zwischen beiden Freifunk-Routern eine Signalstärke nicht kleiner als ca. -70dBm .. -75dBm empfohlen, wenn man nennenswerte Datenraten in seinem privatem Funknetz erzielen möchte.
Privates verschlüsseltes WiFi Netz im FF-Router konfigurieren (Repeater)
Sicherheitskopien (Repeater)
Zunächst sind Sicherheitskopien der später veränderten Dateien empfehlenswert:
cp /etc/config/network /etc/config/network.sik-orig
cp /etc/config/wireless /etc/config/wireless.sik-orig
cp /etc/config/nodewatcher /etc/config/nodewatcher-orig
Falls später gewünscht, ist ein Zurückspielen der gesicherten Konfiguration umgekehrt über
cp /etc/config/network.sik-orig /etc/config/network
cp /etc/config/wireless.sik-orig /etc/config/wireless
cp /etc/config/nodewatcher-orig /etc/config/nodewatcher
möglich. Dies macht unten durchgeführte Änderungen rückgängig.
Editieren von /etc/config/network (Repeater)
Mittels eines Texteditors muss an die vorhandene Konfigurationsdatei /etc/config/network ein Konfigurationsblock angefügt werden. Die bestehenden Konfigurationsblöcke müssen unbedingt erhalten bleiben.
Aufruf des Texteditors:
vi /etc/config/network
Mittels "i" kann der Editor in den Einfügemodus versetzt werden. Folgender Konfigurationsblock sollte am Ende der Datei angefügt werden. Der Eintrag erstellt eine zusätzliche Bridge zum WAN-Interface des FF-Routers:
config interface 'privnet' option ifname 'eth0' option type 'bridge' option proto 'dhcp'
Hierbei ist zu beachten, dass nicht der Name des WAN-Interfaces genommen wird, sondern das Interface, welches in den Abschnitten mesh bzw. ethmesh referenziert ist. Das Interface wird hier ohne die VLAN Zusätze (also nicht als eth0.1 oder eth0.3 sondern als eth0) eingetragen. Im Beispiel ist das Interface "eth0".
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
Info: Weitere Konfigurationsmöglichkeiten sind hier dokumentiert.
Editieren von /etc/config/wireless (Repeater)
Auch hier muss die Konfiguration mittels Texteditor angepasst werden:
vi /etc/config/wireless
Wieder muss der Texteditor mit "i" in den Einfügemodus versetzt werden und folgender Konfigurationsblock angefügt werden. Die bestehenden Einträge müssen erhalten bleiben.
config wifi-iface option device 'radio0' option network 'privnet' option ifname 'privwifi' option mode 'ap' option ssid 'MyHomeIsMyCastle' option key '12345678123456781234' # option encryption 'psk2+tkip+aes' option encryption 'psk2+ccmp' option wds '1' option mode 'sta'
Der Eintrag erstellt ein neues verschlüsseltes Wifi mit dem Namen (SSID) "MyHomeIsMyCastle" und dem Schlüssel (Key) "12345678123456781234". Key, SSID und Encryption müssen identisch zu der Konfiguration des Freifunk-Routers sein, dessen Signal "repeated" wird. In der Regel wird dies der Router sein der via WAN / Netzwerkkabel an den Heimrouter angeschlossen ist.
Als Network wird der Name der vorher definieren Bridge "privnet" eingetragen.
Der Name des Funk-Devices "radio0" sollte bereits in den bestehenden Konfigurationsblöcken von /etc/config/wireless erwähnt sein.
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
Info: Weitere Konfigurationsmöglichkeiten sind hier dokumentiert.
Ausblenden der neuen Interfaces im Netmon (WAN)
Wir editieren die Datei nodewatcher:
vi /etc/config/nodewatcher
Und tragen die oben neu definierten Interfaces (br-privnet, privwifi) in die Blackliste der Interfaces ein, die nicht an den Netmon durchgereicht werden.
Mittels "i" kann der Editor in den Einfügemodus versetzt werden. Folgender Konfigurationsblock kann angepasst werden:
. . config network option mesh_interface 'br-mesh' option iface_blacklist 'lo ifb0 br-privnet privwifi' option ip_whitelist 'br-mesh' option client_interfaces 'w2ap'
Mit "Esc" beendet man den Einfügemodus. Mit ":x" speichert man die Datei. Mit ":q!" verwirft man die Änderungen, falls etwas schief gegangen sein sollte. Der Editor wird in beiden Fällen beendet.
Reboot des Freifunk Routers (Repeater)
Die Änderungen werden nach Neustart des Routers aktiv:
reboot & exit
Abschlusscheck der Konfiguration (Repeater)
Zunächst loggt man sich wieder auf dem Router ein, der als Repeater des privaten Funknetzes konfiguriert ist.
Mit Aufruf von ifconfig...
ifconfig
...sollten die neuen Interfaces privwifi und br-privnet eingetragen sein. Exemplarisch:
. . br-privnet Link encap:Ethernet HWaddr 14:CC:20:A3:E3:99 inet addr:192.168.178.22 Bcast:192.168.178.255 Mask:255.255.255.0 inet6 addr: fe80::16:cc:20:a3:e3:99/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:810004 errors:0 dropped:0 overruns:0 frame:0 TX packets:461103 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:146832306 (140.0 MiB) TX bytes:78939185 (75.2 MiB) . . privwifi Link encap:Ethernet HWaddr 16:CC:20:B0:F4:84 inet6 addr: fe80::14cc:20ff:feb0:f484/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:814851 errors:0 dropped:0 overruns:0 frame:0 TX packets:455180 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:159286107 (151.9 MiB) TX bytes:90036840 (85.8 MiB)
Ein Aufruf von iwconfig ...
iwconfig
...sollte das neu konfigurierte private Funknetz anzeigen und Aufschluss über den Access Point geben (MAC) dessen Signal repeated wird.
Exemplarisch:
privwifi IEEE 802.11bgn ESSID:"MyHomeIsMyCastle" Mode:Managed Frequency:2.412 GHz Access Point: 68:72:51:43:67:FA Bit Rate=36 Mb/s Tx-Power=19 dBm RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=37/70 Signal level=-73 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:1133 Invalid misc:144796 Missed beacon:0
Darüberhinaus ...
route
...sollte eine default-Route zum Heimrouter eingetragen sein:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default fritz.box 0.0.0.0 UG 0 0 0 br-privnet 192.168.178.0 * 255.255.255.0 U 0 0 0 br-privnet
Wir loggen uns aus:
exit
Loggt man sich nun wieder auf dem Freifunk-Router ein, dessen privates Funknetz repeated wird, kann man über den Aufruf von
iwconfig
das neu eingerichtete sta1-Interface finden:
privwifi.sta1 IEEE 802.11bgn Mode:Secondary Tx-Power=22 dBm RTS thr:off Fragment thr:off Power Management:off
Nun kann man sich ausloggen:
exit
Hat es geklappt ?
Wenn alles geklappt hat, sieht ein Wifi-Endgerät (z.B. Handy, Notebook, Tablet) jetzt das verschlüsselte Wifi mit dem eingerichteten Namen. In unserem Beispiel ist das "MyHomeIsMyCastle".
Wir verbinden uns mit unserem neuen privaten Funknetz und geben den vorher von uns definierten Schlüssel an (in unserem Beispiel ist das "12345678123456781234"). Um sicherzustellen, dass man sich mit dem richtigen Router (Evtl. identische SSID, Key) verbindet, begibt man sich am besten in unmittelbare Nähe des Geräts.
Mit einem Aufruf von z.B. Utrace oder einem IP-Lokalisator sollte der eigene Internet-Provider und Standort auftauchen. Das Routing findet also nicht über das Freifunk Netz statt. Alternativ tut es auch ein schnelles traceroute.
Wenn man sich jetzt stattdessen mit freifunk.franken.net verbindet und wieder z.B. Utrace oder einen IP-Lokalisator aufruft, sollte eine andere IP und einer anderen Standort gemeldet bekommen, und zwar den des verwendeten Freifunk -> Internet Gateways.
War es das schon ?
Nein. Man könnte z.B. noch:
- eine Konfiguration für einen hybriden Access Point für Freifunk Router entwickeln, die nicht über den WAN port, sondern allein über B.A.T.M.A.N eingebunden sind
- weitere Routermodelle auf Kompatibilität mit der Anleitung prüfen