Grade der EEEPC (man merkt, das ich den mag?) verführt dazu, in irgendwelchen Wlans zu surfen. Dabei werden aber, z.B. bei den üblichen Hotspots gerne alle Daten völlig unverschlüsselt übertragen, bei denen man das nicht möchte. Ich möchte nicht, das der Typ am Nebentisch mit"hören" kann, welche Webseiten ich besuche.
Also muss Verschlüsselung her, eigentlich (wenn man erstmal weiß wie) ganz einfach. Wermutstropfen: man braucht einen Rechner, der immer an ist oder einen eigenen Server.
Auf dem Server:
Auf dem Server installiert man erstmal openvpn und alle Abhängigkeiten mittels
sudo aptitude install openvpn
(oder dem Packetverwaltungswerkzeug der Wahl)
Dann müssen die Zertifikate, die die Verbindung kryptografisch absichern, erstellt werden. Der ganze Prozess ist hier beschrieben.
Anschließend erstellt man folgende /etc/openvpn/server.conf:
local IP-ADRESSE
port 443
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server 10.8.0.0 255.255.255.0 #aus diesem pool vergibt der server client ips
ifconfig-pool-persist /var/tmp/ipp.txt
client-to-client
keepalive 10 120
comp-lzo #schaltet Kompression ein
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 4
push "redirect-gateway" # setzt auf dem client die route neu
push "dhcp-option DNS DNS-SERVER-IP" # setzt auf dem client einen neuen DNS Server
Jetzt muss auf dem Server nur noch mittels
echo "1" > /proc/sys/net/ipv4/ip_forward
das Forwarding von IP-Paketen erlaubt werden und mit
iptables -t nat -A POSTROUTING -o ethX -s 10.8.0.0/24 -j SNAT --to IP-ADRESSE
die entsprechende Firewallregel eingefügt werden. Damit die beiden Änderungen einen Neustart des Servers überleben kann man die Befehle in die Start-Skripte einfügen, etwa in /etc/rc.local.
Wichtig: Bitte ethX durch die richtige Netzwerkschnitstelle ersetzen und IP-ADRESSE (2mal) durch die IP des Servers und DNS-SERVER-IP durch den für den Server verfügbaren DNS-Server ersetzen.
Auf dem EEEPC
(oder so ähnlich auch auf jedem anderen Linux-Rechner)
Erstmal Xandros-Quellen in die Datei /etc/apt/sources.list eintragen:
deb http://update.eeepc.asus.com/p701 p701 main
deb http://update.eeepc.asus.com/p701/de p701 maindeb http://xnv4.xandros.com/xs2.0/upkg-srv2 etch main contrib non-free
Wichtig: das Pinning, also der Softwareverwaltung die Originalen eeepc-Pakete beliebter machen. Dafür folgendes in die Datei /etc/apt/preferences schreiben:
Package:
Pin: origin update.eeepc.asus.com
Pin-Priority: 950
Package:
Pin: origin
Pin-Priority: 925
Package: *
Pin: origin xnv4.xandros.com
Pin-Priority: 900
Dann ein beherztes
sudo aptitude update; aptittude install openvpn
eingeben um openvpn (und alle Abhängigkeiten) zu installieren.
Dann noch die Konfiguration des Clients /etc/openvpn/client.conf erzeugen, IP-ADRESSE durch die IP des Servers ersetzen...:
client
remote IP-ADRESSE # Hostname/externe IP und Port des Servers
port 443 # Verwendet den SSL-Port, der ist in der Regel freigeschaltet
proto tcp
dev tun
comp-lzo
user nobody
group nogroup
# Hier die Pfade anpassen um auf die erstellten Keys zu verweisen
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/eeepc.crt
key /etc/openvpn/keys/eeepc.key
ns-cert-type server
verb 4
mute 20
Die 3 Dateien ca.crt, eeepc.crt und eeepc.key vom Server auf den Eeepc nach /etc/openvpn/keys kopieren.
Ich habe mir zum starten ein Shell-Skript geschrieben (/usr/local/bin/vpn.sh):
#!/bin/sh
sudo /usr/sbin/openvpn /etc/openvpn/client.conf
sudo /sbin/dhclient
Die letzte Zeile sorgt dafür, dass wenn man die VPN-verbindung mit STRG-C abbricht, die "normale" Netzwerkverbindung wiederhergestellt wird.
Update: Debian und alle seine Abkömlinge hatten eine unsichere Schlüsselerzeugung. Alle Zertifikate die vor dem Update vom 13.05.2008 erzeugt worden sind sind unsicher und müssen neu erzeugt werden!
Have fun!
Teilweise via.







