Freifunk Aachen/Anleitungen für Experten

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen


Achtung, diese Anleitungen sind wirklich nur für absolute Freifunk-Experten, oder Leute die es werden wollen, gedacht. Wenn du einfach nur ohne viel Aufwand einen Freifunk-Router betreiben willst, halte dich an die Anfängeranleitung. Die Anleitungen, die wir hier auf der Expertenseite zusammengetragen haben, sind für dich entweder nicht zielführend, sie können deinen Router beschädigen, oder Leute die dir später helfen wollen, verwirren.

Firmware flashen & Ersteinrichtung

Freifunk Aachen verwendet die Firmware Gluon. Sie ist OpenWRT-basiert (genauer: OpenWRT mit zusätzlichen Packages; u.a. ohne LuCI). Entsprechend verläuft die Installation:

  • Firmware-Image herunterladen (muss natürlich zu Routermodell u. -version passen!).
  • Image über das Webinterface des Routers hochladen und flashen (meist unter der Bezeichnung „Firmware Upgrade” zu finden).

Konkret für TP-Link Router:

  • Webinterface ist 192.168.0.1
  • Nutzername und Passwort sind admin
  • unter „System Tools → Firmware Upgrade“ kann geflasht werden

Nach Reboot muss Gluons Ersteinrichtungs-Wizard durchgeführt werden; die IP ist nun 192.168.1.1. Gehe zuerst oben rechts auf „Expert Mode“ und hinterlege deinen SSH-Key, folge dann dem Wizard (ausführliche Anleitung). Nach Abschluss rebootet der Router wieder, dann ist er im normalen Betrieb. D.h.:

  • Er hat kein Webinterface mehr. Über SSH kannst du aber eh alles machen, siehe Gluon Wiki: First SSH connection, Command-line administration. Zurück zum Wizard (config mode) kommst du, indem du am laufenden Router 5 Sekunden die (einzige) Taste des Routers drückst, oder per SSH mit uci set "gluon-setup-mode.@setup_mode[0].enabled=1" und anschließendem uci commit und reboot.
  • Er strahlt ein offenes Netzwerk mit SSID Freifunk aus. (Das ist wohl Sinn des Ganzen.) Über die LAN-Ports kommt man (per default) ebenfalls ins Freifunk-Netz. IPs kommen aus 10.5../16 (siehe Liste). Weiterhin strahlt er wifimesh-{g,a}-ac aus und verbindet sich automatisch mit anderen Knoten in Reichweite zu einem Mesh-Netzwerk.
  • Er hat eine Statusseite unter https://[fdac::ac] (dies ist die Seite des Routers, zu dem du verbunden bist) und natürlich unter seiner öffentlichen IPv6, die du auf unserer Freifunk Karte finden kannst
  • Er baut einen (oder mehrere) Tunnel zu sogenannten Supernodes auf, über die jeglicher externer („Internet”-)Verkehr getunnelt wird.
  • Er sendet Statistik-Daten an einen Server (alfred master), aus denen u.a. die Map generiert wird.

Fernzugriff per SSH

Wie oben beschrieben hat der Router im normalen Betrieb kein graphisches Webinterface. Die Fernadministration lässt sich aber über die Kommandozeile durchführen. Das mag abschrecken (und ist im Normalfall auch selten nötig), ist aber gar nicht so schwer:

Begriffsklärung: "Updatesicherheit"

Wer ein wenig im Forum unterwegs ist, und nach Einstellmöglichkeiten fragt, die über die Optionen des Webinterface hinaus gehen, ist oft mit dem Begriff "Updatesicherheit" konfrontiert. Was bedeutet das?

Der Begriff "updatesicher" soll bezeichnen, dass Einstellungen für die gewünschte Erweiterung nicht immer nach einem Update neu vorgenommen werden müssen. Was nicht updatesicher ist, wird also bei jedem Autoupdate gelöscht.

Dinge die in /etc/sysupgrade.conf eingetragen wurden, bleiben jedoch erhalten. Es ist also grundsätzlich möglich, alle Einstellungen updatesicher zu machen, indem man eine Crontab und eine Skriptsammlung in die sysupgrade.conf einträgt. In der Crontab steht ein Skript, welches regelmäßig prüft, ob die nicht-updatesicheren Einstellungen noch vorhanden sind. Wenn nicht, dann wird ein weiteres Skript ausgeführt, welches alle für die gewünschte Erweiterung notwendigen Befehle neu ausführt. Die Prüfung auf Vorhandensein der Einstellungen in der Crontab soll den Flashspeicher vor unnötigen Schreibzugriffen schonen, und sollte daher in der Funktionalität read-only sein.

Outdoor-Router basteln

Populär und immer wieder gewünscht: Wie kriege ich den Freifunkrouter wasserdicht, damit ich ihn nach draußen stellen kann, wo die Fensterscheibe nicht das Signal dämpft. Wenn du Interesse hast, nimm gerne Kontakt mit anderen Aachener Freifunkern auf – dann kann gemeinsam gebastelt werden.

Supernode-Administration

Wir listen euch hier die Fähigkeiten auf, die ihr im Team mindestens mitbringen müsst, um einen Supernode zu administrieren. Sobald die Grundkenntnisse vorhanden sind, ist die Architektur des Supernodes eigentlich schon sonnenklar, und die organisatorischen Besonderheiten (z.B. "Wie komme ich an die Zugangsdaten vom Rheinland-Exit-VPN?") lassen sich dann per Mail klären.

Linux-Kenntnisse

Hier kann man leider nicht eine Checkliste geben, die ihr dann abarbeiten könnt, und am Ende seid ihr Linux-Gurus. Dafür ist der Themenkomplex zu groß.

Daher ist die Empfehlung: Installiert eine Linux-Distribution (z.B. Ubuntu), und versucht damit, im alltäglichen Leben zu arbeiten. Setzt dabei insbesondere einen Fokus darauf, die Kommandozeile beherrschen zu lernen, auch wenn es für alles eine GUI gibt. Die Kommandozeile ist nämlich der einzige Weg, mit einem Linux-Server zu kommunizieren, grafische Benutzeroberflächen gibt es auf einem Supernode nicht! Mietet euch vielleicht nach einiger Zeit einen VServer, setzt einen Webserver auf und hostet so eine eigene Homepage ohne Homepagebaukasten o.ä.

Wenn ihr irgendwo hängen bleibt, schaut in das englischsprachige (!) Arch Wiki.

Als Einstiegspunkt ist der gesamte Stoff der LPIC-1 Prüfung sicherlich sinnvoll und wird auf jeden Fall irgendwann nützlich. Prüfungsstoff lernen klingt erstmal einschüchternd, aber dies sind Kenntnisse die man bei Benutzung eines Linuxsystems sowieso größtenteils "per Osmose" im learning-by-doing aufnimmt. Nach einiger Zeit solltet ihr aber mal ins Prüfungsprogramm reinschnuppern, um euer Wissen zu konsolidieren, denn irgendwas übersieht man immer.

Das Lernen auf der Kommandozeile des Freifunkknoten bietet sich nur beschränkt an. Auf den Knoten wurden die Befehle aus Speicherplatzmangel funktionell beschnitten, und mit gestutzten Federn kann man nicht fliegen. Wer sich bei seinem Linux-Abenteuer nicht an die Dualboot-Installation traut, kann eine Linux-VM in VirtualBox aufsetzen, oder sich einen Raspberry Pi für ca. 30€ kaufen, der genau zum Linux-Lernen an Schulen entworfen wurde. Keine Sorge, ihr werdet nicht mit quietschbunter Lernspielsoftware beworfen, der Raspberry Pi ist voll erwachsenenkompatibel und wird mit einem vollwertigen Linux bespielt.

Standard-Netzwerk-Kenntnisee

Für die Administration eines Supernodes müsst ihr zumindest mit folgenden Standard-Protokollen vertraut sein. Beißt euch aber nicht genau an diesen Protokollen fest, sondern schaut auch, was euch abseits eures Wegs begegnet. Es wird immer noch eine Implementierung oder ein Werkzeug genannt, in deren Dokumentation ihr euch einlesen könnt, um einen Startpunkt in die Thematik zu haben. Die hier genannten RFCs decken nur Kernaspekte der Protokolle ab, bieten aber ebenfalls einen guten Einstiegspunkt:

  • IPv4 (iproute2, RFC 791)
    • CIDR (RFC 4632)
    • NAT (RFC 3022)
    • ICMPv4 (RFC 792)
    • ARP (RFC 826)
  • IPv6 (iproute2, RFC 2460, RFC 3513)
    • SLAAC (radvd, RFC 4862, RFC 4941)
    • ICMPv6 (RFC 4443)
    • Neighbor Discovery (RFC 4861)
  • TCP (RFC 793)
  • UDP (RFC 768)
  • DNS (isc-bind, RFC 1053)
  • DHCPv4 (isc-dhcpd, RFC 2131)
  • BGP (bird, quagga, RFC 1267)
  • tun/tap (OpenVPN)
  • Webserver (nginx)

Freifunkspezifische Netzwerk-Kenntnisse

Hier werden Protokolle oder Programme aufgelistet, die exotisch sind und wohl nicht so vielen Deployments neben Freifunk eingesetzt werden.

  • fastd: Layer-2-VPN
  • tinc: VPN
  • batman-adv: Mesh-Routing, Layer-2-Schicht
  • Alfred: batman-adv Metadatenannouncer
  • gluon: site.conf anpassen und Firmwarebauen ist natürlich notwendig!
    • OpenWRT: Grundlage von Gluon, leider muss man immer noch in dieses Wiki schauen, weil nicht alles bei Gluon-Docs nochmal durchgekaut wird.

Gut zu wissen

Euer Supernode läuft auch ohne das Zeug, aber dann isses halt kacke™

  • NTP (ntpd)
  • E-Mail (postfix)
  • Automatisierung (Ansible, Puppet, Chef)
  • Monitoring (Munin, Graphite, Zabbix, Icinga)
  • IC-VPN/dn42/ChaosVPN: Darknets, mit denen sich Freifunkcommunities gerne verbinden
  • nmap: Praktisches Diagnosewerkzeug