VPN-Verbindung zur FH Brandenburg

Aus BraLUG-Wiki

Wechseln zu: Navigation, Suche


Inhaltsverzeichnis

Man benötigt

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, Modulname ppp_generic
  • Microsoft Point-to-Point Encryption (MPPE) support, CONFIG_PPP_MPPE, Modulname ppp_mppe, dieser Treiber steht im Standardkernel erst seit Version 2.6.15 zur Verfügung

PPTP-Dienstprogramme

Auf der Homepage des PPTP-Clients 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:

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.

Einträge 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".

PPTP starten


Je nach Konfiguration der verwendeten grafischen Oberfläche wird das Passwort des Systemverwalters (root) verlangt.

Root-Passwort eingeben


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.

Allgemeine Konfiguration


Bei einem Einzelplatz ist die Angabe "All to Tunnel" sinnvoll. Wer sich genauer in der Netzstruktur seines Fachbereiches auskennt, kann auch den Eintrag "Client to LAN" wählen und die von ihm zu erreichenden privaten Netzwerksegmente manuell eintragen.

Routing


Auf dieser Registerkarte ist der Haken "Automatic" zu setzen, damit für die Namensauflösung ab Bestehen des Tunnels der FH-Server zuständig ist. Andernfalls können die privaten IP-Adressen nicht aufgelöst werden und man müsste mit IP-Adressen arbeiten. Der Eintrag "search fh-brandenburg.de" sorgt dafür, dass die Namen aus dem FH-Netz ohne Domainnamen aufgerufen werden können. Die automatische Weitergabe des Domainnamen funktioniert in der aktuellen Lösung auch bei anderen Betriebssystemen nicht zufriedenstellend.

Namensauflösung


Tunnel starten

'Persönliche Werkzeuge