VPN-Verbindung zur FH Brandenburg
Aus BraLUG-Wiki
Inhaltsverzeichnis |
Man benötigt
- einen Kernel mit MPPE-Unterstützung (ab 2.6.15 im Vanilla-Kernel)
- den PPTP-Client für Linux
- einen PPP-Daemon mit EAP/TLS-Unterstützung
- ein gültiges Zertifikat, dass man als Hochschulmitglied auch als WLAN-Zertifikat beantragen kann. Weitere Informationen dazu gibt es in der VPN-Anleitung der FHB.
Software beschaffen bzw. überprüfen
Kernel-Treiber
Die VPN-Verbindung stellt auch ein paar Anforderungen an den Linux-Kernel. Folgende Optionen müssen im Kernel aktiviert sein, entweder als Modul oder fest eingebaut:
- Point-to-Point Protocol (PPP) support,
CONFIG_PPP
, Modulnameppp_generic
- Microsoft Point-to-Point Encryption (MPPE) support,
CONFIG_PPP_MPPE
, Modulnameppp_mppe
, dieser Treiber steht im Standardkernel erst seit Version 2.6.15 zur Verfügung
PPP- und PPTP-Dienstprogramme
Auf der Seite PPTP-Client gibt es für eine Vielzahl von Distributionen spezifische Installationsanleitungen.
Bitte einfach den pptpclient gemäß der Anleitung dort installieren, die Konfiguration für das VPN der FH Brandenburg wird weiter unten beschrieben.
PPP-Daemon mit EAP/TLS-Unterstützung
Da momentan der PPP-Daemon standardmäßig noch nicht EAP über TLS beherrscht, benötigt man eine gepatchte Version des pppd
:
- Patches
- ppp-2.4.3-eaptls-0.7.patch (http://eaptls.spe.net/)
- ppp-2.4.3-eaptls-mppe-0.8.patch (Jan Just Keijser <janjust(at)nikhef.nl>)
- Debian
- RPM-basierende Distributionen (Fedora Core, RedHat, CentOS, SuSE)
- Binärpaket ppp-2.4.3-eaptls_mppe.0.8.is.i386.rpm
- Quell-RPM (zum selbst übersetzen) ppp-2.4.3-eaptls_mppe.0.8.is.src.rpm
Zertifikate
Die von der Fachhochschule erhaltenen Zertifikate sind natürlich in das Linux-System einzuspielen sowie in der entsprechenden Konfigurationsdatei einzutragen.
Üblicherweise werden Zertifikate in Unterverzeichnissen unterhalb von /etc/certs
abgelegt, der Inhalt der von der FH Brandenburg bereitgestellten Zip-Datei ist also dorthin zu entpacken.
Eintragen in der Datei /etc/ppp/eaptls-client
In dieser Datei steht eine Zeile, die einzelnen Felder sind durch ein Tabulator-Zeichen getrennt. Die entsprechenden Zertifikatsnamen wurden aus der Beispieldatei übernommen, die Entsprechungen in der von der FHB bereitgestellten Zip-Datei lauten ($USER bezeichnet den Benutzernamen auf Zeus oder Wotan):
-
client.crt
:$USER.pem
-
ca.crt
:rootcacert.pem
-
client.key
:$USER.key
* loki.fh-brandenburg.de /etc/cert/fhb/client.crt - /etc/cert/fhb/ca.crt /etc/cert/fhb/client.key
Es ist darauf zu achten, dass die Dateien dann auch im Dateisystem an den entsprechenden Stellen zu finden sind.
Als Beispiel für einen konkreten Nutzer schaefei lautet die Datei also (eine Zeile!):
* loki.fh-brandenburg.de /etc/cert/fhb/schaefei.pem - /etc/cert/fhb/rootcacert.pem /etc/cert/fhb/schaefei.key
Konfiguration (manuell, textuell)
Diese Konfigurationsanleitung orientiert sich an Debian, explizite Debianismen sind als solche gekennzeichnet, aber auch bei den vermeintlich gemeinsamen Einstellungen kann es kleinere Unterschiede geben.
Die Dateien /etc/ppp/peers/FHB-VPN
und /etc/ppp/pptp-options
beinhalten beide Optionen für den pppd
, die meisten Optionen können daher entweder in der einen oder in der anderen Datei stehen, /etc/ppp/peers/FHB-VPN
sollte also nur spezielle Optionen beinhalten, die für andere VPNs nicht gültig sind.
/etc/ppp/peers/FHB-VPN
pty "pptp 195.37.2.65 --nolaunchpppd" remotename loki.fh-brandenburg.de require-eap file /etc/ppp/pptp-options ipparam FHB-VPN
/etc/ppp/pptp-options
Kommentare und Leerzeilen wurden großzügig entsorgt. Für weitere Information sei auf die PPTP-Linux-Dokumentation sowie die Handbuchseite des pppd
verwiesen.
refuse-pap refuse-chap refuse-mschap require-mppe-128 require-eap noauth nodefaultroute lock nobsdcomp nodeflate
Ausprobieren (Debian)
An dieser Stelle sollte die PPTP-Verbindung schon funktionieren, ausprobiert werden kann das mit folgendem Kommando:
# pon FHB-VPN
Sollte nach diesem Schritt und etwas Warten noch kein ppp0
-Interface zur Verfügung stehen, muss man wohl noch ein paar Fehler beheben. Zuerst sollte in Blick ins Log (/var/log/syslog
) geworfen werden, hilft das nichts, empfiehlt sich das Starten des Daemons im Vordergrund mit aktivierten Debugging-Optionen:
# pon FHB-VPN debug dump logfd 2 nodetach
/etc/network/interfaces
(Debian)
Um die Verbindung über den Debian-eigenen Weg mit ifup
/ifdown
steuern zu können, bzw. um die das Netzwerkgerät automatisch beim Start des Rechners hochzufahren sind noch ein paar kleine Einträge im Debian-"Zentralregister" für Netzwerkgeräte notwendig:
auto vpn0 iface vpn0 inet ppp provider FHB-VPN
Die Bezeichnung vpn0
ist hierbei willkürlich und hat keinen Einfluss auf den Namen des eigentlichen Netzwerkgerätes. Wenn statt ppp0
ein anderer Name (z.B. vpn0
) gewünscht wird, dann siehe PPP-Gerätenamen ändern.
Routing
Wenn die Verbindung aufgebaut wurde, kann man einzelne IP-Adressen oder ganze IP-Bereiche über dieses virtuelle Netzwerkgerät routen. Dabei sollte man aufpassen, dass nur Adressen, die wirklich im FHB-Netz liegen, über das VPN geleitet werden und dass es keine Probleme mit dem lokalen Netz gibt (das lokale Netz, z.B. 192.168.1.0/24, sollte nicht durch das VPN geschickt werden). Folgende Routen dienen auch nur als Beispiel, an dieser Stelle sollte man die Rechner und Netze eintragen, die man wirklich zu nutzen gedenkt:
# route add -net 195.37.0.0 netmask 255.255.255.0 gw 172.16.64.1 # route add -net 192.168.3.0 netmask 255.255.255.0 gw 172.16.64.1 # route add -host 192.168.35.34 gw 172.16.64.1
TODO: wo eintragen?
Wäre die nodefaultroute
-Option für den pppd
nicht gesetzt, würde auch automatisch ein Standard-Gateway eingetragen werden. Da das unter Umständen aber Konflikte mit dem lokalen Netzwerk bedeutet, ist diese Option hier standardmäßig deaktiviert.
Konfiguration (grafisch)
pptpconfig starten
Durch die Installation von pptpconfig gemäß der oben referenzierten Anleitung sollte in den Menüs der Benutzeroberfläche ein Eintrag "PPTP Client" entstanden sein. Bei Fedora Core findet sich selbiger unter "Anwendungen > Internet > PPTP Client".
Je nach Konfiguration der verwendeten grafischen Oberfläche wird das Passwort des Systemverwalters (root) verlangt.
Tunnelkonfiguration anlegen
Das Programm öffnet sich mit einer spartanischen Oberfläche. Deren Bedienung ist etwas gewöhnungsbedürftig. Die Schaltflächen "Start", "Stop" und "Delete" wirken auf eine im oberen Fenster ausgewählte Tunneldefinition, die Schaltflächen "Add" und "Update" hingegen übertragen die Änderungen/Eintragungen des unteren Fensters in die selektierte bzw. bei "Add" neue Konfiguration oben. Am einfachsten ist es, die 5 Reiter nacheinander mit Informationen zu füllen und danach mittels "Add" die Konfiguration zu speichern.