Dies ist eine alte Version des Dokuments!
Diese Anleitung soll zeigen wie ein Gateway unter Debian 12 installiert wird. Die Anleitung basiert auf der alten Anleitung zur Installation unter Debian 9. Der Teufel liegt allerdings oft im Detail, und über die Debian Versionen haben sich manche Details geändert.
!!! WORK IN PROGRESS !!!
Die anleitung geht davon aus das wir bereits mit root rechten unterwegs sind.
Die wichtigsten Pakete aus den Paketquellen installieren.
apt-get install isc-dhcp-server radvd bridge-utils iptables-persistent libcap2-bin haveged ntp incron sudo vnstat vnstati bind9 lsb-release sysstat iotop rsync
Zusätzlich brauchen wir noch einen http Server. Falls nur gateway betrieb gewünscht ist, und sonst nichts übers web gemacht wird, genügt lighttpd. apt-get install lighttpd
Wenn noch andere Webtools genutzt werden sollen, empfiehlt sich Apache2 apt-get install apache2
Zeitservice (NTP) auf spezielle Schnittstellen beschränken
interface listen lo interface listen enp0s1 interface listen br-ffpi
Siehe auch Routing
[...] 42 freifunk
Daten für die Karte (Meshviewer) bereitstellen (alfred-announced)
mkdir /etc/alfred
Beispielhafte json Datei, bitte Werte entsprechend anpassen.
{ "node": { "node_id": "gate03", "hostname": "Thesdorfer Tor", "location": { "longitude": "11.612279", "latitude": "50.949691" }, "owner": { "contact": "Havelock" }, "system": { "site_code": "ffpi", "role": "gate" } }, "statistics": { "node_id": "gate03" } }
Fastd kann aus den Paketen von Debian installiert werden.
apt-get install fastd
Nutzer für fastd anlegen
adduser --system --group --uid 300 --shell /bin/sh --disabled-password --gecos 'Fast and Secure Tunneling Daemon' --no-create-home --home /etc/fastd fastd
Ordner und blanko Dateien für SSH anlegen
mkdir /etc/fastd mkdir /etc/fastd/.ssh chmod 700 /etc/fastd/.ssh touch /etc/fastd/.ssh/authorized_keys chmod 600 /etc/fastd/.ssh/authorized_keys
fastd Verzeichnisstruktur erstellen
mkdir -p /etc/fastd/ffpi/peers mkdir /etc/fastd/ffpi/backbone chown -R fastd:fastd /etc/fastd
fastd keys generieren
fastd --generate-key > /etc/fastd/keys chmod 600 /etc/fastd/keys
Nun die Konfiguration für fastd erstellen.
log level warn; log to syslog level info; interface "mesh-vpn"; method "salsa2012+umac"; method "salsa2012+gmac"; bind 0.0.0.0:10000; include "secret.conf"; secure handshakes yes; mtu 1426; user "fastd"; group "fastd"; hide ip addresses yes; hide mac addresses yes; include peers from "backbone"; include peers from "peers"; peer limit 200; status socket "/var/run/fastd/ffpi.sock"; on up " # ip link set dev $INTERFACE address <HIER GENERIERTE MAC EINTRAGEN> ip link set up dev $INTERFACE /usr/sbin/batctl if add $INTERFACE ";
Die auskommentierte Zeile mit der Fehlenden MAC-Adresse lassen wir für den ersten Start so. fastd generiert dann selber eine MAC-Adresse welche wir im späteren verlauf dann dort eintragen.
Da wir in der fastd.conf die Zeile include „secret.conf“;
haben, müssen wir diese Datei noch erstellen.
Dazu lesen wir zuerst die Keys aus der /etc/fastd/keys
Datei aus. Wir benötigen vorerst nur den Secret.
cat /etc/fastd/keys
Danach können wir die Datei dann wie folgt erstellen (* bitte durch echten Secret ersetzen)
secret "****************************************";
Damit fastd die ebenfalls oben konfigurierte socket Datei anlegen kann, müssen wir noch dafür sorgen das der Ordner existiert, und fastd dort schreiben darf.
mkdir -p /var/run/fastd/ chown fastd:fastd /var/run/fastd/
Damit wir nach dem anlegen neuer Peers nicht jedes mal manuell fastd neu laden müssen, überwachen wir den Ordner mit incron.
/etc/fastd/ffpi/peers IN_CREATE pkill -HUP fastd
Nun können wir den fastd service noch automatisch beim booten starten lassen.
systemctl enable fastd@ffpi
A.L.F.R.E.D - Almighty Lightweight Fact Remote Exchange Daemon
Mit alfred tauschen die Knoten (und Gateways) allgemeine Informationen aus. Einige der Daten sind im Meshviwer sichtbar. Wir installieren alfred einfach aus den Paketquellen.
apt-get install alfred
Spezielle Gatewaydaten für Alfred bereitstellen. Das Programm alfred-announce.py muss zuvor natürlich auf dem Gateway eingespielt worden sein, es ist teil der ffpi-tools.
Voraussetzung:
apt-get install python-daemon ethtool
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin */2 * * * * root /usr/local/bin/alfred-announce.py
B.A.T.M.A.N., kurz für „Better Approach To Mobile Adhoc Networking“, ist ein Mesh-Protokoll für Layer-2-Netzwerke, das sowohl für stationäre Systeme funktioniert als auch Funktionen wie Knoten-zu-Knoten- und Knoten-zu-Netz-Verbindungen, VLAN-Bridging über Mesh-Netzwerke und Robustheit gegenüber Topologieänderungen bietet, jedoch keine Verschlüsselung oder Authentifizierung bereitstellt.
Wir nutzen die etwas neuere batman-adv Variante welche im Kernel läuft. batman-adv wird mit dem Kommando batctl gesteuert. Das muss entsprechend installiert werden.
apt-get install batctl