VPN nur für Verbindungen ins fhs-Netz unter Unix 15. Juli 2011
Die FH Schmalkalden bietet für alle Mitglieder einen VPN-Zugang an. Obwohl der Gateway für Split Tunneling konfiguriert ist, funktioniert dies bei Nutzung von vpnc nicht. Außerdem wird die /etc/resolv.conf überschrieben, was dazu führt, dass alle DNS-Anfragen an den Server der FH Schmalkalden gehen.
Split-Tunneling meint, dass nur die Datenpakete die für IPs innerhalb des VPN bestimmt sind, über den Gateway laufen, alle anderen weiterhin direkt über Ihren Provider.
Notwendige Software
Beide Pakete sollten in der genutzen Distribution über den Package-Manager verfügbar sein.
Konfiguration des vpnc
Tragen Sie folgendes in die /etc/vpnc.conf oder /etc/vpnc/default.conf ein:
1 2 3 4 5 |
|
Ersetzen Sie yourfhsid
und yourpassword
durch Ihre FHS-ID und durch
Ihr Passwort. Das sharedsecret
finden Sie hier bei Ihrer VPN-Klasse.
Sie können das VPN nun mit vpnc
starten und mit vpnc-disconnect
beenden.
Sollte es nicht funktionieren, ist vermutlich entweder fhsid/passwort falsch oder der Universal TUN/TAP device driver support ist weder in den Kernel compiliert noch als Modul geladen.
Split-Tunneling selfmade
Nachdem Split-Tunneling nicht auf Anhieb funktioniert, konfigurieren wir das einfach selbst und das ist ganz einfach. Wir müssen nur die Routingtabelle nach dem Starten des vpnc anpassen.
Um die Standard-Route ohne VPN herauszufinden geben Sie einfach
route
ein. Die Zeile die mit default beginnt zeigt den Namen bzw.
die IP-Adresse des Default-Gateways. In meinem Fall ist das
192.168.178.1.
Starten Sie nun vpnc
und Sie sehen nach Eingabe von route
eine
Standard-Route die über das tun0 Interface läuft.
Um die Route anzupassen, setzen Sie zuerst die Standard-Route zurück mit:
route add default gw 192.168.178.1
Ersetzen Sie dabei 192.168.178.1 durch Ihre vorher herausgefundene Route.
Anschließend können Sie für die IP-Adressen die der Fakultät Informatik zugeordnet sind durch folgende Eingabe die Route durch das VPN setzen:
route add -net 212.201.64.0 netmask 255.255.254.0 dev tun0
Nach Beenden der VPN-Verbindung mit vpnc-disconnect
setzen Sie die
Route für alle wieder mit:
route add default gw 192.168.178.1
Selbstverständlich machen wir das in Zukunft mit einem Shell-Script.
DNS splitten
Beim Aufbau der VPN-Verbindung wird die /etc/resolv.conf überschrieben. Um Anfragen die FH-Schmalkalden betreffend an den DNS-Server der FH zu senden und alle anderen an den des ISP konfigurieren wir dnsmasq und überschreiben anschließend selbst die /etc/resolv.conf wieder.
Nachdem der DNS-Server der FH Schmalkalden natürlich auch ohne VPN erreichbar ist, können wir dnsmasq so konfigurieren, dass es immer läuft und nicht vor dem Starten des VPNs gestartet werden muss.
Nachdem Sie dnsmasq installiert haben, muss es einfach folgendermaßen gestartet werden:
dnsmasq -S /.fh-schmalkalden.de/194.94.30.50
Tragen Sie anschließend in die /etc/resolv.conf vor Ihrem bisherigen DNS-Server (bei mir 192.168.178.1) localhost ein. Das heisst meine /etc/resolv.conf sieht nun so aus:
nameserver 127.0.0.1 nameserver 192.168.178.1
Nach dem Starten von vpnc
wird dies allerdings überschrieben und
muss wieder eingefügt werden. Aber das machen wir jetzt alles mit
einem …
Script
Mit diesem Script geht Auf- und Abbau inklusive aller Anpassungen automatisch. Dnsmasq habe ich unabhängig davon immer laufen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Nachdem ich Gentoo nutze, habe ich mir die Ausgaben noch etwas schöner gemacht bzw. aus dem Howto [1] geklaut :–)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
Referenzen:
Über Kommentare, Fragen und Distributionsspezifische Anmerkungen würde ich mich freuen.