VPN-Verbindung zur FH Brandenburg

Aus BraLUG-Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Der Stern ist wichtig! - Eintragen in der Datei <code>/etc/ppp/eaptls-client</code>)
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
  
===PPP- und PPTP-Dienstprogramme===
+
===PPTP-Dienstprogramme===
Auf der Seite [http://pptpclient.sourceforge.net/ PPTP-Client] gibt es für eine Vielzahl von Distributionen spezifische Installationsanleitungen.  
+
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 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]
+
** 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.
  
===Eintragen in der Datei <code>/etc/ppp/eaptls-client</code>===
+
===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

[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, 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

[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:

[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".

PPTP starten


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

Root-Passwort eingeben


[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.

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


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.

Verschlüsselung


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.

Sonstige Einstellungen


[Bearbeiten] Tunnel starten

Nachdem alles fertig eingerichtet ist, kann durch Markieren des Tunneleintrages und Klick auf "Start" der Tunnel aufgebaut werden.

Tunnel starten


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.

'Persönliche Werkzeuge