Was ist VPN?

VPN heisst "Virtual Privat Network" bzw in deutsch "virtuelles privates Netzwerk". Sie besitzen heute bereits ein privates Netzwerk, bestehend aus: Router, einen oder mehrer Rechner (Desktop, Laptop, Netbook, Tablet, Smartphone, Server). Dies ist jedoch physikalisch begrenzt auf das lokale Netz (LAN-Kabel / WLAN). Niemand anders kommt in Ihr lokales Netz und das ist auch gut so. Mit VPN wird:

  • Eine gut bewachte Zugang zum internen Netz bereit gestellt
  • Die Kommunikation vom externen Rechner ins interne Netz wird verschlüsselt
  • Der externe Rechner kann alle Dienste des internen Netzes nutzen (Zugriff auf den Server, drucken, etc.)
  • Man kann den kompletten Internet-Verkehr des externen Rechners über das interne Netz laufen lassen und so auch lokale Dienste überall nutzen (zB. Swisscom TV oder Zattoo)

So sieht es aus, wenn Sie von zuhause aus ins Internet gehen:

So sieht es aus, wenn Sie über ein öffentliches, unverschlüsseltes WLAN ins Internet gehen:

Und so sieht es aus, wenn Sie über ein öffentliches, unverschlüsseltes WLAN mittels VPN ins Internet gehen:

 

Wieso brauche ich ein eigenes VPN?

Benutzen sie öffentliche unverschlüsselte WLAN's? Haben ihnen auch schon Daten gefehlt, die zuhause auf dem Server lagen? Hatten Sie schon Probleme mit Internet-DIensten im Ausland? Wenn sie eine der Fragen mit JA beantworten können, brauchen Sie ein eigenes VPN bestehend aus einem VPN-Server und einem oder mehreren Clients.

WICHTIG: Mein Webhoster lässt aus Sicherheitsgründen keine direkten Referenzen zu Dateien des Servers zu (welcher anscheinend auch ein DNS-Server installiert hat. Darum werde ich alle direkten Pfade mit /_ beginnen. Bitte nach Cut & Paste einfach das _ entfernen!

Der Haftungsausschluss gilt natürlich auch für diesen Artikel.

Voraussetzungen

  • Ich weiss wie man Debian installiert
  • Neue Pakete installiert habe ich schon mal
  • Ich kann mit einem Editor unter Linux umgehen
  • Der Router muss vom Internet erreichbar sein entweder über eine statische IP-Adresse oder einem statischen Namen (Ich benutze noip)
  • Das Port 443 sollte vom Router an den Server weiter geleitet werden

Wieso OpenVPN?

Nach den Enthüllungen von Edward Snowden muss davon ausgegangen werden, dass kommerzielle VPN-Anbieter entweder mit der NSA zusammen arbeiten oder entsprechend unterwandert sind. Darum: Vertraue keiner Software die nicht geprüft werden kann!! Darum Open Source. Das heisst jetzt nicht, dass ich Codezeile für Codezeile von OpenVPN geprüft habe, aber ich vertraue den prüfenden Blicken der OpenSource-Community eher als jedem Statement einer Firma. Zudem mausert sich OpenVPN zum langsam zum Standard im Linux-Umfeld.

Pakete installieren

Entweder über eines der vielen Paketverwaltungs-Programme das Paket "openvpn" installieren oder in einem Terminal (als root) den folgenden Befehl azsführen (ohne "): "apt-get install openvpn".

VPN-Server konfigurieren

Vorbereitungen

Als root die folgenden Befehle in einem Terminalfenster ausführen:

cp /_usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /_etc/openvpn/
gunzip /_etc/openvpn/server.conf.gz
cp -r /_usr/share/doc/openvpn/examples/easy-rsa/2.0 /_etc/openvpn/easy-rsa2

Server Zertifikat

Die Datei /_etc/openvpn/easy-rsa2/vars editieren und den eigenen Gegebenheiten anpassen. Besonders die folgenden Zeilen:

export KEY_COUNTRY=CH
export KEY_PROVINCE=ZH
export KEY_CITY=Wädenswil
export KEY_ORG=”VpnKümin”
export KEY_EMAIL=”Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Als root die folgenden Befehle in einem Terminalfenster ausführen:

cd /_etc/openvpn/easy-rsa2/
mkdir keys
source ./vars
./clean-all ./build-ca
./build-key-server server

Server konfigurieren

Erstellen sie die Datei /_etc/openvpn/server.up mit einem Editor und fügen folgende Zeilen ein:

#!/bin/sh
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERAD

Mit dem Befehl "chmod 755 /_etc/openvpn/server.up" die Datei ausführbar machen.

Die Datei /_etc/openvpn/server.conf mit einem Editor öffnen und folgende Zeilen konfigurieren:

port 443
proto tcp
ca /_etc/openvpn/easy-rsa2/keys/ca.crt
cert /_etc/openvpn/easy-rsa2/keys/server.crt
key /_etc/openvpn/easy-rsa2/keys/server.key
dh /_etc/openvpn/easy-rsa2/keys/dh1024.pem
server 192.168.24.0 255.255.255.0
comp-lzo
script-security 3 system
up /_etc/openvpn/server.up

Sollten sie auf dem Server ebenfalls ein DNS-Server am laufen haben, sollten Sie die folgenden Zeilen noch konfigurieren:

push "dhcp-option DNS 192.168.24.1"
push "dhcp-option DNS 8.8.8.8"

Sollten sie auf dem Server ebenfalls ein WINS-Server (Samba) am laufen haben, sollten Sie die folgenden Zeilen noch konfigurieren:

push "dhcp-option WINS 192.168.24.1

Danach mit "/_etc/init.d/openvpn restart" den VPN-Server neu starten damit die Konfiguration neu geladen wird.

Client Zertifikat

Als root die folgenden Befehle in einem Terminalfenster ausführen:

cd /_etc/openvpn/easy-rsa2/
./build-key clientname

Bitte anselle von clientname einen Namen wählen, der den client eindeutig identifiziert. Es werden 3 Dateien erstellt:

  • clientname.crt
  • clientname.csr
  • clientname.key

Diese 3 Dateien zusammen mit der Datei ca.crt müssen nun auf den Client. Bitte einen sicheren Übertragungsweg wählen (kein Email, FTP, nicht über Drittpersonen).

Verschiedene Clients

Ubuntu / Debian

Das Paket "network-manager-openvpn" installieren und konfigurieren:

  • Gateway: ihrname.no-ip.org
  • Zertifikat des Benutzers: clientname.crt
  • Zertifikat der Zertifizierungsstelle: ca.crt
  • Privater Schlüssel: clientname.key

Unter Erweitert:

  • Gateway-Port: 443
  • LZO-Komprimierung verwenden
  • TCP-Verbindung verwenden

Android

  • Die 4 Dateien in einem neuen Ordner speichern
  • Im Google Play-Store die App "OpenVPN für Android" installieren
  • Die App "OpenVPN für Android" starten
  • Ein neues Profile anlegen
  • Grundeinstellungen:
    • Server:
    • Server-Port: 443
    • LZO Komprimierung: Ein
    • Typ: Zertifikate
    • CA Zertifikat: ca.crt
    • Clientzertifikat: clientname.crt
    • Clientzertifikatsschlüssel: clientname.key
  • IP und DNS (Sollten sie einen DNS-Server betreiben)
    • Eigene DNS Server: Ein
    • DNS Such Domäne: ihredomain.org
    • DNS Server: 192.168.24.1
    • Backup DNS Server: 8.8.8.6
  • Routing
    • Benutze Default Route (IPv4 / IPv6): Ein

Ich hoffe es hat alles funktioniert. Anregungen bitte via Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!.