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.
Konfiguration
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.
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
to be done
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
/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
/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
Ausprobieren
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.