Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:openvpn [2012/06/17 14:12] mhoffmann |
software:openvpn [2014/04/28 11:14] (aktuell) mhoffmann [Schlüssel erstellen] neue Version |
||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
==== Konfiguration der Schlüssel==== | ==== Konfiguration der Schlüssel==== | ||
- | Die Konfiguration folgt dem Beispiel von Ubuntuusers.de ( http://wiki.ubuntuusers.de/OpenVPN ) | + | Die Konfiguration folgt dem Beispiel: [[uu>OpenVPN]] |
Damit eine Verschlüsselung überhaupt möglich ist müssen zunächst die SSL-Zertifikate mit zugehöriger CA erstellt werden. | Damit eine Verschlüsselung überhaupt möglich ist müssen zunächst die SSL-Zertifikate mit zugehöriger CA erstellt werden. | ||
Zeile 41: | Zeile 41: | ||
Zum Abschluss muss noch zwei mal mit //Y// bestätigt werden. | Zum Abschluss muss noch zwei mal mit //Y// bestätigt werden. | ||
- | |||
- | Auch die Clients müssen Zertifikate besitzen um authentifiziert werden zu könnnen. Die Zertifikate für die Clients werden wie folgt erstellt: | ||
- | <code># sudo -E ./build-key <NameDesClients> </code> erstellt. Hierbei muss beim Common Name der Name des Clients eingegeben werden. | ||
Es müssen dann noch die Diffie-Hellmann-Paramter erstellt werden, die geschieht wiederrum mit <code># sudo -E ./build-dh</code> und kann je nach Prozessor einige Zeit dauern. | Es müssen dann noch die Diffie-Hellmann-Paramter erstellt werden, die geschieht wiederrum mit <code># sudo -E ./build-dh</code> und kann je nach Prozessor einige Zeit dauern. | ||
Zeile 95: | Zeile 92: | ||
Hierzu fügen wir auf diesem Server eine statische Route hinzu. Temporär mit | Hierzu fügen wir auf diesem Server eine statische Route hinzu. Temporär mit | ||
<code># sudo route add -net 10.8.0.0 netmask 255.255.255.0 gw vpn.server.i.p </code> | <code># sudo route add -net 10.8.0.0 netmask 255.255.255.0 gw vpn.server.i.p </code> | ||
- | Um die Route nach einem Neustart noch verwenden zu können müssen wir sie in die **/etc/rc.local des Computers eintragen, indem wir den gleichen Befehl ohne ''sudo'' dort eintragen. | + | Um die Route nach einem Neustart noch verwenden zu können müssen wir sie in die **/etc/rc.local** des Computers eintragen, indem wir den gleichen Befehl ohne ''sudo'' dort eintragen. |
=== OpenVPN als Default-Gateways === | === OpenVPN als Default-Gateways === | ||
Zeile 110: | Zeile 107: | ||
# sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | # sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
</code> | </code> | ||
+ | **Achtung:** Die letzte Regel aktiviert für alle Verbindungen die über das Interface eth0 aufgebaut werden NAT, was zu ungewünschten Verhalten führen kann!. Beim Betrieb einer Firewall oder eines Routers (IP_Forwarding) auf dem Server muss die Konfiguration entsprechend verändert werden. | ||
+ | |||
Da diese Regeln nach einem Neustart verloren gehen trägt man sie einfach wieder ohne ''sudo'' in die **/etc/rc.local** ein. | Da diese Regeln nach einem Neustart verloren gehen trägt man sie einfach wieder ohne ''sudo'' in die **/etc/rc.local** ein. | ||
Mach beachte hierbei, dass im ersten Befehl der Parameter von **-s** das Netz des VPN-Servers sein muss, und das Interface **-i** der Tunnel Adapter **tun0** oder das TAP-Interface **tap1**, je nach Konfiguration. | Mach beachte hierbei, dass im ersten Befehl der Parameter von **-s** das Netz des VPN-Servers sein muss, und das Interface **-i** der Tunnel Adapter **tun0** oder das TAP-Interface **tap1**, je nach Konfiguration. | ||
+ | |||
=== (Neu-)Start des Servers === | === (Neu-)Start des Servers === | ||
Nachdem der Server Konfiguriert wurde starten wir ihn mit | Nachdem der Server Konfiguriert wurde starten wir ihn mit | ||
<code># sudo service openvpn restart </code> neu. | <code># sudo service openvpn restart </code> neu. | ||
+ | ===== Client ===== | ||
+ | ==== Schlüssel erstellen ==== | ||
+ | Auch die Clients müssen Zertifikate besitzen um authentifiziert werden zu könnnen. Die Zertifikate für die Clients werden wie folgt im Ordner **/etc/openvpn/easy-rsa2/** erstellt.: | ||
+ | <code> | ||
+ | #exportiere variablen der CA | ||
+ | source ./vars | ||
+ | |||
+ | #Setze den namen des neuen Zertifikates | ||
+ | export KEY_CN=[Name des neuen Zertifikates] | ||
+ | |||
+ | #Jetzt wird das zertifikat erstellt. Dies kann mit oder ohne Passwort erfolgen. | ||
+ | #Mit Passwort | ||
+ | ./pkitool --pass [Name des neuen Zertfikates] | ||
+ | #oder ohne Passwort | ||
+ | ./pkitool [Name des neuen Zertfikates] | ||
+ | </code> erstellt. | ||
+ | |||
+ | Nach Abschluss der Aktion liegen die Zertifikate im Ordner /keys. | ||
+ | |||
+ | Es gibt für nahezu jedes Betriebssystem einen OpenVPN Client, ein Übersicht über diese bekommt man hier: https://community.openvpn.net/openvpn/wiki/RelatedProjects | ||
+ | |||
+ | Für den Betreib des Clients braucht man 4 Dateien (Hier mit Beispielnamen): | ||
+ | * Zertifikat des Cleints "nutzer01.crt" | ||
+ | * Schlüssel des CLients "nutzer01.key" | ||
+ | * Zertifikat der CA: ca.crt | ||
+ | * Configurationsdatei: client.conf (Unter windows muss man diese in client.ovpn umbennenen) | ||
+ | Die Zertifikate muss man natürlich vorher auf dem Server erstellt haben. | ||
+ | Die Konfigurationsdatei des Clients findet man auf dem VPN-Server unter **/usr/share/doc/openvpn/examples/sample-config-files/client.conf**. Diese sollte man sich ins openvon Verzeichnis kopieren. | ||
+ | Nun muss man diese Datei geringfügig anpassen: | ||
+ | Die Remotadresse des Servers muss angegeben werden, also die **öffentliche** Adresse auf der der Server horcht (Siehe Serverkonfig). Angenommen unser Server hat die Adresse **176.9.72.244**, dann tragen wir ein: | ||
+ | <code> | ||
+ | remote 176.9.72.244 [Port] | ||
+ | </code> | ||
+ | Natürlich kann man hier auch Domainnamen verwenden. | ||
+ | Danach muss man noch die Zertfikatspfade anpassen. | ||
+ | Da die Dateien alle im gleichen Verzeichnis liegen sollten tragen wir ein: | ||
+ | <code> | ||
+ | ca ca.crt | ||
+ | cert nutzer01.crt | ||
+ | key nutzer01.key | ||
+ | </code> | ||
+ | Danach kann man den openVPN Client starten. Nahezu alle GUIs zeigen beim Verbindungsaufbau einen LOG an, so dass man Fehler schnell erkennen kann. | ||
+ | Nun testen man am besteen noch, ob man alles gewünscht erreicht: | ||
+ | Auf der lokalen Maschine teste man mittels PING im Terminal oder Windows-CMD einfach, ob man | ||
+ | * VPN-Server | ||
+ | * Computer im entfernten LAN | ||
+ | * Computer im Internet (bspw. Google) | ||
+ | erreicht. | ||
+ | Funktioniert das alles so hat man die Konfiguration erfolgreich abgeschlossen. | ||
+ | ===== Hinweis ===== | ||
+ | - Für ein Bridged-Setup muss man eine andere Konfiguration für die Netzwerkfreigabe und den Internettunnel verwenden | ||
+ | - Wenn man in dem privaten Netzwerk keinen DNS-Server laufen hat, kann es sein, dass man dort gehostete Websiten nicht mehr über den domainnamen erreicht. | ||
+ | {{tag>vpn sicherheit}} | ||
Bei Verwendung dieses Wikis erklären Sie sich mit dem Haftungsausschluss, Nutzungsbedingungen und der Datenschutzerklärung dieses Wikis einverstanden. Impressum.