Für manche Netzwerkszenarien scheint VPN die allumfassende Lösung zu sein. Im Grunde ist damit das Tunneln von Informationen durch einen abgesicherten Kanal gemeint. Es gibt verschiedene Möglichkeiten, so etwas zu realisieren.
Eine einfache Möglichkeit ist ein Tunnel mittels SSH. Informationen dazu finden sich im entsprechenden Howtos: VPN-HOWTO/. Weiterhin gibt es noch PPTP, IPSec und OpenVPN.
In dieser Anleitung konzentrieren wir uns ausschließlich auf OpenVPN.
Installation unter Debian Woody
Da OpenVPN derzeit nicht als offizielles Debian Woody Paket erhältlich ist, bietet es sich an, den Woody Backport unter folgender URL herunterzuladen:
Die Installation erfolgt mit dem Befehl:
dpkg -i openvpn_1.3.2-2.XXXX_i386.deb
Kernel-Voraussetzungen
Damit OpenVPN eingesetzt werden kann, muss ein Kernel mit der Option CONFIG_TUN=m oder CONFIG_TUN=y (Network Device Support – Universal TUN/TAP Device Driver support) übersetzt worden sein. Außerdem sollte man ggf. IP-Forwarding im Kernel einschalten (Firewall).
Device anlegen
Falls /dev/net/tun nicht vorhanden ist, kann man das Device manuell erstellen:
mknod /dev/net/tun c 10 200
Nun kann das Modul geladen werden:
modconf
# oder
modprobe tun
In der Datei /etc/network/options kann das IP-Forwarding systemweit eingeschaltet werden.
Konfiguration
Zuerst erstellt man ein Verzeichnis für die Konfigurationsdateien:
mkdir /etc/openvpn/
Es gibt zwei Verschlüsselungsverfahren:
- Einfache statische Schlüssel (Static Keys)
- SSL/TLS und RSA Zertifikate
Hier wird das einfachere Verfahren mit statischen Schlüsseln erläutert. Auf dieser Basis kann mithilfe des OpenVPN-Manuals später auch das Zertifikats-Verfahren umgesetzt werden.
1. Schlüssel generieren
Mit folgendem Befehl wird der gemeinsame Schlüssel erstellt:
openvpn --genkey --secret /etc/openvpn/tunnel1.key
Dieser Schlüssel muss mittels scp auf den zweiten beteiligten Rechner ebenfalls in das Verzeichnis /etc/openvpn/ kopiert werden.
2. Konfigurationsdateien erstellen
Erstelle jeweils eine Konfiguration für die Verbindung unter /etc/openvpn/tunnel1.conf.
Rechner 1
remote name.des.rechners1
float
port 4999
dev tun
# local 10.0.1.1
# remote 10.0.1.2
ifconfig 10.0.1.1 10.0.1.2
persist-tun
comp-lzo
ping 30
up /etc/openvpn/tunel1.up
secret /etc/openvpn/tunel1.key
Rechner 2
remote name.des.rechners2
float
port 4999
dev tun
# local 10.0.1.2
# remote 10.0.1.1
ifconfig 10.0.1.2 10.0.1.1
persist-tun
comp-lzo
ping 30
up /etc/openvpn/tunel1.up
secret /etc/openvpn/tunel1.key
3. Routing-Script
Zusätzlich muss die Datei /etc/openvpn/tunel1.up auf beiden Rechnern erstellt werden:
#!/bin/bash
route add -net 10.0.1.0 netmask 255.255.255.0 gw $5
VPN in Betrieb nehmen
Nachdem alle Dateien erstellt wurden, kann das VPN gestartet werden:
/etc/init.d/openvpn start
Tipp: Um die Verbindung zu vereinfachen, kann man den VPN-Schnittstellen in der /etc/hosts oder über einen eigenen Nameserver feste Namen zuweisen.
Weiterführende Links
- OpenVPN Homepage: http://openvpn.sourceforge.net/ (Hier gibt es weitere Dokumentationen)