VPN für Arme
Interne Netze sicher zu einem großen virtuellen Netz verbinden
Für Perfektionisten
Nichtsdestotrotz ließen sich an solch einem VPN noch viele Dinge optimieren. Um Rechner des jeweils anderen Teilnetzes mit Hostnamen statt numerischen IP-Adressen anzusprechen, müssen alle Computer beider Teilnetze mit ihren IP-Adressen in der Datei /etc/hosts eines jeden Rechners eingetragen werden. Alternativ käme eine Verbreitung per NIS oder mit Hilfe eines Secondary Nameserver in Frage.
Auch das eingangs beschriebene Problem der Verbindungsabbrüche ließe sich beheben, indem ein Skript in /etc/ppp/ip-down.d/ prüft, ob die Verbindung unplanmäßig unterbrochen wurde.
Selbst wenn statt eines Routers auf Linux-Basis ein Hardwarerouter zum Einsatz kommt, lässt sich vpn-pppssh einsetzen. Hierfür braucht letzterer lediglich den SSH-Port 22 auf einen Linux-Rechner weiterleiten. Dieser muss dann für die Rechner des internen Netzes als Gateway ins andere Teilnetz konfiguriert werden. Damit er ankommende Pakete auch wirklich weiterleitet, erlaubt root mittels
echo 1 > /proc/sys/net/ipv4/ip_forward
das Forwarden.
Wollen jedoch eine größere Anzahl von Einzelnetzen verbunden werden, lohnt sich ein Blick auf aufwändigere VPN-Lösungen wie OpenVPN [3] und FreeS/WAN [4] (pju).
Glossar
Routing
Eine vom Betriebssystem verwaltete Routing-Tabelle legt den Weg der Datenpakete zwischen den Netzen (die Route) fest.
sudo
Mit diesem Tool erlaubt der Sysadmin einzelnen Benutzern, bestimmte Programme mit root-Rechten auszuführen. Die Möglichkeiten dieser Methode gehen weit über die des bekannten SUID-Bits [6] hinaus.
Public-Key-Verfahren
Bei der asymmetrischen Verschlüsselung gibt es immer zwei sich ergänzende Schlüssel: den öffentlichen Public Key sowie einen geheimen Private Key. Beide Schlüssel zusammen bilden ein Schlüsselpaar.
Daemon
Im Hintergrund wartendes Programm, welches auf Anfragen von außen reagiert. Dessen Programmname setzt sich meist aus dem verwendeten Protokoll mit einem angehängten "d" zusammen, so z. B. pppd oder sshd.
DSA
"Digital Signature Algorithm", ein sicherer Algorithmus zum Signieren von Nachrichten.
Runlevel
Betriebsmodus des Linux-Systems. Die verschiedenen Runlevels unterscheiden sich durch die Dienste, die beim Wechseln in diesen Modus gestartet oder angehalten werden. Welchen das System beim Booten standardmäßig benutzt, bestimmt die Datei /etc/inittab.
NIS
"Network Information System". Ein NIS-Server verteilt Konfigurationseinstellungen an angeschlossene Clients, zum Beispiel die User-Daten in Form einer Passwortdatei oder die Konfigurationsdateien für den Automounter, der Netzwerklaufwerke bei Bedarf einhängt. Die Datei /etc/nsswitch.conf legt fest, welche Datenquellen (lokale Dateien, NIS) ein Rechner anzapft.
Secondary Nameserver
Ein Secondary Nameserver bezieht seine DNS-Informationen vom Primary Nameserver, der die entsprechende Domain verwaltet. Oft holt er sich bereits beim Start eine vollständige Kopie dieser Daten. Dass die DNS-Auskünfte, die ein solcher Nameserver erteilt, zeitweise nicht mit den vom Primary Nameserver verbreiteten Daten übereinstimmt, wird in Kauf genommen.
Infos
[1] vpn-pppssh und Howto: http://www.tldp.org/HOWTO/mini/ppp-ssh/
[2] OpenSSH: http://www.openssh.org/
[3] OpenVPN: http://openvpn.sourceforge.net/
[4] FreeS/WAN: http://www.freeswan.org/
[5] Michael Renner, Hans-Günther Nusseck: "Identitätskrisen meistern", Linux Magazin 05/2001, S. 93 ff., http://www.linux-magazin.de/Artikel/ausgabe/2001/05/dyndns/dyndns.html
[6] Patricia Jung: "Alles Recht", LinuxUser 12/2002, S. 31 ff.



