Nach einiger Zeit hab ich mir nun auch mal OpenVPN angeguckt. Ich benoetige von meinem Netbook unter Linux (und leider auch manchmal Windows) eine VPN-Einwahl in zwei Netze. Einmal das Wohnheimnetz in dem Studentenwohnheim in dem ich lebe (ATW) und einmal das Subnetz in der Uni wo ich arbeite. In beiden Netzen laufen Server 24/7 mit festen IPs die ich entsprechen erreichen kann. Vorab gesagt: Eine VPN-Verbindung fuer einen PC einzurichten ist sehr einfach. Doch von Anfang an…:
Auf dem Server und dem Client:
aptitude install openvpn |
Anschliessend auf dem Server als root in /etc/openvpn/ mit dem folgenden Befehl einen statischen Schluessel erzeugen:
openvpn --genkey --secret mykey.txt |
Diesen Schluessel dann auf einem sicheren Weg (z.B. scp) auf den Client transportieren. Mit einem
chmod 600 mykey.txt |
sollte er gegen unbefugtes Lesen gesichert werden. Nun sind die Konfigurationsdateien /etc/openvpn/myvpn.conf anzulegen. Auf dem Server wie folgt:
dev tun
ifconfig 10.10.100.41 10.10.100.42
secret mykey.txt
port 5000 |
und auf dem Client folgende:
remote 123.123.123.123
dev tun
ifconfig 10.10.100.41 10.10.100.42
secret mykey.txt
port 5000
route-gateway 10.10.100.41
redirect-gateway |
Auf dem Server muss Port 5000 UDP erreichbar sein. Wenn beide Dateien angelegt sind, kann man den Server starten mit dem Befehl:
openvpn --config /etc/openvpn/myvpn.conf |
mit dem selben Befehl kann man anschliessend auf dem Client die Verbindung zum VPN-Server herstellen. Das das erfolgreich war kann man anhand der Statusmeldung „Initialization Sequence Completed“ erkennen.
Das die Verbindung funktioniert kann man mit entsprechendem hin- und hergepinge ueberpruefen.
Auf dem Server fehlen nun noch zwei kleine Einstellungen damit auch das routen ins Netzwerk/Internet funktioniert. Zueinem muss ip_forward aktiviert sein und man muss eine iptables NAT Regel hinzufuegen:
echo "1" >> /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -s 10.10.100.41/24 -j SNAT --to 123.123.123.123 |
Damit die Einstellungen nicht bei einem Neustart verloren gehen, kann man sie z.B. in die /etc/rc.local eintragen. Ob alles funktioniert kann man dann erkennen, indem man z.B. www.heise.de/ip aufruft um seine IP rauszufinden, dann den VPN-Tunnel aufbauen und die Seite refreshen…
Unter Windows gestaltet es sich aehnlich einfach. Man muss OpenVPN fuer Windows installieren. Das Konfigurationsverzeichnis ist dann C:\Programme\OpenVPN\config. Dort wieder die mykey.txt ablegen (WinSCP) und eine VPN Konfigurationsdatei erstellen wie bereits oben beschrieben. Es ist nur wichtig, dass sie die Endung *.ovpn erhaelt. Bei der Vergabe der IP-Adressen fuer den VPN Tunnel ist weiter zu beachten, dass nur IP-Adressen aus dem Subnetz 255.255.255.252 benutzt werden koennen. Welche das sind, kann man sich unter Windows mit dem Befehl
openvpn --show-valid-subnets |
anzeigen lassen.
bin ja für apt-get statt aptitude weil aptitude bei problemen auf apt-get verweist ;-)
meine meinung begruendet sich auf dem: Artikel, und was die Geschwindigkeit angeht wird daran ja auch gearbeitet.