VPN Offloader: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) |
Thomas (Diskussion | Beiträge) |
||
Zeile 92: | Zeile 92: | ||
== Konfiguration == | == Konfiguration == | ||
Zuerst konfigurieren wir ''fastd'' für den Aufbau eines VPN-Tunnel zu den Supernodes im Internet. | |||
=== fastd === | === fastd === | ||
fastd --generate-key | '''fastd''' wird über die Datei ''fastd.conf'' und mehrere Dateien für die Gegenstellen (peers) konfiguriert. Es können beliebig viele Tunnel und Gegenstellen definiert werden. | ||
Secret: < | Für den Freifunk Rheinbach, Rhein-Sieg-Kreis bzw der Domäne Wupper des Freifunk Rheinland habe ich einen Ordner ''ffrhb'' unter [[/etc/fastd]] angelegt, ihdem sich wiederum der Ordner ''peers'' Gegenstellen befindet. Diese Ordner werden mit folgendem Befehl angelegt. | ||
mkdir -p /etc/fastd/ffrhb/peers | |||
Für die Verschlüsselung des Tunnels brauchen wir ein Schlüsselpaar, dass wir mit ''fastd'' und dem Befehl ''generate-key'' erzeugen: | |||
root@x1:~# fastd --generate-key | |||
2016-09-11 21:48:42 +0200 --- Info: Reading 32 bytes from /dev/random... | |||
Secret: 60c62533b05274a4bb22d9688b72d942fc4c9d118432c261151a4ae815be4046 | |||
Public: 4b5d20139bfa98041842f3e146f7299793d0273367cd810b1a79f95e912cdd0d | |||
Nun legen wir die Datei fastd.conf im Verzeichnis ''/etc/fastd/ffrhb'' an. | |||
<pre> | |||
# Log warnings and errors to stderr | |||
log level warn; | |||
# Log everything to syslog | |||
log to syslog level warn; | |||
# Set the interface name | |||
interface "mesh-vpn"; | |||
# Support salsa2012+umac and null methods, prefer salsa2012+umac | |||
method "salsa2012+umac"; | |||
method "null"; | |||
mode tap; | |||
# Bind to a fixed port, IPv4 only | |||
bind 0.0.0.0:53757; | |||
# Secret key generated by `fastd --generate-key` | |||
secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53"; | |||
# Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53 | |||
# Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50 | |||
secure handshakes yes; | |||
# Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE) | |||
# (see MTU selection documentation) | |||
mtu 1364; | |||
peer limit 1; | |||
# Include peers from the directory 'peers' | |||
include peers from "/etc/fastd/ffrhb/peers"; | |||
on up " | |||
ip link set up dev $INTERFACE | |||
batctl if add $INTERFACE | |||
ip link set up dev bat0 | |||
"; | |||
</pre> | |||
Diesen Schlüssel müssen wir in die Datei fastd.conf eintragen. | |||
/etc/fastd/ffmuc/fastd.conf Secret key mit generiertem ersetzen | /etc/fastd/ffmuc/fastd.conf Secret key mit generiertem ersetzen |
Version vom 11. September 2016, 20:01 Uhr
Hier folgt eine kurze Beschreibung über die Installation eiens VPN Offloader für Freifunk.
So eine richtig gute Beschreibung habe ich noch nicht gefunden; diese ist es auch nicht, soll es aber mal werden und kommt dann ins Freifunk wiki Rheinbach.
Im ersten Ansatz hangele ich mich an der Beschreibung von ffmuc entlang.
Was ist ein VPN-Offloader?
Ein VPN-Offloader ist ein möglichst leistungsstarker Rechner, der im Freifunknetz eine VPN-Verbindung zu den Supernodes aufbaut und die einfachen Nodes von der Verschlüsselung entlastet. In der Regel erreichen einfache Router nur eine Geschwindigkeit von etwa 10 MBit/s, weil die CPU die Daten nicht schneller verschlüsseln kann. Hier hilft ein VPN-Offloader, der je nach Leistung 80 Mit/s und mehr erreichen kann.
Was brauchen wir?
Einen schnellen Rechner oder Router. Hier habe ich mich für einen ganzen Rechner entschieden. Als Betriebssystem nehme ich Debian 8.5 Jessy. Es geht sicher auch unter OpenSuSE, aber da ist das besorgen der aktuellen Software etwas aufwändiger, da es keine geeigneten Paketquellen als RPM gibt.
Als Software brauchen wir zusätzlich
- fastd
- batctl
- batman-adv in der batctl passenden Version.
Nehmen Sie am besten die zu Ihrem Freifunknetz passenden Versionen. Wie sich neuere Versionen mit den älteren Versionen vertragen, kann ich nicht sagen. Wie sie die passende Version finden, steht weiter unten. Die anderen Voraussetzungen wie wget, make, g++, tar etc. führe ich hier nicht auf.
Installation
fastd
Für fastd gibt es eine Paketquelle, die wir unseren Quellen in /etc/apt/sources.list mit der folgende Zeile hinzufügen:
deb http://repo.universe-factory.net/debian/ sid main
Die folgende Befehle fügen anschließend die GnuPG-Schlüssel der Quelle in die Paketverwaltung ein:
gpg --keyserver pgpkeys.mit.edu --recv-key 16EF3F64CB201D9C gpg -a --export 16EF3F64CB201D9C | apt-key add -
Mit folgenden Befehl werden die für fastd benötigten Pakete installiert:
apt install apt-transport-http apt update apt install build-essential pkg-config libnl-3-dev linux-headers-amd64 fastd
Bei mir war ein apt-get install apt-transport-https erforderlich. Pakete die schon früher installiert wurden, müssen natürlich nicht erneut installiert werden.
batctl
Siehe Open-Mesh Wiki
batctl ist ein Konsolenwerkzeug um das Modul batman-adv zu steuern.
Um die für das Freifunknetz passende Version zu finden, melden Sie sich auf einem Freifunk-Router und geben batctl -v ein.
root@su-rhb-zingsheim-31-eg:~# batctl -v batctl 2015.1 [batman-adv: 2015.1]
Anschließend installieren Sie batctl mit folgenden Befehlen, in denen Sie 2015.1 durch die Version Ihres Freifunk-Routers / Netzes ersetzen.
Achtung: Bis zur Version 2014.4.0 enthielt der Dateiname noch den Modification Level, der meist '0' war. Ab 2015.0 ist dieser Modification Level entfallen.
cd /usr/src/ wget http://downloads.open-mesh.org/batman/stable/sources/batctl/batctl-2015.1.tar.gz tar xzf batctl-2015.1.tar.gz cd batctl-2015.1 make make install
Das heruntergeladene Archiv batctl-2015.1.tar.gz können Sie nach der Installation wieder löschen.
batman-adv
Siehe Open-Mesh Wiki
batman-adv sollte in der gleichen Version, wie batctl installiert werden.
Achtung: Bis zur Version 2014.4.0 enthielt der Dateiname noch den Modification Level, der meist '0' war. Ab 2015.0 ist dieser Modification Level entfallen.
batman-adv wird mit den folgenden Befehlen installiert und anschließend mit modprobe gestartet.
cd /usr/src/ wget http://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-2015.1.tar.gz tar xzf batman-adv-2015.1.tar.gz cd batman-adv-2015.1 make make install modprobe batman-adv
Um batman-adv beim Start des Betriebssystems zu laden muss folgende Zeile in /etc/modules eingefügt werden:
batman-adv
Das heruntergeladene Archiv batman-adv-2015.1.tar.gz können Sie nach der Installation wieder löschen.
Konfiguration
Zuerst konfigurieren wir fastd für den Aufbau eines VPN-Tunnel zu den Supernodes im Internet.
fastd
fastd wird über die Datei fastd.conf und mehrere Dateien für die Gegenstellen (peers) konfiguriert. Es können beliebig viele Tunnel und Gegenstellen definiert werden.
Für den Freifunk Rheinbach, Rhein-Sieg-Kreis bzw der Domäne Wupper des Freifunk Rheinland habe ich einen Ordner ffrhb unter /etc/fastd angelegt, ihdem sich wiederum der Ordner peers Gegenstellen befindet. Diese Ordner werden mit folgendem Befehl angelegt.
mkdir -p /etc/fastd/ffrhb/peers
Für die Verschlüsselung des Tunnels brauchen wir ein Schlüsselpaar, dass wir mit fastd und dem Befehl generate-key erzeugen:
root@x1:~# fastd --generate-key 2016-09-11 21:48:42 +0200 --- Info: Reading 32 bytes from /dev/random... Secret: 60c62533b05274a4bb22d9688b72d942fc4c9d118432c261151a4ae815be4046 Public: 4b5d20139bfa98041842f3e146f7299793d0273367cd810b1a79f95e912cdd0d
Nun legen wir die Datei fastd.conf im Verzeichnis /etc/fastd/ffrhb an.
# Log warnings and errors to stderr log level warn; # Log everything to syslog log to syslog level warn; # Set the interface name interface "mesh-vpn"; # Support salsa2012+umac and null methods, prefer salsa2012+umac method "salsa2012+umac"; method "null"; mode tap; # Bind to a fixed port, IPv4 only bind 0.0.0.0:53757; # Secret key generated by `fastd --generate-key` secret "e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53"; # Secret: e0e07c1462748f4b0f36423c0ce5c4169e48354a07a3b908435f8ab128259c53 # Public: 72dc4c1aa15cfe4ae5d54caccd8efbd1af8848770843b26a58ed2fb8edb82d50 secure handshakes yes; # Set the interface MTU for TAP mode with xsalsa20/aes128 over IPv4 with a base MTU of 1492 (PPPoE) # (see MTU selection documentation) mtu 1364; peer limit 1; # Include peers from the directory 'peers' include peers from "/etc/fastd/ffrhb/peers"; on up " ip link set up dev $INTERFACE batctl if add $INTERFACE ip link set up dev bat0 ";
Diesen Schlüssel müssen wir in die Datei fastd.conf eintragen.
/etc/fastd/ffmuc/fastd.conf Secret key mit generiertem ersetzen
# Secret key generated by `fastd --generate-key` secret "98ca57a85ca291bae54c844e916b500d42cbfe68fdc5cda431eb81a42fa84540"; # use warn or error loglevel for production use log level debug; log to syslog level debug; # name des tunnel interface interface "mesh-vpn"; # Akzeptierte Verschlüsselungsmethoden. Muss auch vom Gateway angeboten werden. method "salsa2012+umac"; bind 0.0.0.0:10000; # Die MTU muss mit der des Gateways übereinstimmen. Im Zweifelsfall bitte nachfragen. mtu 1426; # im Ordner "peers" je eine Datei pro VPN-Peer anlegen include peers from "/etc/fastd/peers"; on up " ip link set dev $INTERFACE up batctl if add $INTERFACE ip link set up dev bat0 ";