OpenVPN mit Linux/Windows

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.

Die hier beschriebenen Infos habe ich von da und von da.

Temperatur aus Goettingen twittern…

Nachdem vorlon078 meinte wir braeuchten ein Skript das die Temperatur in Goettingen automatisch zwitschert…

#!/bin/bash
 
# fetch site
curl -s http://62.8.156.193/aktwert.aspx?St=GNCC >> temptmp
 
# find and get temperature
ROW=`nl temptmp | grep Temperatur | head -1 | awk {'print $1'}`
LINE=`echo $ROW + 1 | bc`
TEMP=`nl temptmp | grep $LINE | sed 's/.*SIZE="2">\|<\/FONT><\/TD>//g'`
 
# date and time
DATE=`date +"%d %B %Y"`
TIME=`nl temptmp | grep 13 | head -1 | sed 's/.*<BR>vom\|<\/FONT><\/B> <\/td>//g' | awk {'print $2'}`
 
#send to twitter
curl -s --connect-timeout 30 --max-time 60 -u TWITTERUSER:TWITTERPASS -d status="In Goettingen sind es am $DATE um $TIME Uhr genau $TEMP°C." http://twitter.com/statuses/update.xml 
 
# remove helpfile
rm temptmp

Der dazugehoerige crontab Eintrag lautet bei mir:

43 *	* * *	root	export LANG=de_DE.UTF-8 ; /root/skripte/goetemp.sh >> /dev/null

Followed einfach goetemp. Da gibts einmal pro Stunde die Temperatur…

Zum merken fuer heute:

Wenn nach Update von Debian etch auf Debian lenny einer Xen dom0 mit einem damit verbundenen Update von 2.6.18-6-xen-amd64 auf 2.6.26-2-xen-amd64 kernel und Xen Hypervisor 3.0 auf 3.2 irgendwas das xm console domU nicht mehr funktioniert, dann sollte man in der /etc/xen/domU.cfg die folgende Zeile anhaengen:

extra = "console=hvc0 xencons=tty"

Um bei einer Debian Maschine IPv6 komplett zu deaktivieren muss man in der /etc/modprobe.d/blacklist die Zeile

blacklist ipv6

einfuegen und den PC neu starten. Dann is das auch weg ;-)

[1] [2]