VPN-Verbindung zur FH Brandenburg
Aus BraLUG-Wiki
MaD (Diskussion | Beiträge) (Der Stern ist wichtig! - →Eintragen in der Datei <code>/etc/ppp/eaptls-client</code>) |
MaD (Diskussion | Beiträge) K (Typo... - →Tunnelkonfiguration anlegen) |
||
(12 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 16: | Zeile 16: | ||
* Microsoft Point-to-Point Encryption (MPPE) support, <code>CONFIG_PPP_MPPE</code>, Modulname <code>ppp_mppe</code>, dieser Treiber steht im Standardkernel erst seit Version 2.6.15 zur Verfügung | * Microsoft Point-to-Point Encryption (MPPE) support, <code>CONFIG_PPP_MPPE</code>, Modulname <code>ppp_mppe</code>, dieser Treiber steht im Standardkernel erst seit Version 2.6.15 zur Verfügung | ||
− | === | + | ===PPTP-Dienstprogramme=== |
− | Auf der | + | Auf der [http://pptpclient.sourceforge.net/ 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. | + | Bitte einfach den <code>pptpclient</code> 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=== | ===PPP-Daemon mit EAP/TLS-Unterstützung=== | ||
Zeile 31: | Zeile 31: | ||
* RPM-basierende Distributionen (Fedora Core, RedHat, CentOS, SuSE) | * RPM-basierende Distributionen (Fedora Core, RedHat, CentOS, SuSE) | ||
** Binärpaket [http://zeus.fh-brandenburg.de/~schaefei/ppp-eaptls/ppp-2.4.3-eaptls_mppe.0.8.is.i386.rpm ppp-2.4.3-eaptls_mppe.0.8.is.i386.rpm] | ** Binärpaket [http://zeus.fh-brandenburg.de/~schaefei/ppp-eaptls/ppp-2.4.3-eaptls_mppe.0.8.is.i386.rpm ppp-2.4.3-eaptls_mppe.0.8.is.i386.rpm] | ||
− | ** Quell-RPM (zum | + | ** Quell-RPM (zum Selbstübersetzen) [http://zeus.fh-brandenburg.de/~schaefei/ppp-eaptls/ppp-2.4.3-eaptls_mppe.0.8.is.src.rpm ppp-2.4.3-eaptls_mppe.0.8.is.src.rpm] |
==Zertifikate== | ==Zertifikate== | ||
Zeile 38: | Zeile 38: | ||
Üblicherweise werden Zertifikate in Unterverzeichnissen unterhalb von <code>/etc/certs</code> abgelegt, der Inhalt der von der FH Brandenburg bereitgestellten Zip-Datei ist also dorthin zu entpacken. | Üblicherweise werden Zertifikate in Unterverzeichnissen unterhalb von <code>/etc/certs</code> abgelegt, der Inhalt der von der FH Brandenburg bereitgestellten Zip-Datei ist also dorthin zu entpacken. | ||
− | === | + | ===Einträge in der Datei <code>/etc/ppp/eaptls-client</code>=== |
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): | 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): | ||
Zeile 55: | Zeile 55: | ||
Die Dateien <code>/etc/ppp/peers/FHB-VPN</code> und <code>/etc/ppp/pptp-options</code> beinhalten beide Optionen für den <code>pppd</code>, die meisten Optionen können daher entweder in der einen oder in der anderen Datei stehen, <code>/etc/ppp/peers/FHB-VPN</code> sollte also nur spezielle Optionen beinhalten, die für andere VPNs nicht gültig sind. | Die Dateien <code>/etc/ppp/peers/FHB-VPN</code> und <code>/etc/ppp/pptp-options</code> beinhalten beide Optionen für den <code>pppd</code>, die meisten Optionen können daher entweder in der einen oder in der anderen Datei stehen, <code>/etc/ppp/peers/FHB-VPN</code> sollte also nur spezielle Optionen beinhalten, die für andere VPNs nicht gültig sind. | ||
− | |||
===<code>/etc/ppp/peers/FHB-VPN</code>=== | ===<code>/etc/ppp/peers/FHB-VPN</code>=== | ||
Zeile 108: | Zeile 107: | ||
Wäre die <code>nodefaultroute</code>-Option für den <code>pppd</code> 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. | Wäre die <code>nodefaultroute</code>-Option für den <code>pppd</code> 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)== | ==Konfiguration (grafisch)== | ||
Zeile 122: | Zeile 120: | ||
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. | 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. | Am einfachsten ist es, die 5 Reiter nacheinander mit Informationen zu füllen und danach mittels "Add" die Konfiguration zu speichern. | ||
+ | |||
+ | Hier in der allgemeinen Konfiguration ist der Name für den Tunnel einzugeben (frei wählbar) sowie der Name des Einwahlrouters (xsr-os.fh-brandenburg.de). Der Benutzername sollte der Name sein, auf den das Zertifikat ausgestellt ist. | ||
[[Bild:Vpn3.jpg|thumb|left|Allgemeine Konfiguration]] | [[Bild:Vpn3.jpg|thumb|left|Allgemeine Konfiguration]] | ||
− | <br style="clear:both;"> | + | <br style="clear:both;" /> |
+ | 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. | ||
+ | [[Bild:Vpn4.jpg|thumb|left|Routing]] | ||
+ | <br style="clear:both;" /> | ||
+ | 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. | ||
+ | [[Bild:Vpn5.jpg|thumb|left|Namensauflösung]] | ||
+ | <br style="clear:both" /> | ||
+ | Die hier dargestellten Eintragungen sind zwingend notwendig. Wichtig ist auch, dass der letzte Eintrag "refuse-eap" <em>nicht</em> aktiviert ist. Im Test war die mit dem pptp-Paket mitgelieferte Datei options.pptp fehlerhaft und enthielt hart kodiert den Eintrag "refuse-eap". In diesem Fall ist die Datei /etc/ppp/options.pptp zu editieren und dieser Eintrag durch ein "#" zu deaktivieren. | ||
+ | [[Bild:Vpn6.jpg|thumb|left|Verschlüsselung]] | ||
+ | <br style="clear:both" /> | ||
+ | Gerade beim erstmaligen Einrichten bietet sich der Eintrag "debug" an. Der Eintrag <code>remotename loki.fh-brandenburg.de</code> im oberen Feld "Options" ist deshalb notwendig, weil das dem System präsentierte Zertifikat auf loki.fh-brandenburg.de (den Radius-Server) ausgestellt ist und nicht auf xsr-os.fh-brandenburg.de (der Einwahlrouter). Wird dieser Eintrag vergessen, schlägt die Verifikation des Server-Zertifikates fehl und der Tunnel kann nicht aufgebaut werden. | ||
+ | |||
+ | Abschliessend ist jetzt der Button "Add" zu klicken. | ||
+ | [[Bild:Vpn7.jpg|thumb|left|Sonstige Einstellungen]] | ||
+ | <br style="clear:both" /> | ||
===Tunnel starten=== | ===Tunnel starten=== | ||
+ | Nachdem alles fertig eingerichtet ist, kann durch Markieren des Tunneleintrages und Klick auf "Start" der Tunnel aufgebaut werden. | ||
+ | |||
+ | [[Bild:Vpn8.jpg|thumb|left|Tunnel starten]] | ||
+ | <br style="clear:both;" /> | ||
+ | Ein Klick auf "Stop" beendet den Tunnel wieder. | ||
+ | |||
+ | ==Hilfe== | ||
+ | Sollte das VPN nicht funktionieren, ist zuerst die Störungssuche nach der [http://pptpclient.sourceforge.net/howto-diagnosis.phtml Diagnoseseite des pptp-Projektes] durchzuführen. Auch die Mitarbeiter des Rechenzentrums der FH Brandenburg, der Fachbereichsrechenzentren sowie die BraLUG-Mitglieder [[Benutzer:MaD|Markus Dahms]] oder [[Benutzer:ISCH|Ingo Schäfer]] helfen bei konkreten Problemen weiter. |
Aktuelle Version vom 27. Juni 2006, 11:03 Uhr
Inhaltsverzeichnis |
[Bearbeiten] 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.
[Bearbeiten] Software beschaffen bzw. überprüfen
[Bearbeiten] 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
[Bearbeiten] 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.
[Bearbeiten] 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
[Bearbeiten] 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.
[Bearbeiten] 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
[Bearbeiten] 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.
[Bearbeiten] /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
[Bearbeiten] /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
[Bearbeiten] 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
[Bearbeiten] /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.
[Bearbeiten] 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.
[Bearbeiten] Konfiguration (grafisch)
[Bearbeiten] 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.
[Bearbeiten] 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.
Hier in der allgemeinen Konfiguration ist der Name für den Tunnel einzugeben (frei wählbar) sowie der Name des Einwahlrouters (xsr-os.fh-brandenburg.de). Der Benutzername sollte der Name sein, auf den das Zertifikat ausgestellt ist.
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.
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.
Die hier dargestellten Eintragungen sind zwingend notwendig. Wichtig ist auch, dass der letzte Eintrag "refuse-eap" nicht aktiviert ist. Im Test war die mit dem pptp-Paket mitgelieferte Datei options.pptp fehlerhaft und enthielt hart kodiert den Eintrag "refuse-eap". In diesem Fall ist die Datei /etc/ppp/options.pptp zu editieren und dieser Eintrag durch ein "#" zu deaktivieren.
Gerade beim erstmaligen Einrichten bietet sich der Eintrag "debug" an. Der Eintrag remotename loki.fh-brandenburg.de
im oberen Feld "Options" ist deshalb notwendig, weil das dem System präsentierte Zertifikat auf loki.fh-brandenburg.de (den Radius-Server) ausgestellt ist und nicht auf xsr-os.fh-brandenburg.de (der Einwahlrouter). Wird dieser Eintrag vergessen, schlägt die Verifikation des Server-Zertifikates fehl und der Tunnel kann nicht aufgebaut werden.
Abschliessend ist jetzt der Button "Add" zu klicken.
[Bearbeiten] Tunnel starten
Nachdem alles fertig eingerichtet ist, kann durch Markieren des Tunneleintrages und Klick auf "Start" der Tunnel aufgebaut werden.
Ein Klick auf "Stop" beendet den Tunnel wieder.
[Bearbeiten] Hilfe
Sollte das VPN nicht funktionieren, ist zuerst die Störungssuche nach der Diagnoseseite des pptp-Projektes durchzuführen. Auch die Mitarbeiter des Rechenzentrums der FH Brandenburg, der Fachbereichsrechenzentren sowie die BraLUG-Mitglieder Markus Dahms oder Ingo Schäfer helfen bei konkreten Problemen weiter.