Howto/Freifunk-Knoten aufstellen: Unterschied zwischen den Versionen

Aus Freifunk MWU Wiki
Zur Navigation springen Zur Suche springen
 
(74 dazwischenliegende Versionen von 15 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
[[Datei:Freifunk Antenne.jpeg|miniatur|rechts|Eine selbstgebastelte Richtfunkantenne zur Erhöhung der Reichweite. Für den Einstieg reichen aber auch die Stabantennen vom Hersteller.]]
 +
=Anleitungen zur Teilnahme am Netz von Freifunk Mainz/Freifunk Wiesbaden=
 +
Der Teilnahme am Freifunk-Netz bist du nur noch 2 kleine Schritte entfernt:
 +
#Besorge dir einen Router. Hier findest du eine Liste der [http://wiki.freifunk.net/Freifunk_Firmware_Gluon/Hardware unterstützten Geräte]. Wir [[Welchen Router kaufe ich|empfehlen diese Geräte]] von TP-Link.
 +
#Installiere darauf die Freifunk-Software. Folge '''[https://www.freifunk-mainz.de/GluonFlash.html dieser Anleitung]''' auf unserer Webseite, wenn du ein Neugerät mit Original-Software mit der Freifunk-Firmware bespielen willst.
  
Dies ist eine allgemeine Anleitung zur Router-Konfiguration auf OpenWRT-Basis für die Teilnahme am Netz von Freifunk Mainz.
+
== Fortgeschrittene Anleitungen==
 
+
* Willst du die Konfiguration deines Freifunk-Routers nochmal ändern, so folge [[Howto/Gluon_Konfig_Aendern | dieser Anleitung]].
Dieser Prozess umfasst ein paar Schritte:
+
*[[:Datei:Wohin mit den Freifunk-Router.pdf|Hier]] findest du außerdem eine Anleitung, wo du den Router am Besten aufstellst.
__TOC__
 
 
 
= Router Flashen =
 
Eine grobe Übersicht, wie das flashen vor sich geht [[Howto/Flashen | findet man hier]].
 
 
 
Wir verwenden als Grundlage für die Router das Betriebssystem [https://openwrt.org/ OpenWRT]. Um den Prozess einfacher zu machen, und da der Speicherplatz auf den billigeren Routern sehr begrenzt ist, haben wir '''vorkompilierte Images''' im Angebot:
 
Die jeweils aktuelle Version für deinen Router liegt unter [http://images.freifunk-mainz.de images.freifunk-mainz.de].
 
 
 
'''Alternativ''' kann dem Router auch ein "normales" OpenWRT verpasst werden, dann muss man jedoch die benötigten Pakete von Hand nachinstallieren:
 
 
 
opkg update
 
opkg install kmod-batman-adv tinc
 
 
 
= Router einrichten =
 
 
 
Nachdem OpenWRT erfolgreich auf den Router geflasht ist, bezieht dieser die IP-Adresse <code>192.168.1.1</code>. Da bereits ein DHCP Server initial auf den Kisten läuft musst du dir keine eigene IP-Adresse setzen
 
 
 
== Passwort setzen ==
 
Wie bei OpenWRT üblich, sollte das erste Einloggen per Telnet erfolgen, um das Root-Passwort zu ändern.
 
Windows-Benutzer haben eventuell kein Telnet zur Verfügung. Dann kann auch hier Putty benutzt werden. Als Protokoll dann Telnet wählen
 
 
 
telnet 192.168.1.1
 
 
 
passwd <enter>
 
Neues Passwort eingeben:
 
Neues Passwort wiederholen:
 
 
 
(Achtet darauf, das die Passwortänderung auch bestätigt wird <br />und ihr euch nicht beim Wiederholen vertippt habt).
 
 
 
Danach ist Telnet auf Port 23 abgeschaltet und künftige Verbindungen nur noch per SSH möglich. Verbindung trennen und nun mit folgenden Möglichkeiten neu einloggen:
 
 
 
'''Unix-Benutzer: '''Die weiteren Einlogvorgänge erfolgen dann über SSH als Benutzer root:
 
 
 
$ ssh root@192.168.1.1
 
 
 
'''Windows-Benutzer: '''Mittels dem kostenlosen Tool PUTTY ([http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Download]) - Hier Login per IP Adresse und SSH (Port 22). Beim Verbindungsaufbau wird ein Vertrauensschlüssel angezeigt, den man speichern kann.
 
 
 
Benutzer eingeben: "root"
 
Passwort eingeben: was du oben mit passwd neu gesetzt hattest
 
 
 
[[Datei:Putty sample1.jpg]]
 
 
 
==Empfehlung: Sicherung der wichtigsten Dateien==
 
 
 
Die Praxis zeigt, dass es gut ist, später nochmal einen Blick in die Original-Dateien werfen zu können, wenn es um definierte Hardware Eigenschaften geht. Wer mag legt Kopien an von:
 
 
 
mkdir -p /etc/config/originals
 
cp /etc/config/* /etc/config/originals
 
 
 
Die Meldung "omitting directory originals" ignorieren.
 
 
 
* Alternativ: Für ein Backup ohne Fehlermeldung (dafür aber schlimm einzugeben ;)
 
 
 
mkdir -p /etc/config/originals/
 
cd /etc/config
 
cp -r `ls -A /etc/config/ | grep -v 'originals'` /etc/config/originals/
 
 
 
'''Optional auch für Hartgesottene: Bootloader auch sichern:'''
 
Nicht notwendig, aber wer meint es tun zu müssen, kann auch den Bootloader des Gerätes als Backup sichern und wieder zurück spielen. Nachzulesen bei: '''[http://wiki.openwrt.org/doc/howto/generic.backup Backup des Bootloaders]'''
 
 
 
==Netzwerk konfigurieren==
 
 
 
Leider unterscheiden sich die Addressierungen der Netzwerkinterfaces der Router je nach Modell und Hardware-Revision.
 
Im folgenden der Anleitung werden die Interfaces als <span style="background: #{{Color|Blau}}; " ><WAN-IF></span> und <span style="background: #{{Color|Gelb}};"><SWITCH-IF></span> bezeichnet.
 
{{Todo|Du hast einen Router, der nicht in der Tabelle ist? Dann bitte nachtragen.}}
 
{| class="wikitable sortable"
 
! Router-Modell
 
! HW-Revision
 
! style="background: #{{Color|Blau}}; " | WAN-Interface
 
! style="background: #{{Color|Gelb}};" | Switch-Interface
 
! 2,4 GHz
 
! 5 GHz
 
|-
 
| tl-wr741nd
 
| v5
 
| eth1
 
| eth0
 
| Ja
 
| Nein
 
|-
 
| tl-wr841nd
 
| v7 (v8.x nicht geeignet)
 
| eth0
 
| eth1
 
| Ja
 
| Nein
 
|-
 
| tl-wr1043nd
 
| v 1.x
 
| eth0.2
 
| eth0.1
 
| Ja
 
| Nein
 
|-
 
| tl-wdr3500
 
| v1
 
| eth1
 
| eth0
 
| Ja
 
| Ja
 
|-
 
| tl-wdr3600
 
| v1
 
| eth1
 
| eth0
 
| Ja
 
| Ja
 
|}
 
 
 
Laden der Datei ''network'' in den Editor. Eine Hilfe gibt es:
 
[http://www.linux-fuer-alle.de/doc_show.php?docid=29 hier]
 
 
 
vi /etc/config/network
 
 
 
Wenn du dich mit den wichtigsten VI-Befehlen bekannt gemacht hast, solltest du '''zuerst den wichtigen BEFEHL ":SET NOAI" eingeben.''' Dieser verhindert, dass eingefügte Blöcke nicht zeilenweise nach rechts verschoben werden.
 
 
 
Einige Teile der Datei müssen jetzt ausgetauscht, andere ergänzt werden.
 
 
 
Gehen wir die Blöcke einfach mal durch:
 
 
 
{{Config-Block
 
|Zeile=config interface 'loopback'
 
|Aktion=Der ganze Block bleibt erhalten
 
|}}
 
 
 
{{Config-Block
 
|Zeile=config globals 'globals'
 
|Aktion=Der ganze Block (2 Zeilen) fliegt raus!
 
|strike=true
 
|}}
 
 
 
An dieser Stelle fügen wir ein: (Bei Putty-Nutzern = Shift-Einfg)
 
 
 
config interface 'vpn'
 
        option ifname 'freifunk_vpn'
 
        option mtu '1500'
 
        option proto 'batadv'
 
        option mesh 'bat0'
 
 
config interface 'mesh'
 
        option ifname 'adhoc0'
 
        option mtu '1528'
 
        option proto 'batadv'
 
        option mesh 'bat0'
 
 
 
{{Config-Block
 
|Zeile=config interface 'lan'
 
|Aktion=Dieser Block wird gleich entfernt, vorher jedoch die Zeile '''option ifname''' suchen und den Namen des Interfaces mit der Angabe in der Tabelle oben vergleichen. Dieser Name ist das <span style="background: #{{Color|Gelb}};"><SWITCH-IF></span>. '''Block danach löschen'''.
 
|strike=true
 
|}}
 
 
 
An dieser Stelle einsetzen:  
 
Für Router '''nur''' mit 2,4 GHz ...
 
 
 
config interface 'freifunk'
 
        option ifname '<span style="background: #{{Color|Gelb}};"><SWITCH-IF></span> bat0 freifunk_wlan'
 
        option type 'bridge'
 
        option proto 'static'
 
        #  Eure IP-Addresse aus dem bei ipaddr ersetzen (IP-Adresse bekommt ihr über hallo@freifunk-mainz.de)
 
        option ipaddr  '10.37.X.X'
 
        option netmask '255.255.0.0'
 
        option dns    '10.37.4.1'
 
 
 
Für Router mit 2,4 GHz '''und''' 5 GHz ...
 
 
 
config interface 'freifunk'
 
        option ifname '<span style="background: #{{Color|Gelb}};"><SWITCH-IF></span> bat0 freifunk_wlan freifunk_wlan2'
 
        option type 'bridge'
 
        option proto 'static'
 
        #  Eure IP-Addresse aus dem WIKI bei ipaddr ersetzen
 
        option ipaddr  '10.37.X.X'
 
        option netmask '255.255.0.0'
 
        option dns    '10.37.4.1'
 
 
 
{{Config-Block
 
|Zeile=config interface 'wan'
 
|Aktion=Dieser Block bleibt erhalten
 
|}}
 
 
 
{{Config-Block
 
|Zeile=config interface 'wan6'
 
|Aktion=Der ganze Block (3 Zeilen) fliegt raus!
 
|strike=true
 
|}}
 
 
 
{{Config-Block
 
|Zeile=config switch...
 
|Aktion=Diese (beiden) Blöcke bleiben erhalten
 
|}}
 
 
 
Speichern und raus:  Bei 'vi' mit ESC  :wq
 
 
 
==DNS Ausschalten==
 
 
 
DNS und DHCP abschalten durch einmaliges Absetzen des folgenden Befehls, damit keine IP-Adressen vom Router selbst verteilt werden:
 
 
 
/etc/init.d/dnsmasq disable
 
 
 
 
 
==WLAN konfigurieren==
 
 
 
Laden der Datei ''wireless'' in den Editor. Eine Hilfe für den vi-editor gibt es:
 
[http://www.linux-fuer-alle.de/doc_show.php?docid=29 hier ]
 
 
 
vi /etc/config/wireless
 
 
 
Der Inhalt wird modifiziert und ergänzt. Gehen wir wieder die Blöcke durch
 
 
 
{{Config-Block
 
|Zeile=config wifi-device radio0
 
|Aktion=Dieser Block bleibt erhalten. Bei dieser Zeile prüfen, ob Kanal 11 eingestellt ist: '''option channel  11'''.
 
|}}
 
 
 
Danach das WLAN einschalten (im selben Block '''config wifi-device radio0'''):
 
 
 
{{Config-Block
 
|Zeile=option disabled 1
 
|Aktion=diese Zeile entfernen
 
|strike=true
 
|}}
 
 
 
In der Original-Datei gibt es dahinter nun einen Block:
 
 
 
{{Config-Block
 
|Zeile=config wifi-iface
 
|Aktion=Dieser ganze Block wird entfernt und statt dessen durch gleich zwei Blöcke ersetzt!
 
|strike=true
 
|}}
 
 
 
Einfügen an dieser Stelle:
 
 
 
config wifi-iface
 
        option device    'radio0'
 
        option encryption 'none'
 
        option ssid      'mesh'
 
        option ifname    'adhoc0'
 
        option mode      'adhoc'
 
        option bssid      '02:ca:ff:ee:ba:be'
 
 
config wifi-iface
 
        option device    'radio0'
 
        option mode      'ap'
 
        option encryption 'none'
 
        option ifname    'freifunk_wlan'
 
        option ssid      'Freifunk Mainz'
 
        option network    'freifunk'
 
        option isolate    '1'
 
 
 
 
 
Nur bei einem Dualband Router mit 2,4 und 5 GHz geht es in der Originaldatei weiter. Alle anderen speichern jetzt und sind fertig mit der Bearbeitung dieser Datei.
 
 
 
Bei Routern mit zusätzlichem 5 GHz-Band gibt es jetzt noch einmal die gleichen Blöcke für "radio1".
 
 
 
{{Config-Block
 
|Zeile=config wifi-device  radio1
 
|Aktion=Dieser Block bleibt erhalten.
 
|}}
 
 
 
Danach das WLAN einschalten (im selben Block '''config wifi-device radio1'''):
 
 
 
{{Config-Block
 
|Zeile=option disabled 1
 
|Aktion=diese Zeile entfernen
 
|strike=true
 
|}}
 
 
 
In der Original-Datei gibt es dahinter wieder nur einen Block:
 
 
 
{{Config-Block
 
|Zeile=config wifi-iface
 
|Aktion=Dieser ganze Block wird entfernt und statt dessen durch gleich zwei Blöcke ersetzt!
 
|strike=true
 
|}}
 
 
 
Der letzte Block wird wieder entfernt und durch diese Blöcke ersetzt:
 
 
 
config wifi-iface
 
      option device    'radio1'
 
      option mode      'adhoc'
 
      option encryption 'none'
 
      option ifname    'adhoc0'
 
      option ssid      'mesh'
 
      option bssid      '02:ca:ff:ee:ba:be'
 
 
config wifi-iface
 
      option device    'radio1'
 
      option mode      'ap'
 
      option encryption 'none'
 
      option ifname    'freifunk_wlan2'
 
      option ssid      'Freifunk Mainz'
 
      option network    'freifunk'
 
      option isolate    '1'
 
 
 
Wir speichern wieder mit ESC  :wq
 
 
 
==Tinc konfigurieren==
 
 
 
===Reiner Mesh-Node?===
 
Auch wenn der Router nur als Mesh-Node, also ohne DSL Zugang, nur mit reiner Funkverbindung zu Nachbar-Knoten dienen soll, lohnt es sich die folgenden Schritte trotzdem durchzuführen. Das Melden des öffentlichen Schlüssels kann dann aber entfallen. Man ist gut vorbereitet, falls der Node dann später doch mal an einen DSL-Anschluss angeschlossen werden soll.
 
 
 
Tinc auszuschalten ist zwar nicht unbedingt nötig, hilft dem Router dann allerdings Resourcen zu sparen. Wie das Aus- und Einschalten von Tinc geht, steht am Ende unter [weitere Handgriffe].
 
 
 
 
 
Laden der Datei ''tinc'' in den Editor. Eine Hilfe für den VI-Editor gibt es:
 
[http://www.linux-fuer-alle.de/doc_show.php?docid=29 hier]
 
 
 
vi /etc/config/tinc
 
 
 
Der komplette Inhalt wird gelöscht und mit folgendem Inhalt gefüllt (NODENAME bitte austauschen):
 
 
 
<small>
 
Man kann vor dem öffnen komfortabel die Datei leeren
 
echo > /etc/config/tinc
 
Sicher hast du ja das obige Backup aller Dateien gemacht, oder?
 
</small>
 
 
 
config tinc-net 'ffmz'
 
        option enabled '1'
 
        option generate_keys '1'
 
        # NODENAME ersetzen. Wird aus der IP im Wiki erstellt durch Entfernung der Punkte
 
        # z.B. 10.37.1.100 wird zu  10371100. Es kann zu Doppeldeutigkeiten kommen.
 
        option Name 'NODENAME'
 
        option key_size '2048'
 
        option logfile '/tmp/log/tinc.ffmz.log'
 
        option debug '0'
 
        # gate2 ist derzeit das einzig existierende Gateway
 
        list ConnectTo 'gate2'
 
        option DirectOnly '1'
 
        option Forwarding 'off'
 
        option Interface 'freifunk_vpn'
 
        option Mode 'switch'
 
        option Compression '10'
 
 
 
 
 
Der NODENAME muss hier eingesetzt werden. Dazu gerade mal ein Wort, warum es bei der Namensbildung zu Doppeldeutigkeiten kommen kann und was man dagegen tun kann. Wir benutzen dazu die IP-Adresse des Gerätes, die du in der NETWORK Datei eingetragen hast und entfernen einfach alle Punkte.
 
 
 
'''Beispiel: '''die IP 10.37.11.60 würde zu 10371160 wenn man nur die Punkte entfernt. Jetzt ergibt aber 10.37.1.160 den gleichen Nodenamen. Soweit klar?. Um den Namen wieder eindeutig zu bekommen sollte man den 3.+4. Block der Adresse mit linksbündigen Nullen auffüllen. Das sieht dann so aus: 10.37.11.60 wird dann zu  1037011060 - Leuchtet ein?  Der Nodename wird benutzt um den Dateinamen von TINC erstellen zu lassen, der den privaten Schlüssel enthält. Einfach weiterlesen...
 
 
 
Speicher und verlassen des Editors wieder mit ESC :wq
 
 
 
Tinc neu starten damit einmalig die Schlüssel generiert werden (Achtung: das geht nur einmal)
 
 
 
/etc/init.d/tinc restart
 
 
 
Durch "......." wird eine Tätigkeit angezeigt. Danach finden wir ein neues Verzeichnis mit neuen Dateien.
 
 
 
cd /etc/tinc/ffmz
 
 
 
Zeigt eine '''rsa_key.priv''' und ein weiteres Unterverzeichnis '''hosts'''. Die '''rsa_key.priv''' beinhaltet den privaten Schlüssel der nicht herausgegeben, aber extern als Sicherheitskopie aufbewahrt werden sollte. Genau so verhält es sich mit dem öffentlichen Schlüssel den wir im hosts Unterverzeichnis finden.
 
 
 
cd /etc/tinc/ffmz/hosts
 
 
 
Der öffentliche Schlüssel hat den Namen den wir in der TINC Datei eben unter '''option Name 'NODENAME'''' eingetragen haben.
 
 
 
Dessen Inhalt auflisten (cat 1037.....) und per Mail an {{#show: Systeme/Mail | ?Mail-Keys }} zusammen mit dem NODENAMEN senden. Dieser Schlüssel muss im gate2 eingetragen werden.
 
 
 
Datei '''gate2''' im Verzeichnis hosts anlegen:
 
 
 
vi /etc/tinc/ffmz/hosts/gate2
 
 
 
Befüllen mit dem Inhalt aus der unten angezeigten Tabelle - GATE2 - (Gate1 ist offline)
 
 
 
{{#ask: [[Freifunk-Gateway::+]]
 
|?Node-Tinc-Key = Tinc-Key
 
|?Node-Kommentar = Kommentar
 
| mainlabel=Gateway
 
| intro=In dieser Tabelle werden unsere Gateways mitsamt den dazugehörigen Tinc-Schlüsseln gelistet
 
|}}
 
 
 
Wir speichern wieder mit ESC  :wq
 
 
 
==Firewall Datei befüllen ==
 
 
 
Die Firewall Datei muss neuen Inhalt bekommen.
 
 
 
vi /etc/config/firewall
 
 
 
Alles muss raus. Neu rein der folgende Inhalt:
 
 
 
<small>
 
Man kann vor dem öffnen komfortabel die Datei leeren
 
echo > /etc/config/firewall
 
Bitte '''vorher''' ein Backup machen!
 
</small>
 
 
 
config defaults
 
        option syn_flood        1
 
        option input            ACCEPT
 
        option output          ACCEPT
 
        option forward          REJECT
 
 
 
config zone
 
        option name            wan
 
        option network          'wan'
 
        option input            ACCEPT
 
        option output          ACCEPT
 
        option forward          REJECT
 
 
 
config zone
 
        option name            freifunk
 
        option network          'freifunk'
 
        option input            ACCEPT
 
        option output          ACCEPT
 
        option forward          REJECT
 
 
 
config rule
 
        option name            Reject-Telnet
 
        option src              freifunk
 
        option proto            tcp
 
        option dest_port        23
 
        option target          REJECT
 
 
 
Wir speichern wieder mit ESC  :wq
 
 
 
==Weitere Handgriffe==
 
 
 
Diesen Befehl noch absetzen. Für Nodename wieder den in der TINC Datei angegebenen verwenden:
 
 
 
uci set system.@system[0].hostname=NODENAME
 
 
 
WOW - fast fertig: jetzt kommt ein Reboot. Dann heißt es "Daumen drücken" - Viel Glück
 
 
 
reboot -f
 
 
 
PS: Am Freifunk-Router muss jetzt vom WAN Port aus ein Kabel zum privaten Router führen, damit TINC eine VPN Verbindung herstellen kann, oder ein anderer Freifunk-Router in Funkreichweite sein, damit das eben erzeugte Gerät sich damit vermeshen kann. Sonst gibt es nach dem Boot-Vorgang keine IP-Adresse vom neuen FF-Router. Ist eine VPN Verbindung notwendig, funktioniert die natürlich erst, wenn dein öffentlicher Schlüssel, den du über die E-Mail Adresse gesendet hast zusammen mit deinem NODENAME am Gateway von einem unserer Admins eingetragen ist. Geduld bitte.
 
 
 
----
 
 
 
===Tinc ausschalten===
 
Wird der Node nicht an einem DSL-Anschluss angeschlossen, kann man den TINC Prozess anhalten
 
 
 
/etc/init.d/tinc disable
 
/etc/init.d/tinc stop
 
 
 
Schaut man dann mit "ps" nach, müsste der "tincd" Service verschwunden sein.
 
 
 
===Tinc einschalten===
 
Wird der Node später doch an einem DSL-Anschluss betrieben, dann sollten folgende Befehle einmalig abgesetzt werden (Vorausgesetzt tinc wurde wie oben in der Anleitung beschrieben schon eingerichtet und die Schlüssel generiert).
 
 
 
/etc/init.d/tinc enable
 
/etc/init.d/tinc start
 
 
 
Schaut man dann mit "ps" nach, müsste der "tincd" Service wieder erscheinen.
 
 
 
Nicht vergessen den öffentlichen Schlüssel an unsere Gateway-Betreiber unter Angabe des NODENAME zu senden. Erst wenn der Schlüssel am Gateway eingetragen ist, funktioniert der VPN Tunnel über den DSL-Anschluss. [[Weitere Handgriffe]]
 
 
 
= Konfiguration testen =
 
Einen Überblick findet man unter [[Howto/Funktionstests | Funktionstests]].
 

Aktuelle Version vom 2. Oktober 2018, 15:52 Uhr

Eine selbstgebastelte Richtfunkantenne zur Erhöhung der Reichweite. Für den Einstieg reichen aber auch die Stabantennen vom Hersteller.

Anleitungen zur Teilnahme am Netz von Freifunk Mainz/Freifunk Wiesbaden

Der Teilnahme am Freifunk-Netz bist du nur noch 2 kleine Schritte entfernt:

  1. Besorge dir einen Router. Hier findest du eine Liste der unterstützten Geräte. Wir empfehlen diese Geräte von TP-Link.
  2. Installiere darauf die Freifunk-Software. Folge dieser Anleitung auf unserer Webseite, wenn du ein Neugerät mit Original-Software mit der Freifunk-Firmware bespielen willst.

Fortgeschrittene Anleitungen

  • Willst du die Konfiguration deines Freifunk-Routers nochmal ändern, so folge dieser Anleitung.
  • Hier findest du außerdem eine Anleitung, wo du den Router am Besten aufstellst.