Installation

Aus Freifunk Köln, Bonn und Umgebung
Zur Navigation springen Zur Suche springen

Hinweis: Diese Seite wurde in das Archiv verschoben. Die Informationen sind größtenteils veraltet und nur für Spezialfälle relevant.

Veraltet - nicht mehr verwenden → Siehe auch KBU_Gluon_Firmware

Die Installation und Inbetriebnahme eines Routers im Freifunk-KBU Netz ist recht einfach, so dass grundlegendes IT-Verständnis dafür genügen sollte. In der unten stehenden Tabelle sind die von unserer Freifunk-Gruppe KBU aktiv unterstützten Geräte angegeben, die wir selbst im Einsatz haben oder hatten. Für andere Geräte beachte bitte Firmware.

Es gibt kaum Unterschiede zwischen einer Neuinstallation und einem Upgrade. Beides geschieht durch einen Firmware-Upgrade, wobei bei der Neuinstallation das Administrations-Interface der Hersteller-Firmware und sonst das von OpenWRT-Interface genutzt wird. Der Garantieanspruch geht dabei nicht verloren: man kann auch die Original-Firmware wieder aufspielen, die für das jeweilige Gerät vom Hersteller zum Download angeboten wird.

Zur Installation bzw. für ein Upgrade sind die folgenden Schritte notwendig

  1. Download der Firmware
  2. Überprüfen der Signatur der Firmware, um eine Manipulation ausschließen zu können
  3. Einspielen der Firmware (Von der Hersteller-Firmware oder von OpenWRT aus)
  4. Registrieren des Nodes (optional)
  5. Konfigurieren des Nodes (optiomal)

Nachfolgend sind die einzelnen Schritte genauer beschrieben.

Bei Problemen, helfen wir gerne per IRC oder E-Mail weiter.

Download der Firmware

Abb. 1 Router und Hardversion
Abb. 2 LAN Port
  • Typ und Hardware Version des TP-Link Routers prüfen, auf der Unterseite des Routers befindet sich der Router Typ und die Hardwareversion aufgedruckt (Abb.1).
  • Download der aktuellen Freifunk Firmware für den Router Typ unter Berücksichtigung der entsprechenden Hardwareversion. Nach dem Download solltest Du sicher stellen, dass alle Dateien korrekt herunter geladen wurden (Firmware Überprüfen).
  • Solltest Du Dir total unsicher sein, welche die richtige Firmware für Dein Router ist, dann wende Dich bitte per IRChat oder über die Mailingliste an uns.
Hersteller Model HW Revision Antennen Freifunk Firmware
TP Link TL-WR740N v4.x (ohne v4.27) 1 1.2.1a
TP Link TL-WR741N(D) v1.x 1 1.2.1a
TP Link TL-WR741N(D) v2.x 1 1.2.1a
TP Link TL-WR741N(D) v4.x 1 1.2.1a
TP Link TL-WR841N(D) v3 2 1.2.1a
TP Link TL-WR841N(D) v5 2 1.2.1a
TP Link TL-WR841N(D) v7.x 2 1.2.1a
TP Link TL-WR841N(D) v8.x 2 1.2.1a
TP Link TL-WR841N(D) v9, v9.1 2 1.2.1b
TP Link TL-WR842ND v1.x 2 1.2.1a
TP Link TL-WR842ND v2 2 1.2.1b
TP Link TL-WR1043ND v1.x 3 1.2.1a
TP Link TL-WDR3500 v1 2 1.2.1b
TP Link TL-WDR3600 v1.x 2 1.2.1a
TP Link TL-WDR4300 v1.x 3 1.2.1a

Überprüfen der Signatur

Damit sichergestellt ist, dass die heruntergeladene Freifunk-Firmware auch wirklich die ist, welche wir erstellt und zum Download angeboten haben, sollten unbedingt die Hash-Werte (d.h. ein eindeutiger Fingerabdruck) der Firmware-Dateien und die korrekte Signatur der von uns bereitgestellten Hash-Wert-Datei geprüft werden. Dieses ist vermutlich der schwierigste Teil der Installation und wird von Einzelnen gelegentlich übergangen, getreu der Kölschen Lebensweisheit "Et hät noch immer joot jejange". Darauf sollte man sich aber in heutigen Zeiten nicht verlassen.

Die Datei mit den Hash-Werten ist mit unserem GPG-Schlüssel signiert. Der heimliche Austausch einer Freifunk-Firmware und des entsprechenden Hash-Wertes ist also nicht möglich, da die Signatur nur bei unveränderter Hash-Wert-Datei gültig bleibt. Unser öffentliche GPG-Schlüssel ist auf gängigen Keyservern hinterlegt.

Wer sich mit GPG noch nicht auskennt, kann sich z.B. unter www.gnupg.org aufschlauen.

Unseren GPG-Schlüssel bekommt man z.B. unter Linux/Unix von der Kommandozeile aus so:

# gpg --keyserver pgp.mit.edu --recv-key  '0FA27C6E4'

Nach dem Download der beiden Dateien

prüft man dann einfach die Signatur mit

 $ gpg --verify SHA256SUMS.sign
 gpg: Signature made Wed 27 Aug 2014 10:40:01 PM CEST using RSA key ID FA27C6E4
 gpg: Good signature from "Freifunk-KBU Release Signing Key (Used by jenkins.kbu.freifunk.net) <info@kbu.freifunk.net>"
 gpg: WARNING: This key is not certified with a trusted signature!
 gpg:          There is no indication that the signature belongs to the owner.
 Primary key fingerprint: E3B3 AF2B 6B54 149B 9313  4EC0 E782 EAC7 FA27 C6E4

Die Signatur ist also korrekt. Den Fingerprint prüft man am besten einmal offline bei unseren regelmäßigen Treffen.

Dann kann man selbst den Hash-Wert der heruntergeladenen Firmware (hier am Beispiel des Routers TL WR841n mit der Hardware-Version 9) berechnen

 $ sha256sum ff-kbu-tl-wr841n-v9-1.2.1b.bin
 2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ff-kbu-tl-wr841n-v9-1.2.1b.bin

und mit dem Hash-Wert in der signierten und zuvor korrekt verifizierten Datei vergleichen:

 $ grep ff-kbu-tl-wr841n-v9-1.2.1b.bin SHA256SUMS
 2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./ff-kbu-tl-wr841n-v9-1.2.1b.bin
 2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./untested/barrier_breaker/ff-kbu-tl-wr841n-v9-1.2.1b.bin

Damit ist die heruntergeladenen Datei auch genau die, die wir für Freifunk erstellt und angeboten haben. Unter der Voraussetzung, dass uns niemand den privaten GPG-Schlüssel entwendet und das Passwort zur Sicherung des privaten Schlüssels geknackt hat. Letzteres ist sehr sehr unwahrscheinlich.

Installation

Verbindung zum Router herstellen: verbinden des PCs mit einen Netzwerkkabel (normales LAN Kabel) mit einem beliebigem LAN Port (gelb) (Abb.2).

  Hinweis: Eine Ausnahme von dieser LAN/WAN/Farbwahl besteht beim TL-WR841N(D): hier ist es nicht der LAN Port (gelb)
  sondern der WAN Port (blau) - wobei diese Ausnahme bei (oder ggf. auch ab) der Hardware-Version 9.0 nicht mehr gilt.
  Bei TL-WR841N v8.4: Beim Flashen über das Firmware-Upgrade der Original-Firmware tritt ggf. folgender Fehler auf:
  Error code: 23002
  The uploaded file name is too long!
  Hier hilft einfaches Umbenennen der herunter geladenen Freifunk-Firmware.

Am PC muss die Netzwerkkarte auf Automatische IP-Adresse beziehen (DHCP) eingestellt sein.

Ggf. den PC vorher von jeglichen anderen WLANs abmelden, sonst kann es zu Konflikten beim automatischen beziehen der IP kommen.

Variante: Hersteller-Firmware

  1. Aufrufen des Routermenüs im Webbrowser über die IP Adresse: 192.168.1.1. Benutzer: "admin" und Passwort: "admin" (im Auslieferungszustand)
  2. Menüpunkt "System-Tools", Untermenüpunkt "Firmware-Upgrade" auswählen (Abb. 3)
  3. Button "Durchsuchen..." anklicken (Abb. 4) Die Firmwaredatei auswählen (Abb. 5)
  4. Button "Upgrade" anklicken (Abb. 6) - Sicherheitsfrage mit "OK" beantworten
  5. Die Installation der Firmware beginnt und dauert ca 5 Minuten. Schalte den Router nicht aus (Abb. 7). Der Prozess ist abgeschlossen, wenn der Router neu startet und anschliessend die Sys-Lampe dauerhaft leuchtet. (Abb. 8)
  6. Am Ende erscheint ggf. eine Fehlermeldung, weil der Router nicht mehr über die alte IP-Adresse direkt erreichbar ist.

Eine weitere Konfiguration ist nicht nötig, kann aber über den config-mode vorgenommen werden (siehe Abschnitt config-mode). Der Router (WAN-Port) kann nun mit dem Netzwerk zum DSL Router verbunden werden.

Wichtiger Hinweis: Verbinde keinesfalls Dein lokales Netz mit den LAN-Ports des Nodes. Sonst steht dein LAN im Freifunknetz offen!

Möchtest Du jedoch einen Dienst (Web-/ Jabber-/ sonstiger Server) innerhalb des Freifunknetzwerkes anbieten, so ist einer der LAN-Ports dein Freund.


Variante: Update

Updates der Freifunk-Software werden wie gewöhnliche OpenWRT-Updates eingespielt. (Vgl. http://wiki.openwrt.org/doc/howto/generic.sysupgrade). Solltest Du mit beim Upgrade Probleme haben, so helfen wir Dir gerne im IRC oder per Mailingliste weiter. Bei einem Update muss wie folgt vorgegangen werden:

  1. Config Mode starten (Vgl. #Konfigurieren des Nodes)
  2. Firmware-Upgrade auswählen
  3. Firmware hochladen und neu starten

Registrierung des Nodes

Bitte registrieren Deine Freifunk-Node und gibt die Position auf der Karte an. Dies erlaubt es uns, Dich bei Probleme zu verständigen - gleichzeitig kann Dein Node von Nutzern einfacher gefunden werden.

Ein Node muss nach einem Update nicht erneut registriert werden.

WICHTIG: Der PC muss mit dem gleichen Netzwerk wie die Freifunk Node verbunden sein! Du kannst nur Freifunk-Nodes registrieren, die unter Deiner IP online sind.

  1. Zum Registrieren des Nodes die Webseite https://register.kbu.freifunk.net aufrufen (Abb. 20)
  2. Wenn noch nicht vorhanden, ein neuen Account erstellen (Abb. 21)
  3. Nach der Anmeldung erscheint auf der Startseite die unregistrierte Node als registrierbar (Abb. 22)
  4. Hier nun die Information zu der Node eingeben (Abb. 23)
  5. Bei "Standort auf der Karte" die Adresse eingeben und einen Moment warten. Das System sucht die passende Adresse automatisch heraus. Die Adresse anklicken (Abb. 24)
  6. Der genaue Standort der Node (blauer Marker) kann mit der Maus verändert werden (Abb. 25)
  7. Auf der Startseite ist die neu registrierte Node unter dem Punkt "Eigene Nodes" zu finden (Abb. 26)
  8. Um die Details der Registrierung zu bearbeiten, klickt man in der Leiste auf "Nodes" und sucht dann in der Liste seine Node und klickt auf den Link "Registrierung" (Abb. 27)

Konfigurieren des Nodes

(config mode - optional)
Grundsätzlich ist unsere Freifunk Firmware so konzipiert, dass der Betreiber eines Nodes (Freifunkknoten) keinerlei Konfigurationsarbeiten durchführen muss. Das bedeutet, nach dem Aufspielen unserer Firmware und der Registrierung, kann der Betreiber direkt loslegen und ist Teil unseres Freifunk-Netzwerkes. Wenn der Betreiber es wünscht, besteht natürlich für Ihn die Möglichkeit, seinen Knoten an seine speziellen Bedürfnisse anzupassen. Die Möglichkeiten und Abweichungen von der Default-Konfiguration sind vielfältig. Diese sollten aber nur dann durchgeführt werden, wenn der Durchführende genau weiß was er da macht. Eine fehlerhaft Konfiguration kann zum Beispiel zu Störungen im Netzwerk führen, ferner könnten illegitime Maßnahmen implementiert werden. Beide zuvor genannten Beispiele würden zu einem Ausschluss aus unserem Netzwerk führen. Dennoch kann man gute Gründe haben die ein Abweichen von den Defaultwerten sinnvoll machen.

  • Es ist zum Beispiel möglich, ein Passwort zu setzen um den Node per Fernzugriff/Login zu warten oder einige erweiterte Einstellungen vorzunehmen.

Es kann durchaus sinnvoll sein, die LAN-Ports speziell zu konfigurieren oder zusätzliche Software für eine Bandbreitenbegrenzung zu installieren.

An dieser Stellen möchten wir nur beschreiben, wie man in diesen Konfigurationsmodus gelangt. Eine ausführliche Beschreibung einiger Erweiterungen ist in Arbeit. Siehe auch Pimp_My_Node

Vorgehensweise

  1. PC mit Router über Netzwerkkabel verbinden (gelbe LAN Ports am Router)
  2. Wenn der Router gestartet ist (Power, Sys, WLAN leuchten dauerhaft), QSS Taste (schwarzer Knopf) 6 Sekunden drücken (Abb.10) (bis der Router neu startet, das sieht man daran, dass alle Lampen einmal ausgehen). Danach wird die Sys-Lampe, unregelmäßig blinken (Siehe: http://www.nilsschneider.net/2013/02/10/freifunk-blinken.html).
  3. bei manchen Routern (z.B. beim WR841N) muss man jetzt das Netzwerkkabel am Router umstecken (blauer WAN Port)
  4. Abwarten, bis der PC eine neue LAN-Verbindung aufgebaut hat (DHCP ist aktiv)
  5. Adresse http://192.168.1.1 aufrufen. - Punkt "Knoten neu einrichten" anklicken (Abb. 11)
  6. Vergabe von Passwort für den Fernzugriff/Login. Dann auf "weiter" klicken (Abb. 12)
  7. bei Bedarf die Bandbreitenbegrenzung aktivieren und auf "weiter" klicken (Abb. 13)
  8. auf "Jetzt neustarten!" klicken (Abb. 14) - Der Router startet neu, die kommende Fehlermeldung kann ignoriert werden (Abb. 15)
  9. Netzwerkkabel trennen und im WLAN warten, bis das netz "kbu.freifunk.net" auftaucht

Verbinde keinesfalls Dein lokales Netz mit den gelben LAN-Ports des Nodes. Sonst steht es allen offen!

via Shell

Vorraussetzung für folgende Befehle sind eine Verbindung mit dem KBU Freifunk Netz sowie ein Terminal / Shell. Vergesst nicht eth0 gegen die Bezeichnung eures Netzwerkinterfaces, welches am Freifunk hängt zu tauschen. Bei Macbooks via Wlan z.B. "en1" statt "eth0"! Die link local Adresse der jeweiligen node findet ihr auf der KBU Register Seite. IPv6 ping

ping6 <link local adress des node>%eth0

IPv6 ssh - Hinter der link local Adresse "%" + "Netzwerk Interface an eurer Kiste" (Hier im Beispiel eth0)

ssh root@<link local adress des node>%eth0

Firmware upgrade bei node mit uplink

ssh root@<link local adress des node>%eth0              // SSH Verbindung zum Node aufbauen
cd ../tmp/                                              // in das Verzeichnis "tmp" wechseln
free                                                    // Freien Speicher prüfen
wget http://pfad/zur/firmware.bin                       // Firmware herunterladen oder
sysupgrade -v firmware.bin                              // Firmwareupgrade durchführen

Achtung: Beim Download der Firmware via wget kann auf dem Router die Integrität der Firmware nicht geprüft werden, da gpg i.d.R. auf den Routern nicht verfügbar ist. Deshalb ist es sicherer, den oben beschriebenen Weg zu wählen, oder die geprüfte Firmware per scp (s.u.) auf den Router zu kopieren.

Firmware upgrade bei node ohne uplink

scp -6 -v -r firmware.bin root@\[<linkloc>%eth0\]:../tmp/          // Firmware auf den node schieben (md5 checken!)
ssh root@<link local adress des node>%eth0 
cd ../tmp/  
sysupgrade -v firmware.bin  

LAN Kopplung

Eine LAN Kopplung kann in manchen Fällen sinnvoll sein, besonders wenn man einen VLAN fähigen Switch und eine bestehende Ntzwerkverkabelung hat. Hier werden die Switchports angwiesen auch über LAN zu meshen.

TL-WR841ND

03/2014: Hier wird über die alle 4 LAN Ports gemeshed, Mesh über WLAN kann man optional noch ausschalten! Folgende Config stammt von rampone/FF-KBU und wurde an 2 TL-WR841N v.8 getestet mit KBU-FF-Firmware 1.1.

vim /etc/config/network - Folgende Änderungen wurden an der FF-Firmware 1.0 vorgenommen:

  1. config interface 'freifunk' -> Hier haben wir eth0 aus "ifname" rausgenommen, damit kein ff aus dem eth0 (switch) rauskommt.
  2. config interface 'mesh_lan' -> kompl. codeblock hinzugefügt, dieser bewirkt das über eth0 (switch) gemeshed wird.


config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config interface 'wan'
	option ifname 'eth0'
	option proto 'dhcp'
	option type 'bridge'
	option accept_ra '0'
	option auto '1'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '0 1 2 3 4'

config interface 'freifunk'
	option ifname 'bat0'		#LAN-Kopplung: ifname eth1 entfernt
	option type 'bridge'
	option proto 'none'
	option auto '1'
	option accept_ra '1'
	option macaddr '10:fe:ed:f1:53:84'

config interface 'mesh'
	option proto 'batadv'
	option mtu '1528'
	option mesh 'bat0'

config interface 'mesh_vpn'
	option ifname 'mesh-vpn'
	option proto 'batadv'
	option mesh 'bat0'
	option macaddr '12:fe:ed:f2:53:84'

config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt
	option ifname 'eth1'
	option proto 'batadv'
	option mesh 'bat0'


vim /etc/config/wireless - Hier wird der Codeblock, der für das Mesh über WLAN verantwortlich ist auskommentiert (optional)

#config wifi-iface 'wifi_mesh'
#       option device 'radio0'
#       option network 'mesh'
#       option mode 'adhoc'
#       option ssid '02:d1:11:37:fc:39'
#       option bssid '02:d1:11:37:fc:39
TL-WDR4300

Das gleiche nochmal für den 4300er

vim /etc/config/network

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config interface 'wan'
	option ifname 'eth0.2'
	option proto 'dhcp'
	option type 'bridge'
	option accept_ra '0'
	option auto '1'
	option macaddr 'a2:f3:c1:65:81:cd'

config switch
	option name 'eth0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'eth0'
	option vlan '1'
	option ports '0t 2 3 4 5'

config switch_vlan
	option device 'eth0'
	option vlan '2'
	option ports '0t 1'

config interface 'freifunk'
	option ifname 'bat0'		#LAN-Kopplung: ifname eth0.1 entfernt
	option type 'bridge'
	option proto 'none'
	option auto '1'
	option accept_ra '1'
	option macaddr 'a0:f3:c1:64:81:cc'

config interface 'mesh'
	option proto 'batadv'
	option mtu '1528'
	option mesh 'bat0'

config interface 'mesh_vpn'
	option ifname 'mesh-vpn'
	option proto 'batadv'
	option mesh 'bat0'
	option macaddr 'a2:f3:c1:65:81:cc'

config interface 'mesh_lan'		#LAN-Kopplung: Codeblock mesh-lan hinzugefuegt
        option ifname 'eth0.1'
        option proto 'batadv'
        option mesh 'bat0'

Pimp My Node

An dieser Stelle möchten wir noch ein paar Erweiterungen vorstellen. Da die Geräte normalerweise 24/7 in Betrieb sind, kann, je nach Hardware, der ein oder andere Freifunkrouter mit ein paar zusätzlichen Funktionen und/oder Aufgaben betreut werden.

Web-Interface einschalten.

Um das WebInterface dauerhaft einzuschalten: Per SSH auf der Konsole einloggen und

/etc/init.d/uhttpd enable 

ausführen.

Zusätzliche WLANs
Hier eine Anleitung von Twinter, in der er euch zeigen möchte, wie Ihr einfach eurem Freifunk-Node zusätzliche WLANs beibringen könnt.

Einsperren des Freifunk-Routers in eine DMZ

Wer seinen Freifunk-Router einsperren und/oder die Bandbreite begrenzen möchte, kann dies am einfachsten tun, indem er ihn an seiner Firewall an einen eigenen Netzwerkport klemmt und diesen dann als DMZ konfiguriert. Ein KBU-Freifunk-Router muß zur Zeit im LAN DHCP, DNS, im Internet NTP sowie mit den fastd-Knoten reden können. Folgendes Bespiel für eine iptables-Firewall nimmt an, dass der Freifunk-Router über eth2 angeschlossen ist:

# eth2 darf nur dns, ntp, dhcp und ansonsten mit den fastdX reden
iptables -i eth2 -A INPUT   -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -i eth2 -A FORWARD -p udp --dport 67:68 --sport 67:68 -j ACCEPT
iptables -i eth2 -A INPUT   -p udp --dport 53                  -j ACCEPT
iptables -i eth2 -A INPUT   -p tcp --dport 53                  -j ACCEPT
iptables -i eth2 -A INPUT   -p tcp --dport 123                 -j ACCEPT
iptables -i eth2 -A FORWARD -p udp --dport 53                  -j ACCEPT
iptables -i eth2 -A FORWARD -p tcp --dport 53                  -j ACCEPT
iptables -i eth2 -A FORWARD -p tcp --dport 123                 -j ACCEPT
iptables -i eth2 -A FORWARD --dst 176.9.41.253                 -j ACCEPT
iptables -i eth2 -A FORWARD --src 176.9.41.253                 -j ACCEPT
iptables -i eth2 -A FORWARD --dst 178.63.59.41                 -j ACCEPT
iptables -i eth2 -A FORWARD --src 178.63.59.41                 -j ACCEPT
iptables -i eth2 -A FORWARD --dst 37.120.169.214               -j ACCEPT
iptables -i eth2 -A FORWARD --src 37.120.169.214               -j ACCEPT 
iptables -i eth2 -A FORWARD --dst 37.221.195.47                -j ACCEPT
iptables -i eth2 -A FORWARD --src 37.221.195.47                -j ACCEPT
iptables -i eth2 -A FORWARD --dst 78.46.68.75                  -j ACCEPT
iptables -i eth2 -A FORWARD --src 78.46.68.75                  -j ACCEPT
iptables -i eth2 -A FORWARD --dst 84.201.35.206                -j ACCEPT
iptables -i eth2 -A FORWARD --src 84.201.35.206                -j ACCEPT
iptables -i eth2 -A INPUT                                      -j DROP
iptables -i eth2 -A FORWARD                                    -j DROP
# eth2 darf maximal 2000 kbit/s ein- und ausgehenden traffic machen
wondershaper eth2 2000 2000

Prinzipiell könnte man den Traffic noch weiter einschränken. DHCP und DNS müssen nur zum DHCP- bzw. DNS-Server funktionieren und der Traffic zu den fastd-Servern ließe sich auf TCP Port 80 und UDP Port 10000 begrenzen.