MTR TEST HAMNET

OpenWRT: Accessing HAMNET with L2TP/IPsec VPN

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
Check Installed Software LUCI OpenWRT
Übersicht installierter Pakete

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.

Neues L2TP Interface anlege
Neues L2TP Interface anlegen
L2TP Interface General Settings
L2TP Interface anlegen
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.

L2TP Interface Advanced Settings
L2TP Interface Advanced Settings

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.

L2TP HAMNET Firewall OpenWRT
L2TP Firewall

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
Firewall Zone Settings OpenWRT
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