Eine englische Version dieses Artikels wurde für
Daemonnews
geschrieben und
in der Ausgabe vom September 2004 veröffentlicht.
Updates gibt's
in meiner englischen Fassung!
Non-Proprietärer VPN-Zugang für NetBSD und Linux
zum VPN der Uni Regensburg
Hubert Feyrer, November 2003
1. Hintergrund
Die auf dem Cisco 3000 VPN Concentrator basierende VPN-Lösung der
Uni Regensburg ist bisher nur für diverse
Binärplatformen wie u.a. Windows und Linux verfügbar, jedoch nicht
im Quellcode. Die vorliegende Lösung basiert auf dem von Geoffrey
Keating und Maurice Massar entwickelten Programm "vpnc" das komplett
im Source
verfügbar ist, und bisher auf Linux (Intel und PowerPC) sowie
unter NetBSD erfolgreich eingesetzt wurde. Die folgenden Beispiele
beschreiben die Konfiguration mit NetBSD, da diese Platform bisher
von der Dokumentation des Rechenzentrums der Uni Regensburg nicht
abgedeckt wird. Für Linux werden entsprechende Hinweise gegeben da
der Cisco Client nicht mit dem Kernel ab Version 2.6 zusammenspielt.
2. Software
An Software ist das Programm "vpnc" zu installieren. Dieses ist unter
der Adresse http://www.unix-ag.uni-kl.de/~massar/vpnc/ erhältlich.
Für NetBSD ist das Package dazu in pkgsrc/security/vpnc bzw.
hier
zu finden.
3. Konfiguration
3.1 Vorbereitungen
Die Universität Regensburg unterscheidet zwischen drei verschiedenen
Zugängen zu ihrem Netz via VPN, je nachdem ob man bereits im internen
Netz ist, von "aussen", über einen beliebigen Provider wie etwa
T-Online von zuhause aus kommt oder sich im WaveLAN Netz befindet.
An Betriebsystem-Voraussetzungen ist unter NetBSD darauf zu achten,
dass das "tun" Pseudo-Device im Kernel ist (Default im GENERIC
Kernel), ausserdem ist sicherzustellen dass der Kernel sowohl IPsec
als auch das Encapsulating Security Payload (ESP) Protokoll versteht.
Folgende Zeilen sind also in der Kernel Config-Datei nötig:
options IPSEC # IP security
options IPSEC_ESP # IP security (encryption part; define w/IPSEC)
pseudo-device tun 2 # network tunneling over tty
Unter Linux ist unter "Network Device Support" der "Universal
tun/tap Device Driver" einzucompilieren.
Desweiteren muß unter Linux darauf geachtet werden, dass /dev/net/tun
existiert - bei NetBSD ist dies in der Standardkonfiguration
enthalten. Der "Interface name" ist auf beiden Systemen "tun0".
In beiden Konfigurationen ist anstatt "abc12345.5.stud" die jeweils
eigene NDS-Kennung anzugeben, relativ zum Kontext "uni-regensburg.de"
bzw. "fh-regensburg.de". Anstatt "GEHEIM" ist das jeweils eigene
NDS-Passwort einzutragen, das "IPSec secret" ist per Telefon
(+49 941 943 4848) von Karl Wuerfl vom Uni-RZ zu erfahren, oder alternativ
von der Online-Doku des Uni-Rechenzentrums unter
https://www-soft.uni-regensburg.de/dist/cisco/vpn/client/, letzteres allerdings
nur mit Login und Passwort für das NDS-System der Uni!
3.2 Via Internet
Für den Betrieb via Internet, z.B. um zuhause mit T-Online/T-DSL
Anbindung aus ins VPN der Uni zu gelangen ist folgendes in
der Datei /usr/pkg/etc/vpnc.conf abzulegen:
Interface name tun0
IKE DH Group dh2
Perfect Forward Secrecy nopfs
IPSec gateway vpngate-internet.uni-regensburg.de
IPSec ID internet
IPSec secret PhoneKarlWuerflAt4848
Xauth username abc12345.5.stud
Xauth password GEHEIM
3.3 Im WLAN-Netz der Uni Regensburg
Für einen Betrieb via WaveLAN am Campus ist folgender Inhalt
in /usr/pkg/etc/vpnc.conf nötig:
Interface name tun0
IKE DH Group dh2
Perfect Forward Secrecy nopfs
IPSec gateway vpngate-wlan.uni-regensburg.de
IPSec ID wlan
IPSec secret PhoneKarlWuerflAt4848
Xauth username abc12345.5.stud
Xauth password GEHEIM
4. Starten
Wenn die Software erfolgreich installiert wurde und die passende
Konfigurationsdatei abgelegt wurde kann das Programm als root gestartet
werden:
# vpnc
VPNC started in background (pid: 16196)...
Mit dem folgenden Befehl kann anschliessend die IP-Nummer ermittelt
werden, mit der man im VPN der Uni Regensburg zugange ist:
# ifconfig tun0
tun0: flags=51 mtu 1412
inet 132.199.212.1 -> 132.199.212.1 netmask 0xffffffff
Die IP-Nummer ist dabei 132.199.212.1 - diese Nummer kann sich für
jeden neuen Verbindungsaufbau zum VPN ändern!
5. Routing aufsetzen
5.1 Via Internet - Von zuhause an die Uni
Sollen Rechner der Uni Regensburg über das VPN erreicht werden,
so ist das Routing entsprechend aufzusetzen. Für NetBSD:
route add -net 132.199.0.0 -interface 132.199.212.1
bzw. unter Linux:
route add -net 132.199.0.0 dev tun0
Damit können alle Rechner der Uni Regensburg auf "kurzem" Weg
über das VPN erreicht werden. 132.199.0.0 ist dabei das Netz
der Uni Regensburg, 132.199.212.1 die dem tun0 Interface von
vpnc zugewiesene IP-Adresse innerhalb des VPN.
5.2 Source-basiertes Routing - Von der Uni nach Hause
Soll auf Dienste des eigenen Rechners zugegriffen werden, so
muss dazu sichergestellt sein, dass die Antworten auf eingehende
Pakete ebenfalls über das VPN gesandt werden. Erreicht wird
dies unter NetBSD hiermit:
route delete -net 132.199.0.0
echo "pass out on ppp0 to tun0 from 132.199.212.1 to any" | ipf -f
132.199.212.1 ist dabei die vom vpnc zugewiesene IP-Adresse des
tun0 Interfaces, und ppp0 ist das ausgehende Interface (wahlweise auch
wi0 für Wavelan).
5.3 Im WLAN-Netz der Uni Regensburg
Ähnlich wie beim VPN-Zugang von zuhause aus muß auch hier dafür
gesorgt werden, daß Pakete nicht direkt sondern über das VPN gesandt
werden. Errreicht wird dies unter NetBSD mit folgendem Befehl:
route add -net default -interface 132.199.212.1
bzw. unter Linux:
route add -net default dev tun0
Wie gehabt ist 132.199.212.1 die dem tun0 zugewiesene IP-Nummer, die
ggf. anzupassen ist.
6. Links
7. Autoren
Diese Anleitung wurde von Hubert Feyrer <hubertf@netbsd.org> mit
kräftiger Unterstützung von Harold Gutch <logix@foobar.franken.de>
erstellt.
This page has been accessed
63054
times.
Copyright (c) 2003-2006 Hubert Feyrer
$Id: netbsd-vpn-howto.html,v 1.2 2020/11/23 19:51:26 feyrer Exp feh39068 $