Wenn man sich einem unsicheren Netz bewegt, z.B. in einem freien WLAN empfielt es sich ein VPN zu nutzen. Dafür gibt es die unterschiedlichsten VPN-Dienste, welche dies gegen einen monatlichen Obolus anbieten. Besitzt man einen eigenen Server, so kann man sich mittels OpenVPN einen solchen Dienst selber aufsetzen. Im ersten Schritt wird OpenVPN installiert:
apt-get install openvpn
Aus den Beispieldateien wird das Skript „easy-rsa2“ zum Erstellen der Zertifikate an den entsprechenden Ort kopiert:
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa2
Für die Erzeugung der Zertifikate müssen einige Parameter angepasst werden. Dazu wird die entsprechende Datei im Editor geöffnet:
cd /etc/openvpn/easy-rsa2 nano vars
Der Wert Keysize „KEY_SIZE“ wird von 1024 auf 2048 erhöht. Am Ende der Datei befinden sich dann folgende Einträge:
export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="" export KEY_CN=changeme export KEY_NAME=changeme export KEY_OU=changeme export PKCS11_MODULE_PATH=changeme export PKCS11_PIN=1234
Nach der Konfiguration sollte das ganze dann in etwa so aussehen:
export KEY_COUNTRY="DE" export KEY_PROVINCE="MV" export KEY_CITY="Neubrandenburg" export KEY_ORG="Example Inc." export KEY_EMAIL="" export KEY_CN="vpn.example.org" export KEY_NAME="Example VPN" export KEY_OU="VPN" #export PKCS11_MODULE_PATH=changeme #export PKCS11_PIN=1234
Die „vars“-Datei wird den Umgebungsvariablen hinzugefügt und anschließend das Masterzertifikat erstellt:
source ./vars mkdir /etc/openvpn/easy-rsa2/keys sudo -E ./clean-all sudo -E ./build-ca
Damit ist die Certificaty Authority (CA) erstellt. Nun geht es an die Erstellung der Schlüssel für den Server:
sudo -E ./build-key-server server
Beim Common Name, gibt man die Domain ein unter welcher der VPN Server später erreichbar sein soll (z.B. vpn.example.org). Nach der Erstellung wird man im „keys“ Verzeichnis die Dateien „server.crt“, „server.csr“ und „server.key“ finden. Für den Diffie-Hellman Schlüsselaustausch müssen entsprechende Paramater erzeugt werden:
sudo -E ./build-dh
Nun fehlen nur noch die Zertifikate für die entsprechenden Nutzer. Ein Nutzer wird dabei mittels:
sudo -E ./build-key nutzerOderClientName
erstellt. Damit sind alle benötigten Zertifikate und Schlüssel erstellt, so das nun die restliche Konfiguration des Servers vorgenommen werden kann. Als Basis wird dabei die mitgelieferte Beispieldatei genutzt:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ sudo gunzip /etc/openvpn/server.conf.gz
Nach dem Kopiervorgang wird die Datei „/etc/openvpn/server.conf“ mittels „nano“ geöffnet. Folgende Einstellungen werden dabei angepasst werden:
ca ca.crt -> ca ./easy-rsa2/keys/ca.crt cert server.crt -> cert ./easy-rsa2/keys/server.crt key server.key -> key ./easy-rsa2/keys/server.key dh 1024.pem -> dh ./easy-rsa2/keys/dh2048.pem ;user nobody -> user nobody ;group nogroup -> group nogroup ;push "redirect-gateway def1 bypass-dhcp" -> push "redirect-gateway def1 bypass-dhcp"
Damit jegliche Kommunikaton vom Client über den Server läuft, muss die Datei „/etc/rc.local“ auf dem Server um einige Einträge ergänzt werden:
iptables -t nat -F POSTROUTING echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source IP_DES_SERVERS
Nun ist der Server konfiguriert und kann mittels:
reboot
neugestartet werden.
Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/OpenVPN
https://de.wikipedia.org/wiki/OpenVPN