Warnung!
Diese Anleitung beschreibt die Einrichtung einer VPN-Verbindung in das HAMNET. Das HAMNET ist ein spezielles, nicht öffentliches, geroutetes Netzwerk, das ausschließlich Funkamateuren vorbehalten ist. Die Teilnahme am Amateurfunk sowie die Nutzung des HAMNET setzen den Besitz einer gültigen Lizenzurkunde voraus, die von der Bundesnetzagentur ausgestellt wird. Weitere Informationen dazu finden Sie unter folgendem Link:
Bundesnetzagentur – Amateurfunk.Wichtiger Hinweis zur Verschlüsselung:
Im Amateurfunk gelten strikte Einschränkungen in Bezug auf die Nutzung von Verschlüsselungstechnologien. Daher kann das vorgestellte Beispiel nicht für den allgemeinen Gebrauch verwendet werden!
Das hier bereitgestellte Beispiel bezieht sich spezifisch auf den Zugang, der von der Amateurfunk-Gruppe der RWTH Aachen zur Verfügung gestellt wird.
Die Beantragung eines Benutzeraccounts erfolgt über die Amateurfunkgruppe. Ein Benutzeraccount kann hier beantragt werden: https://www.afu.rwth-aachen.de/vpn-zugang
Das hier bereitgestellte Beispiel bezieht sich auf die Konfiguration eines Core-Routers. Das bedeutet, der OpenWRT-Router befindet sich hinter dem regulären Hausanschlussrouter, z. B. einer FritzBox. Dies hat den Vorteil, dass die bestehende Internetkonfiguration kaum verändert wird. Dadurch lassen sich mögliche Störungen minimieren und Diskussionen mit dem Internetanbieter vermeiden. Darüber hinaus bietet OpenWRT deutlich mehr Flexibilität bei VPN- und Routing-Funktionen.
Weitere Erläuterungen finden Sie hier: Black Hole/ Null Routing
Gegebenenfalls müssen entsprechende Routing-Regeln auf der FritzBox (Edge-Router) eingerichtet werden, um das HAMNET zu erreichen. Ein Beispiel dazu wird später bereitgestellt.
Das Setup wird an einem Anschluss der Deutschen Glasfaser betrieben, der mit einem Carrier-grade NAT (CGN) arbeitet.
Vorbereitung
Grundvoraussetzung für dieses Setup ist ein vorhandener OpenWRT-Router. Informationen zum OpenWRT-Projekt und zur Bereitstellung eines OpenWRT-basierten Routers finden Sie hier: OpenWRT
Für die Installation eines L2TP/IPsec-VPNs muss sichergestellt werden, dass die notwendigen Pakete auf dem OpenWRT-Router installiert sind.
Die Installation kann entweder über die GUI (LuCI) im Menü System → Software oder über die Kommandozeile (nach einem SSH-Login) erfolgen.
- Strongswan: notwendig für IPsec
- xl2tpd: erforderlich für L2TP
- mtr-json: hilfreich für das Troubleshooting und zur Validierung der Routen
opkg update
opkg install strongswan-default xl2tpd mtr-json
Ein Neustart des Systems kann dabei helfen, die L2TP-Option im LuCI-Dialog verfügbar zu machen.
Konfiguration
Zugang
Der VPN-Zugang wird über den folgenden Endpunkt bereitgestellt:
DNS = vpn.afu.rwth-aachen.de
IP = 137.226.79.99
Überprüfen der IPsec Konfiguration
ipsec.conf
Für die Konfiguration des IPsec-Teils müssen die Parameter in der Datei /etc/ipsec.conf
überprüft werden.
Der Eintrag:
right=137.225.79.99
entspricht dem VPN-Endpunkt der RWTH.
config setup
charondebug="ike 2, knl 2, cfg 2"
conn hamnet-l2tp
keyexchange=ikev1
type=transport
authby=secret
left=%defaultroute
leftprotoport=17/1701
right=137.226.79.99
rightprotoport=17/1701
auto=start
Genauer Information zu den Parametern gibt es hier: https://linux.die.net/man/5/strongswan_ipsec.conf
ipsec.secrets
In der Datei /etc/ipsec.secrets
muss der IPsec-Pre-Shared-Key (PSK) hinzugefügt werden. Falls dieser nicht bekannt ist, kann er gegebenenfalls bei der zuständigen Amateurfunkgruppe erfragt werden.
: PSK "hamnetpsksecret"
chmod 600 /etc/ipsec.secrets
L2TP
L2TP Interface in LuCI anlegen
Create L2TP Interface
Im OpenWRT-Konfigurationsinterface LuCI kann im Bereich Network -> Interfaces ein neues L2TP-Interface erstellt werden.
Der Name des Interfaces sollte nicht länger als acht Zeichen sein. Zwar habe ich das nicht ausführlich getestet, aber bei mir traten bei längeren Namen Probleme mit den Startskripten auf.
L2TP Advanced Settings
Im folgenden kann die MTU an Ihre Bedürfnisse angepasst werden, sollte jedoch 1420 nicht überschreiten.
Das Feld „Use custom DNS servers“ kann in meinem Fall leer bleiben. In diesem Beispiel nutze ich den DNSMASQ-Daemon, der von allen Clients in meinem Netzwerk verwendet wird. Eine entsprechende Regel wird dort in die Konfiguration eingetragen – dazu später mehr.
Zur Kontrolle:
...
config interface 'HAM_L2TP'
option proto 'l2tp'
option server 'vpn.afu.rwth-aachen.de'
option username 'dg2eki'
option password '*******'
option ipv6 '0'
option mtu '1320'
option delegate '0'
option defaultroute '0'
...
L2TP Firewall Settings
OpenWRT verwendet eine zonenbasierte Firewall. Um den Zugriff der Clients auf das HAMNET zu ermöglichen, muss das L2TP-Interface einer Zone zugeordnet werden, beispielsweise der Zone HAMNET.
Der Zugriff wird durch die Beziehungen zwischen den Zonen geregelt.
Ein empfehlenswertes Erklärvideo zur Funktionsweise der Firewall finden Sie hier: https://youtu.be/UvniZs8q3eU?feature=shared
Firewall – Zone Settings
In Network -> Firewall -> “Firewall – Zone Settings” sollte die Option “Allow forward to destination zones:” leer bleiben, wenn keine Verbindungen aus dem HAMNET ins eigene Netzwerk erlaubt sein sollen.
- Masquerading: Aktivieren
- MSS Clamping: Bei Bedarf aktivieren
Die Option “Allow forward from source zones:” ermöglicht Zugriff aus der Zone DATA auf das HAMNET.
Achtung: Gegebenenfalls sollte dieser Eintrag leer bleiben, und ein Forwarding stattdessen über die “Firewall – Traffic Rules” definiert werden. Dabei kann der Zugriff auf spezifische Benutzer oder Hosts eingeschränkt werden.
Wichtig: Es muss sichergestellt werden, dass nur lizenzierte Funkamateure das HAMNET nutzen können.
Überprüfen der L2TP und PPP Settings
xl2tpd.conf
[global]
port = 1701
auth file = /etc/xl2tpd/xl2tp-secrets
access control = yes
debug network = no
debug tunnel = no
Genauer Information zu den Parametern gibt es hier: https://linux.die.net/man/5/xl2tpd.conf
options
#debug
logfile /tmp/ppp.log
noipdefault
noaccomp
nopcomp
nocrtscts
noccp
lock
maxfail 0
refuse-chap
refuse-eap
refuse-chap
refuse-mschap
nomppe
Routing
HAMNET-Adressbereiche
44.0.0.0/9 [HAMNET US]
44.128.0.0/10 [HAMNET Rest of the World - ROW]
44.192.0.0/10 [Amazon]
DNS
Der zur Verfügung gestellte DNS-Server
nameserver 44.148.186.1
DNSMASQ-Forwarder
...
server=/ampr.org/44.148.186.1
rev-server=44.128.0.0/10,44.148.186.1
rev-server=44.0.0.0/9,44.148.186.1
...
Um die Veränderungen zu aktivieren.
service dnsmasq restart
Troubleshooting
root@thewall:/etc/ppp# tail -f /tmp/ppp.log
Using interface l2tp-HAM_L2TP
Connect: l2tp-HAM_L2TP <-->
Overriding mtu 1500 to 1320
Overriding mru 1500 to mtu value 1320
CHAP authentication succeeded
local LL address fe80::xxxx:xxxx:xxxx:xxxx
remote LL address fe80::xxxx:xxxx:xxxx:xxxx
local IP address 44.148.184.206
remote IP address 44.148.186.1
primary DNS address 44.148.186.1