OpenVPN

Aus ConfigWiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(OpenVPN)
(Clients / GUIS)
 
(7 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 21: Zeile 21:
  
 
[[X.509 Zertifikate]] sind die sicherste Variante der Authentifizierung und können dazu auch noch auf einer SmartCard abgelegt werden. Hierfür können käufliche, wie auch selbst signierte Zertifikate eingesetzt werden.  
 
[[X.509 Zertifikate]] sind die sicherste Variante der Authentifizierung und können dazu auch noch auf einer SmartCard abgelegt werden. Hierfür können käufliche, wie auch selbst signierte Zertifikate eingesetzt werden.  
Dazu wird eine eigene [[Certificate Authority]] benötigt. [[Erstellung einer eigenen hierachischen CA | Anleitung zum erstellen einer eigenen hierachischen CA .]]
+
Dazu wird eine eigene [[Certificate Authority]] benötigt. [[Erstellung einer eigenen hierachischen CA | Anleitung zum Erstellen einer eigenen hierachischen CA .]]
  
 
===Backends===
 
===Backends===
Zeile 65: Zeile 65:
 
* Konf.-dateien im "client-config-dir" z.B. ''/etc/openvpn/ccd/client_1''
 
* Konf.-dateien im "client-config-dir" z.B. ''/etc/openvpn/ccd/client_1''
 
* Der Dateiname entspricht dem Clent - Namen, der aus dem CommonName des Client Zertifikates extrahiert wird.
 
* Der Dateiname entspricht dem Clent - Namen, der aus dem CommonName des Client Zertifikates extrahiert wird.
  # ifconfig-push weißt den Clients eine virtuelle IP zu, die kann dann per routing auf die entsprechenden Server gerouted werden.  
+
 +
  # ifconfig-push weißt den Clients eine virtuelle IP zu.
 
  # Die erste IP-Adresse ist die Adresse virtuellen Clients an, die 2. IP die des virtuellen Server.  
 
  # Die erste IP-Adresse ist die Adresse virtuellen Clients an, die 2. IP die des virtuellen Server.  
  # Sollten Windows Clients/TAP-Win32 Treiber verwendet werden , dann müssen diese aus einem XXX.XXX.XXX.XXX/30 Subnetz stammen
+
  # Sollten Windows Clients/TAP-Win32 Treiber verwendet werden, dann müssen diese aus einem XXX.XXX.XXX.XXX/30 Subnetz stammen.
  # ewirkt, dass der Client immer die selbe IP erhält.
+
  # ... bewirkt, dass der Client immer die selbe IP erhält.
 
  ifconfig-push 10.0.1.1 10.0.1.2
 
  ifconfig-push 10.0.1.1 10.0.1.2
 +
 
  # teilt dem Server bei bestehender Verbindung die Verknüpfung dieses Clients zum entsprechendem "route" - Eintrag
 
  # teilt dem Server bei bestehender Verbindung die Verknüpfung dieses Clients zum entsprechendem "route" - Eintrag
 
  # in ser "/etc/openvpn/server.conf" mit.
 
  # in ser "/etc/openvpn/server.conf" mit.
Zeile 97: Zeile 99:
 
  comp-lzo
 
  comp-lzo
 
  verb 2
 
  verb 2
 +
 +
== Clients / GUIS ==
 +
 +
# OpenVPN GUI http://openvpn.se/
 +
# Securepoint SSL VPN Client  http://download.securepoint.de
 +
## GUT! Alternative bei win 7 & co
 +
##Scripte sollten in Anführungszeichen stehen (Leerzeichenproblem)
 +
# OpenVPN Manager http://sourceforge.net/projects/openvpnmngr/
  
 
==externe Quellen:==
 
==externe Quellen:==
 
# http://de.wikipedia.org/wiki/OpenVPN
 
# http://de.wikipedia.org/wiki/OpenVPN
 
# http://wiki.freifunk.net/OpenVPN_Howto
 
# http://wiki.freifunk.net/OpenVPN_Howto

Aktuelle Version vom 24. Mai 2011, 12:51 Uhr

Inhaltsverzeichnis

[Bearbeiten] OpenVPN

OpenVPN ist eine auf SSL-Verschlüsselung basierende Variante eines virtuellen privaten Netzwerkes. In einigen Linuxdistributionen sind OpenVPN-Pakete bereits enthalten und können dort über die Paketverwaltung installiert werden. Für alle anderen ist die Software erhältlich unter http://openvpn.net/

[Bearbeiten] Firewall

OpenVPN benutzt den Port 5000/UDP. Dieser muß dementsprechend für ein- und ausgehende Verbindungen in der Firewall freigegeben werden.

[Bearbeiten] Authentifizierung

[Bearbeiten] Pre-shared Key

PSK ist ein statischer Schlüssel, der auf beiden Seiten identisch ist und vor der Benutzung auf sicherem Weg auszutauschen ist. Diese Variante ist leicht zu konfigurieren aber nicht besonders sicher, da der Schlüssel auf dem Client sicher aufbewahrt werden muß.

[Bearbeiten] Benutzername/Kennwort

Anfälliger gegen Man-in-the-middle-Attacken. Benutzer könnten zu unsichere Passwörter verwenden oder sichere Passwörter an unsicherer Stelle notiert werden.

[Bearbeiten] Zertifikate

X.509 Zertifikate sind die sicherste Variante der Authentifizierung und können dazu auch noch auf einer SmartCard abgelegt werden. Hierfür können käufliche, wie auch selbst signierte Zertifikate eingesetzt werden. Dazu wird eine eigene Certificate Authority benötigt. Anleitung zum Erstellen einer eigenen hierachischen CA .

[Bearbeiten] Backends

OpenVPN bietet ein PAM-Plugin. Damit können wiederum verschiedene Dienste wie z.B. RADIUS oder LDAP zur Authentifizierung genutzt werden.

[Bearbeiten] Konfiguration

OpenVPN liefert gut kommentierte Beispielkonfigurationen mit.

[Bearbeiten] Server

  • /etc/openvpn/server.conf
proto udp
dev tun

# Zertifikate entstammen einer einer eigenen hierachischen CA 
# siehe  Anleitung zum erstellen einer eigenen hierachischen CA .
ca /etc/ssl/my_ca/services/openvpn/openvpn_complete.crt
cert /etc/ssl/my_ca/services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.crt
key /etc/ssl/my_ca/services/openvpn/openvpnserver_1/openvpnserver_1_openvpn.key
dh /etc/ssl/my_ca/dh1024.pem

# Ein B-Klasse Netz für den Server
server 10.8.0.0 255.255.0.0

ifconfig-pool-persist ipp.txt
duplicate-cn
keepalive 10 120
comp-lzo
persist-key
persist-tun

# Logging
log         /var/log/openvpn.log
log-append  /var/log/openvpn.log
verb 3

# Dies ist nötig wenn der Server eine Route ins Netz des Clients kennen soll.
# Beim Start des Servers werden die route-Einträge in die Kernel-Routing-Tabelle geschrieben.
# Es muss noch eine Datei mit dem Namen des Clients im client-config-dir angelegt werden, die
# die Verknüpfung der Route mit dem Client herstellt (iroute (unten))
client-config-dir /etc/openvpn/ccd
route 192.168.10.0 255.255.255.0
  • Konf.-dateien im "client-config-dir" z.B. /etc/openvpn/ccd/client_1
  • Der Dateiname entspricht dem Clent - Namen, der aus dem CommonName des Client Zertifikates extrahiert wird.
# ifconfig-push weißt den Clients eine virtuelle IP zu.
# Die erste IP-Adresse ist die Adresse virtuellen Clients an, die 2. IP die des virtuellen Server. 
# Sollten Windows Clients/TAP-Win32 Treiber verwendet werden, dann müssen diese aus einem XXX.XXX.XXX.XXX/30 Subnetz stammen.
# ... bewirkt, dass der Client immer die selbe IP erhält.
ifconfig-push 10.0.1.1 10.0.1.2

# teilt dem Server bei bestehender Verbindung die Verknüpfung dieses Clients zum entsprechendem "route" - Eintrag
# in ser "/etc/openvpn/server.conf" mit.
iroute 192.168.10.0 255.255.255.0
  • es sollte noch eine leer /etc/openvpn/ipp.txt existieren

[Bearbeiten] Client

  • client.conf
client
dev tun
proto udp
remote www.bamsenet.de 1194

resolv-retry infinite

nobind
persist-key
persist-tun

# Zertifikate entstammen einer einer eigenen hierachischen CA 
# siehe  Anleitung zum erstellen einer eigenen hierachischen CA .
ca /PATH/custom_1_openvpn_copmplete.crt
cert /PATH/user_1.crt
key /PATH/user_1.key

comp-lzo
verb 2

[Bearbeiten] Clients / GUIS

  1. OpenVPN GUI http://openvpn.se/
  2. Securepoint SSL VPN Client http://download.securepoint.de
    1. GUT! Alternative bei win 7 & co
    2. Scripte sollten in Anführungszeichen stehen (Leerzeichenproblem)
  3. OpenVPN Manager http://sourceforge.net/projects/openvpnmngr/

[Bearbeiten] externe Quellen:

  1. http://de.wikipedia.org/wiki/OpenVPN
  2. http://wiki.freifunk.net/OpenVPN_Howto
Meine Werkzeuge