Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:openvpn

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

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.

software/openvpn.1339935123.txt.gz · Zuletzt geändert: 2012/10/11 10:23 (Externe Bearbeitung)