Ein Gateway einrichten auf Raspbian
Dies ist ein Entwurf!! Er funktioniert eventuell an manchen Stellen nicht. Vorweg: Es sollte aufgrund der fehlenden Leistung nur in Tests verwendet werden!
Inhaltsverzeichnis
Schritt 1[Bearbeiten]
Installiere als erstes Die nötigen Programme(Batman adv., fastd, libsodium, libuecc) von [1]: http://dl.ffm.freifunk.net/public/packages-raspi/
Dies geht optimal mit 'wget'.
Nun musst diese installieren dazu fuehrst du folgendes aus:
sudo dpkg -i PAKETNAME
Mit Ausnahme von BATMAN adv.!
Batman adv. wird etwas anders installiert. Hierzu brauchst du Kernel Sources welche du mit den folgenden Befehlen bekommst [2]:
# Download von dem nötigen Script: sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source && sudo chmod +x /usr/bin/rpi-source # Sollte folgendes nicht vorhanden sein einfach per 'apt-get' nachinstallieren. sudo rpi-update # Nun das Script von vorhin: sudo rpi-source # Sollte es Fehler geben bitte hier nachschlagen: https://github.com/notro/rpi-source/wiki
Nun kann auch hier die .deb-Datei installiert werden wie oben.
Anschließend muss, da es eventuell noch Fehler gibt, folgendes ausgeführt werden:
cd /usr/src/batman-adv-2013.4.0 dkms remove batman-adv/2013.4.0 --all dkms add batman-adv/2013.4.0 dkms build batman-adv/2013.4.0 dkms install --force batman-adv/2013.4.0
Nun muss noch bactl installiert werden. Das geht mit:
sudo apt-get install batctl
Wenn du willst kannst du nun noch dnsmasq für DNS und DHCP installieren (Anleitung folgt):
sudo apt-get install dnsmasq
Schritt 2[Bearbeiten]
Nun muss das Ganze eingestellt werden. Als erstes machst du dir die fastd Keys mit (MERKEN!!!):
fastd --generate-key
Dann machst du am besten ein Script mit folgenden Inhalt (basierend auf Wiflix Script)[3]:
#!/bin/bash IP (IP welche im FF genutzt wird): ' read lan_ip echo 'MAC welche das GW im FF haben soll: ' read vpn_mac echo 'Privaten Fastd vom vorherigen Befehl: ' read vpn_secret mkdir -p /etc/fastd/vpn/ cd /etc/fastd/vpn/ tee fastd.conf <<DELIM log to syslog level warn; interface "vpn-mesh"; method "salsa2012+gmac"; # new method, between gateways for the moment (faster) bind 0.0.0.0:10000; hide ip addresses yes; hide mac addresses yes; include "secret.conf"; mtu 1426; include peers from "peers"; on up " ifup bat0 --force ip link set address $vpn_mac up dev \$INTERFACE "; DELIM echo 'secret "'$vpn_secret'";' > secret.conf
Hier wird nicht genatet!!!
Um die Nodes zu verbinden per Fastd musst du eine (externe) IP (bei nur einem GW) in die Firmware einbauen. Da gehört der Public(Öffentliche) Key hin. In die Dateien (welche keine Endung benötigen) kommt folgendes hinein:
#NAME DES NODE key "KEY DES NODE";
Wir machen das in dem wir auf Github eine Repo haben und diese beim install in den Ordner '/etc/fastd/vpn/peers/' clonen und anschließend folgendes Script in dem Ordner auführen lassen per CronJob [4]:
#!/bin/sh # hop into correct directory to avoid cron pwd sucks cd $(dirname $0) # function to get the current sha-1 getCurrentVersion() { git log --format=format:%H -1 } # get sha-1 before pull revision_current=$(getCurrentVersion) git pull -q # get sha-1 after pull revision_new=$(getCurrentVersion) # if sha-1 changed, make fastd reload the keys if [ "$revision_current" != "$revision_new" ] then kill -HUP $(pidof fastd) fi
Starten könnt ihr Fastd mit:
sudo fastd -d -c /etc/fastd/vpn/fastd.conf
Schritt 3[Bearbeiten]
Nun wollen wir den Pi noch in der Map anzeigen. Dazu musst du zuerst Alfred installieren. Alfred downloadest du dir als Source von folgender Seite runter:
http://www.open-mesh.org/projects/open-mesh/wiki/Download
Um dieses nun zu bauen entpackst du den Source Code und führst in diesem Ordner folgendes aus:
#1. make CONFIG_ALFRED_GPSD=n #2. sudo make install CONFIG_ALFRED_GPSD=n
Das sorgt dafür das keine Geokoordinaten auf der Map sind.
Damit angezeigt wer welche Links da sind müssen folgende Dienste dauerhaft laufen:
batadv-vis -si bat0 alfred -i bat0
Dies machst du am besten in dem du folgendes in die Datei /etc/network/interface einfügst:
post-up start-stop-daemon -b --start --exec /usr/local/sbin/alfred -- -i bat0; post-up start-stop-daemon -b --start --exec /usr/local/sbin/batadv-vis -- -si bat0;
Nun sollte dein Pi ein Gateway sein.
Schritt 4[Bearbeiten]
Nun muss nur noch ein reboot gemacht werden. Dies wird mit folgendem gemacht:
sudo reboot
Externe Quellen[Bearbeiten]
[1] Klaus_Dieter (IRC: irc.hackint.eu | Channel: #gluon)
[2] https://github.com/notro/rpi-source/wiki
[3] Wiflix (IRC: irc.lugfl.de | Channel: #freifunk-flensburg)
[4] https://github.com/freifunk-flensburg/fffl-fastd-peers/blob/master/reloadPeers.sh