Sichere Tunnel mit Debian
Für mache Netzwerkszenarien scheint das Zauberwort VPN womit im Grunde das Tunneln von Informationen
durch einen abgesicherten Tunnel gemeint ist die allumfassende Lösung zu sein.
Nun gibt es verschiedene Möglichkeiten sowas zu realisieren.
Eine einfache Möglichkeit ist ein Tunnel mittels ssh, dazu gibt es einige Informationen in dem folgenden Howto:
weiterhin gibt es noch PPTP, IPSec und OpenVPN.
Hier in dieser Anleitung soll es nur um OpenVPN gehen.
Da zur Zeit OpenVPN nicht als offizielles Debian Woody Packet erhältlich ist, bietet es sich an unter
folgender URL den woody backport runterzuladen:
mit
dpkg -i openvpn_1.3.2-2.XXXX_i386.deb
wird das Packet dann installiert.
Damit OpenVPN eingestzt werden kann muss ein Kernel mit der Option
CONFIG_TUN=m
oder
CONFIG_TUN=y
(Network Device Support – Universal TUN/TAP Device Driver supoort) übersetzt worden sein.
(Ausserdem kann man IP forwarding im Kernel einschalten – Firewall)
Als nächstes muss ggf. das entsprechende Device angelegt werden.
Falls /dev/net/tun nicht vorhanden ist, kann man das Device mit:
mknod /dev/net/tun c 10 200
erstellen.
Nun kann das Modul geladen werden mit:
modconf
oder
modprobe tun
in
/etc/network/options
kann IP forwarding Systemweit eingeschaltet werden.
Nun erstellt man ein Verzeichnis /etc/openvpn/
mkdir /etc/openvpn/
in dem die entsprechenden Konfigurationen abgelegt werden.
Es gibt zwei Verschlüsselungsverfahren, ein einfacheres mit gemeinsamen statischen Schlüsseln,
und ein Verfahren mit SSL/TLS und RSA Zertifikaten.
Hier wird das einfachere Verfahren erläutert
(auf dessen Basis kann man mit hilfe des OpenVPN manuals auch das andere Verfahren umsetzen).
Mit:
openvpn --genkey --secret /etc/openvpn/tunnel1.key
wird der gemeinsame Schlüssel erstellt.
Dieser Schlüssel kann mittels scp auf den zweiten an dem VPN beteiligten Rechner ebenso in das dort erstellte
Unterverzeichniss /etc/openvpn/ kopiert werden.
Dann erstellt man jeweils eine Konfiguration für die Verbindung: (/etc/openvpn/tunnel1.conf)
Rechner1
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
Rechner2
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
Nun muss noch 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
Nachdem die Dateien alle erstellt sind kann das VPN in Betrieb genommen werden mit:
/etc/init.d/openvpn start
Um die Verbindung etwas zu vereinfachen, kann man den VPN Schnittstellen auch Namen geben in /etc/hosts
oder über einen eigenen Nameserver…..
Die OpenVPN Homepage ist unter
http://openvpn.sourceforge.net/ erreichbar,
dort gibts weiter Dokumentation.