Anleitung zum Aufsetzen eines Offloaders
Was ist ein Offloader?
Offloader sind Geräte, deren einziger Zweck darin besteht, eine Verbindung über einen VPN-Tunnel zum Freifunk-Gatway herzustellen. Normalerweise übernimmt diese Aufgabe schon der Freifunk-Router, wenn dieser an einem Internet-Anschluss angeschlossen ist und die Funktion "Mesh VPN" aktiviert ist.
Bei größeren Datenmengen und vielen Nutzern kann dies je nach Hardware zum ersten Flaschenhals werden und die Geschwindigkeit spürbar begrenzen. Bei öffentlichen Plätzen kann dies durchaus schnell passieren, VPN-Tunnel zur Haftungsabsicherung fordern Freifunk-Routern viel Rechenleistung ab. Mit einem VPN-Offloader wird der Internetzugang im Freifunk deutlich beschleunigt, da hierfür Geräte mit deutlich mehr Leistung zum Einsatz kommen.
Der Offloader kann in zwei unterschiedlichen Varianten aufgesetzt werden. Die wir hier erläutern. Beide Varianten können auf richtiger Hartware (Mini-PC) oder in virtuellen Maschinen aufgesetzt werden. Wir beschränken uns hier auf die Beschreibung, den Offloader in einer richtigen Hartware aufzusetzen.
Varianten
- Den Offloader mit der von uns bereitgestellten Freifunkfirmware aufsetzen.
Hat den Vorteil, daß es einfach ist.
- Den Offloader auf Basis eines Linux Debian Systems aufsetzen.
Hat den Vorteil, man kann die Freifunkrouter auch aus der Ferne gut aktualisieren,
wenn diese physisch am LAN-Port erreichbar sind.
Hartwareempfehlung
Als Hartware empfehlen wir den MinisForum BESSTAR TECH LIMITED GK41 mit zwei ETH-Ports. Diesen gibt es bei Amazon ab ca. 115,13€.
Alle hier aufgeführten Geräte haben wir im Einsatz.
- Mini-PC
- Server
Anleitung, den Freifunk-Offloader mit Freifunkfirmware aufzusetzen
Erklärung
-
Grüne Schrift Befehle die im Terminal auszuführen sind.
Grundkenntnisse in Linux sind notwendig. Wir gehen davon aus, dass Du einen PC mit Linux benutzt.
Blauer Schrift dient der Erläuterungen.
Freifunk für den Offloader herunterladen
-
hier gibt es die aktuelle Freifunkfirmware
Freifunkfirmware für den MinisForum BESSTAR TECH LIMITED GK41
Firmware entpacken
-
Wechsel in der Console in das Verzeichnis, in dem die Datei gespeichert ist und führe folgenden Befehl aus.
gunzip gluon-ffhal-2023.2.4.2~20250317-x86-64.img.gz
BIOS
-
BIOS so einstellen, dass der Mini-PC nach einem Stromausfall wieder startet! (Power ON)
Für die folgenden Schritte, musst Du als Startlaufwerk den USB-Stick mit dem Linux-System einstellen.
Wenn Du mit der Installation fertig bist, solltest Du als Startlaufwerk wieder die interne Festplatte einstellen.
Firmware auf die Festplatte übertragen
-
Erstelle mit der Datei gluon-ffhal-2023.2.4.1~20250219-x86-64.img einen startfähigen USB-Stick.
Du benötigst noch einen weiteren startfähigen USB-Stick mit einem Linux Betriebssystem.
Kopiere mittels dd den gesamten Inhalt des USB-Stick mit der Freifunkfirmware auf die Festplatte im Offloader.
Starte den Offloader neu. Eine Anleitung für den Befehl dd findest Du hier: wiki.ubuntuusers.de/dd/
Die Syntax ist,
dd if=/dev/sdX of=/dev/sdY status=progress
wobei X und Y durch die tatsächlichen Gegebenheiten zu ersetzen sind!
Offloader noch konfiguriert
-
Der Offloader startet im Konfigmodus und ist am LAN-Port über http://192.168.1.1 erreichbar.
Jetzt muss dieser genau wie ein normaler Freifunk-Router noch eingerichtet werden.
Der Schlüssel für vpn muss noch auf den Freifunkserver übertragen werden.
Fertig :-)
zum Seitenanfang
Anleitung, den Freifunk-Offloader auf Basis von Linux Debian aufzusetzen
Erklärung
-
Grüne Schrift Terminal Befehle die als root auszuführen sind.
Rote Schrift Inhalte die in Dateien zu schreiben sind.
Grundkenntnisse in Linux und der Umgang mit vi sind notwendig. Wir gehen davon aus, dass Du einen PC mit Linux benutzt.
Blauer Schrift dient der Erläuterungen oder kennzeichnet Stellen, die Du eventuell ändern musst.
Mini PC
-
Als Offloader empfehlen wir Mini PCś mit zwei Netzwerk-Ports, 8GB RAM, 100GB SSD, CPU 4 Kerne.
BIOS
-
BIOS so einstellen, dass der Mini-PC nach einem Stromausfall wieder startet! (Power ON)
Linux
-
Auch die aktuellste Version von debian ohne und mit Desktop haben wir getestet.
Linux (mint) auf Basis ubuntu oder debian haben wir auch getestet.
Login als Root
-
root@server:~#
System aktualisieren
-
apt-get update && apt-get upgrade
Software installieren
-
-
nur notwendiges installieren
apt install openssh-server openssh-client batctl bridge-utils rsync iptables net-tools git fastd
-
optional installieren (a. ist mit enthalten)
apt install openssh-server openssh-client batctl bridge-utils vim rsync iptables net-tools git fastd python3-netifaces apache2 php php-curl php-zip php-xml php-gd php-mbstring
-
unsere Empfehlung, alles installieren (a. und b. sind mit enthalten)
apt install openssh-server openssh-client batctl bridge-utils vim rsync isc-dhcp-server iptables net-tools git iftop htop fastd ethtool python3-netifaces rsyslog unattended-upgrades glances vnstat apache2 php php-curl php-zip php-xml php-gd php-mbstring vlan etherape links2 gpm letsencrypt python3-certbot-apache speedtest-cli traceroute duf iperf iperf3 openvpn ntp radvd
-
den Offloader zusätzlich noch als Büro-PC nutzen (a. und b. und c. sind bereits enthalten)
apt install openssh-server openssh-client batctl bridge-utils vim rsync isc-dhcp-server iptables net-tools git iftop htop fastd ethtool python3-netifaces rsyslog unattended-upgrades glances vnstat apache2 php php-curl php-zip php-xml php-gd php-mbstring vlan etherape links2 gpm letsencrypt python3-certbot-apache speedtest-cli traceroute duf iperf iperf3 ntp radvd nextcloud-desktop numlockx gimp libreoffice libreoffice-l10n-de libreoffice-help-de libreoffice-impress libreoffice-draw libreoffice-base simple-scan
VIM Einstellungen ändern
-
vi ~/.vimrc
set mouse-=a
Lege das Verzeichnis für die Root-Schlüssel an.
-
mkdir /root/.ssh
Optional kannst Du über den folgenden Befehl die Schlüssel der Admins eintragen.
-
cd /root/.ssh && wget https://freifunk-halle.org/offloader/authorized_keys
Deinen eigenen Schlüssel hinzufügen.
-
vi /root/.ssh/authorized_keys
ext-respondd von git holen, wird für die Darstellung auf der Map benötigt.
-
git clone https://github.com/ffggrz/ext-respondd /opt/ext-respondd/
Das Netzwerk einrichten
-
vi /etc/network/interfaces
source /etc/network/interfaces.d/*
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
auto bat0
iface bat0 inet manual
pre-up sleep 5
pre-up modprobe batman-adv
auto br0
iface br0 inet manual
bridge_ports bat0
iface br0 inet dhcp
#########################################################################################################
# Wenn Du zwei ETH Ports am PC hast, dann gib hier einen als Mesh-Port an und nutze den anderen für WAN.
# Den Port musst Du anpassen an die tatsächliche Bezeichnung!
#
# Wenn Du eine Linux Umgebung installiert hast, ohne NetworkManager, musst Du auch noch das Interface für
# WAN anlegen. Alles was in der Zeile nach einem # steht, wird als Komentar vom System bewertet.
#########################################################################################################
#auto enp2s0 # Ohne NetworkManager diesen Eintrag aktivieren und Port anpassen an den WAN-Port!
# iface enp2s0 inet manual # Ohne NetworkManager diesen Eintrag aktivieren und Port anpassen an den WAN-Port!
# iface enp2s0 inet dhcp # Ohne NetworkManager diesen Eintrag aktivieren und Port anpassen an den WAN-Port!
auto enp3s0 # Port anpassen an den LAN-Mesh-Port!
iface enp3s0 inet manual # Port anpassen an den LAN-Mesh-Port!
post-up batctl if add enp3s0 # Port anpassen an den LAN-Mesh-Port!
rc.local erstellen
-
vi /etc/rc.local
#!/bin/bash
systemctl restart networking
systemctl daemon-reload
systemctl enable ext-respondd
systemctl start ext-respondd
batctl if add enp3s0 # Port anpassen an den LAN-Mesh-Port!
ip address add 192.168.1.100/24 dev enp3s0 # Port anpassen für LAN-Mesh-Port, dann sind Freifunkrouter im Config-Modus zugänglich.
exit 0
rc.local ausführbar machen und zum Daemon hinzufügen
-
chmod +x /etc/rc.local && systemctl daemon-reload && systemctl enable rc-local
Verzeichnisse für fastd anlegen und Schlüssel für fastd VPN erzeugen
-
mkdir -p /etc/fastd/freifunk && fastd --generate-key
Beide Schlüssel in die Zwischenablage kopieren und in die Datei /etc/fastd/keys eintragen und speichern.
vi /etc/fastd/keys
Datei anlegen und Inhalt eintragen
-
vi /etc/fastd/freifunk/fastd.conf
# Log warnings and errors to stderr
log level warn;
# Log everything to syslog
log to syslog level debug;
# Set the interface name
interface "vpn3";
# Support salsa2012+umac and null methods, prefer salsa2012+umac
method "null";
include peer "server.conf";
# Secret key generated by `fastd --generate-key` # Schlüssel eintragen!
secret "XXXXX-den-Secret-key-hier-einsetzen-XXXXX";
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE)
# (see MTU selection documentation)
mtu 1426;
mode tap;
on up sync "
ip link set up dev $INTERFACE
batctl -m bat0 if add $INTERFACE
";
on down sync "
ip link set down dev $INTERFACE
";
status socket "/var/run/fastd.vpn3.socket";
Den Public key auf den Server hochladen
-
den Public key in https://freifunk-halle.org/fastd/ eintragen
/etc/default/fastd ändern auf all
-
vi /etc/default/fastd
Autostart ändern auf all AUTOSTART="all"
Datei erstellen und folgenden Inhalt einfügen
-
vi /etc/fastd/freifunk/server.conf
key "c21abf04f9ee3a1906607cf4c8e734addaa8bba8eeb3d405be76248082b0b748";
remote "vpn3.freifunk-halle.org" port 10000;
Daemon neu laden und Eintrag hinzufügen
-
systemctl daemon-reload && systemctl enable fastd
Systemlink für ext-respondd erzeugen
-
cp /opt/ext-respondd/ext-respondd.service.example /etc/systemd/system/ext-respondd.service
Daemon neu laden und Eintrag hinzufügen
-
systemctl daemon-reload && systemctl enable ext-respondd
Dateien für die Map erstellen
-
MAC Adresse generieren mit https://dnschecker.org/mac-address-generator.php und pefix 01005e benutzen und im Format "XXXXXXXXXXXX" ausgeben lassen.
vi /opt/ext-respondd/alias.json
{
"nodeinfo": {
"hostname": "DEINE-KISTE-in-einem-WORT",
"node_id": "XXXXXXXXXXXX",
"hardware": {
"model": "Hardware"
},
"owner": {
"contact": "user@e-mail"
},
"location": {
"latitude": 51.44,
"longitude": 11.96
},
"system": {
"site_code": "ffhal",
"role": "node"
},
"pages": [
"http://freifunk-halle.org", "http://map.freifunk-halle.org"
]
},
"firstseen": "20XX-MM-DD"
}
vi /opt/ext-respondd/config.json
{
"batman": "bat0",
"bridge": "br0",
"mesh-vpn": [ "vpn3" ],
"fastd_socket": "/var/run/fastd.vpn3.socket",
"rate_limit": 30,
"rate_limit_burst": 10
}
SSL einschalten für den Webserver
-
a2enmod ssl && a2ensite default-ssl && systemctl restart apache2
Wenn es Probleme mit dem Zertifikat gibt und der Apache2 nicht startet, sollte folgendes helfen.
make-ssl-cert generate-default-snakeoil --force-overwrite
Rechte für den Webserver ändern
-
mkdir -p /etc/sudoers.d/ && vi /etc/sudoers.d/www-data
www-data ALL = NOPASSWD: /usr/sbin/batctl
Erstellen der Webseiten für den Offloader
-
rm -r /var/www/html && cd /var/www && wget https://freifunk-halle.org/offloader/html.tar && tar -xf /var/www/html.tar && rm -r /var/www/html.tar
Die Webseite musst Du noch anpassen. In der Webseite ist es erläutert.
Kontakt musst Du noch Deine E-Mail-Adresse eintragen.
Position und Link muss angepasst werden.
vi /var/www/html/index.php
cron erstellen
-
crontab -e
Wähle den Textiditor Deiner Wahl.
*/5 * * * * /sbin/dhclient enp2s0 # anpassen an den WAN-Port!
0 5 * * * /sbin/reboot # ein täglicher Neustart um 5 Uhr kann nicht schaden
systemctl restart cron.service
IP forwarding einschalten
-
vi /etc/sysctl.conf
Zeile hinzufuegen oder einschalten
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding=1
den Offloader neu starteb
-
reboot & exit
warten bis der Offloader neu gestartet ist
Login als Root
-
root@server:~#
Eintragen von vpn3 in die Datenbank für vnstat.
-
vnstat --add -i vpn3
Fertig :-)
zum Seitenanfang