Konfiguration eines sicheren Peer-To-Peer Tunnels
Aus OpenVPN Wiki
Inhaltsverzeichnis |
Einleitung
Die folgende Konfiguration bietet einen simplen aber sicheren Weg mehrere VPN Endpunkte miteinander zu verbinden.
Voraussetzungen
- Windows, Linux oder MacOS X Rechner
- Administrationsrechte auf den Rechnern
- TUN Modul (für Linux)
- OpenVPN (für Vista: Version 2.1 verwenden, auf Server und Clients!)
- Ein offener TCP oder UDP Port bei einem Endpunkt (Server)
Vorbereitungen
Installation von OpenVPN auf dem Server und den Clients
siehe Install_Linux bzw. Install_Windows
Laden des TUN-Drivers (nur Linux)
Der Kernel muss ein entsprechendes Modul bereitstellen (tun.o bzw. tun.ko) oder TUN-Support einkompiliert haben. Danach kann man es als root einfach mit folgendem Befehl laden:
root@erde# modprobe tun
Erzeugen von Zertifikaten/Schlüsseln
Zum Erzeugen der nötigen Zertikate kann man z. B. easyRSA verwenden.
Folgende Dateien auf den Server kopieren:
- ca.crt
- server.crt
- server.key
- dh1024.pem
Folgende Dateien auf den Client kopieren:
- ca.crt
- client.crt
- client.key
Öffnen des benötigten Ports der Firewall
Steht der Server hinter einer Firewall/einem Router so muss dort der entsprechende Port auf den Server weitergeleitet werden. Der Standardport von OpenVPN ist 1194/UDP.
Konfiguration von OpenVPN Server und Client
Konfigurationsdatei für den OpenVPN-Server:
server 10.8.0.0 255.255.255.0 # virtuelles VPN-Netzwerk port 1194 # Auf Port 1194 horchen proto udp # Protokoll UDP, für TCP: proto tcp-server dev tap # evtl. tap0 unter Linux # Hier die Pfade anpassen um auf die erstellten Keys zu verweisen ca ca.crt cert server.crt key server.key # Falls eine PKCS#12 Datei verwendet wird, statt ca/cert/key diese Zeile verwenden # pkcs12 server.p12 dh dh1024.pem # float # wenn Clients ihre IPs während der Verbindung wechseln (Modemeinwahl) ping-timer-rem keepalive 20 180 # Alle 20 Sekunden pingen. 3 Minuten Timeout fuer Clientverbindung verb 3 # Zum Debugging erhöhen # Wenn Vista verwendet wird, diese Zeilen einkommentieren # route-method exe # route-delay 2
Konfigurationsdatei für die OpenVPN-Clients:
client remote my-openvpn-server.dyndns.com 1194 # Hostname/externe IP des Servers/Routers, Port entsprechend anpassen proto udp # Protokoll UDP, für TCP: proto tcp-client dev tap # evtl. tap0 unter Linux # Hier die Pfade anpassen um auf die erstellten Keys zu verweisen ca ca.crt cert client.crt key client.key # Falls eine PKCS#12 Datei verwendet wird, statt ca/cert/key diese Zeile verwenden # pkcs12 server.p12 ns-cert-type server # verhindert Man-in-the-Middle Attacken verb 3 # Zum Debugging erhöhen # Wenn Vista verwendet wird, diese Zeilen einkommentieren # route-method exe # route-delay 2
Testen der Verbindung
Verbindung aufbauen
Der Client sollte nun die Verbindung zum Server herstellen und halten können. Einfach mal 5 Minuten warten und die Logs von Server und Client beobachten.
IP Vergabe
Der Server hat immer die 10.8.0.1 als IP, während die Clients ihre IPs fortlaufend zugeteilt bekommen. Es kann jedoch nicht dafür garantiert werden, dass der Server immer nach der Reihenfolge vorgeht.
