OpenVPN einrichten
Grundsaetzlich ist diese Anleitung auf allen unixoiden Betriebssystemen anwendbar, der einzige Unterschied bezieht sich auf die Installation des Grundpakets, hier verwende ich Debian mit aptitude.
Zunaechst installieren wir das Grundpaket
aptitude install openvpn
Nun wechseln wir in das Konfigurations-Verzeichnis
cd /etc/openvpn/
Jetzt kopieren wir Scripte zum Generieren der PKI und gehen in dieses Verzeichnis
cp -r /usr/share/doc/openvpn/examples/easy-rsa/ . && cd easy-rsa/2.0
Jetzt passen wir die Umgebungsvariablen hierfuer an
edit vars
Jetzt noch alles ausfuehren
. ./vars && ./clean-all && ./build-ca
Nun koennen wir die Schluessel fuer den Server erstellen (der Parameter server ist der beliebige Server-Name)
./build-key-server server
Anschliessend die Schluessel fuer einen Client
./build-key client1
Und jetzt noch den Diffie-Hellman-Key
./build-dh
Jetzt sind alle erforderlichen Schluessel generiert.
Jetzt muessen wir nur noch die fuer Clients erforderlichen Schluessel auf die Clients bekommen, hierfuer gibt es viele verschiedene Varianten, ich benutze hier SCP um die Files zu transportieren, andere Moeglichkeiten sind Mail, FTP, SFTP, Samba ...
Ich erstelle ein Verzeichnis und taufe es needed, dieses Verzeichnis zieh ich anschliessend per SCP auf den jeweiligen Client.
mkdir needed && cp ca.crt needed && cp client1.crt needed && cp client1.key needed
Jetzt noch den SSH_User angeben
chown SSH_USER needed && chown SSH_USER needed/* && mv needed /home/SSH_USER
client~$ scp -P 22 -r SSH_USER@host:/home/SSH_USER/needed .
Unter Mac mit Tunnelblick:
client~$ mv needed/* ~/Library/Application\ Support/Tunnelblick/Configurations/
Wieder zurueck am Server holen wir die Keys ins Konfigurations-Verzeichnis
srv:/etc/openvpn/easy-rsa/2.0# cd ../.. && mv easy-rsa/2.0/keys .
Jetzt holen wir eine Beispiel-Konfiguration
srv:/etc/openvpn# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz . && gunzip server.conf.gz
... und dieses bearbeiten
edit server.conf
Folgende Punkte sollten bearbeitet werden (die route muss an das eigene Netz im LAN angepasst werden.
port WXYZ # anything > 49151 < 2^16-1
proto tcp
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
push "route 10.0.0.0 255.255.255.0" #beispielsweise 192.168.1.0 ...
Nun noch am Server IP-forwarding aktivieren
echo 1 > /proc/sys/net/ipv4/ip_forward
... und fertig ist die Laube.