OpenVPN: Unterschied zwischen den Versionen

Aus Freifunk Potsdam | Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
Keine Bearbeitungszusammenfassung
Zeile 8: Zeile 8:


Ein VPN besteht aus:  
Ein VPN besteht aus:  
* Einem ''Server'', der den Zugang zum virtuellen Netz kontrolliert und das Routing zwischen den Clients und Nicht-VPN-Netzen regelt,  
* Einem '''Server''', der den Zugang zum virtuellen Netz kontrolliert und das Routing zwischen den Clients und Nicht-VPN-Netzen regelt,  
* Mehreren ''Clients'', die durch einen VPN-Tunnel mit dem Server kommunizieren. Mit Umweg über den Server ist so auch eine Client-zu-Client-Kommunikation möglich, sofern die Routing-Regeln des Servers dies zulassen.
* Mehreren '''Clients''', die durch einen VPN-Tunnel mit dem Server kommunizieren. Mit Umweg über den Server ist so auch eine Client-zu-Client-Kommunikation möglich, sofern die Routing-Regeln des Servers dies zulassen.
 


Im üblichen Aufbau von OpenVPN-Netzen melden sich die Clients über ein SSL-Zertifikat am Server an, wobei der CN (''Canonical Name'') des Zertifikates verwendet wird, um die korrekte Netzwerk-Konfiguration des Client zu bestimmen. Dies setzt voraus, daß jeder Client ein individuelles Zertifikat erhält. ''Wenn die Clients nur ins Internet wollen, wäre ein Cert für alle und ein DHCP-Pool besser.  Todo: Rausfinden, wie das geht.''
 
== Einrichtung ==
== Einrichtung ==
Für ein einfaches Client / Server-Setup wird benötigt:
Für ein einfaches Client / Server-Setup wird benötigt:
* SSL-Zertifikate für alle Beteiligten. Um die kostengünstig (umsonst) und einfach zu erhalten, sei eine Anmeldung bei [http://cacert.org CaCert] empfohlen.
* SSL-Zertifikate für alle Beteiligten. Um die kostengünstig (umsonst) und einfach zu erhalten, sei eine Anmeldung bei [http://cacert.org CaCert] empfohlen.
* Ein Netzwerkplan für das VPN, um folgende Fragen zu klären:
* Ein Netzwerkplan für das VPN, um folgende Fragen zu klären (''Melle, bitte ergänzen''):
** Welche LAN-Adressen (nach RFC 1918) sollen verwendet werden? ''TBD'': Für Windoze gelten Ausnahmeregeln.  
** Welche LAN-Adressen (nach RFC 1918) sollen verwendet werden? ''TBD: Ausnahmeregeln für Windoze verstehen und erklären.''
** Wer darf mit wem kommunizieren? Welches Routing und welche Firewall-Regeln werden dazu auf dem Server benötigt?
** Wer darf mit wem kommunizieren? Welches Routing und welche Firewall-Regeln werden dazu auf dem Server benötigt?
** Welche Namen haben die VPN-Clients?


=== SSL-Certs ===  
=== SSL-Certs ===  
Um ein Cert zu erstellen, wird ein Key benötigt. Mit OpenSSL geht das so:
Um ein Cert zu erstellen, wird ein Key benötigt. Mit OpenSSL geht das so:
  openssl genrsa -out vpn.key 2048
  openssl genrsa -out vpn.key 2048
 
Anschließend wird für jeden Client und den Server ein CSR benötigt:
Anschließend wird für jeden Client und den Server ein CSR (''Certificate Signing Request'') benötigt:
  openssl req -new -key vpn.key -out client.csr
  openssl req -new -key vpn.key -out client.csr


Außerdem braucht man noch das [http://www.cacert.org/certs/root.crt Root-Cert] von CACert.
Es folgt ein Frage-und-Antwort-Spiel. Dabei ist die einzig wichtige Frage: <code>Common Name (eg, YOUR name)</code>. Dort den jeweiligen Rechnernamen eintragen, z.B. <code>client001.vpn.freifunk-potsdam.de</code>.


Die CSRs klebt man der Reihe nach in das Eingabefeld bei [http://www.cacert.org/ CaCert] (unter <tt>Server Certificates</tt> &rarr; <tt>New</tt>). Postwendend erhält man ein halbwegs glaubwürdiges Zertifikat. Außerdem braucht man noch das [http://www.cacert.org/certs/root.crt Root-Cert] von CACert.


=== Server-Config ===
=== Server-Config ===

Version vom 23. Juli 2006, 21:14 Uhr

Überblick

OpenVPN leitet IP-Verbindungen durch unsichere Netze mithilfe kryptographisch gesicherter Tunnel. Die Nutzdaten werden mit SSL / TLS verschlüsselt, wodurch eine hohe Abhörsicherheit erzielt wird. Die OpenVPN-Software läuft als Hintergrundprozeß ("Daemon"), die Anbindung an den IP-Stack des jeweiligen Betriebssystemes wird durch einen Tunnel-Driver hergestellt.

Der Vorzüge von OpenVPN gegenüber PPTP oder IPsec sind Portabilität, offene Standards und einfache Konfiguration. Für folgende Systeme ist OpenVPN verfügbar:

Ein VPN besteht aus:

  • Einem Server, der den Zugang zum virtuellen Netz kontrolliert und das Routing zwischen den Clients und Nicht-VPN-Netzen regelt,
  • Mehreren Clients, die durch einen VPN-Tunnel mit dem Server kommunizieren. Mit Umweg über den Server ist so auch eine Client-zu-Client-Kommunikation möglich, sofern die Routing-Regeln des Servers dies zulassen.

Im üblichen Aufbau von OpenVPN-Netzen melden sich die Clients über ein SSL-Zertifikat am Server an, wobei der CN (Canonical Name) des Zertifikates verwendet wird, um die korrekte Netzwerk-Konfiguration des Client zu bestimmen. Dies setzt voraus, daß jeder Client ein individuelles Zertifikat erhält. Wenn die Clients nur ins Internet wollen, wäre ein Cert für alle und ein DHCP-Pool besser. Todo: Rausfinden, wie das geht.

Einrichtung

Für ein einfaches Client / Server-Setup wird benötigt:

  • SSL-Zertifikate für alle Beteiligten. Um die kostengünstig (umsonst) und einfach zu erhalten, sei eine Anmeldung bei CaCert empfohlen.
  • Ein Netzwerkplan für das VPN, um folgende Fragen zu klären (Melle, bitte ergänzen):
    • Welche LAN-Adressen (nach RFC 1918) sollen verwendet werden? TBD: Ausnahmeregeln für Windoze verstehen und erklären.
    • Wer darf mit wem kommunizieren? Welches Routing und welche Firewall-Regeln werden dazu auf dem Server benötigt?
    • Welche Namen haben die VPN-Clients?

SSL-Certs

Um ein Cert zu erstellen, wird ein Key benötigt. Mit OpenSSL geht das so:

openssl genrsa -out vpn.key 2048

Anschließend wird für jeden Client und den Server ein CSR (Certificate Signing Request) benötigt:

openssl req -new -key vpn.key -out client.csr

Es folgt ein Frage-und-Antwort-Spiel. Dabei ist die einzig wichtige Frage: Common Name (eg, YOUR name). Dort den jeweiligen Rechnernamen eintragen, z.B. client001.vpn.freifunk-potsdam.de.

Die CSRs klebt man der Reihe nach in das Eingabefeld bei CaCert (unter Server CertificatesNew). Postwendend erhält man ein halbwegs glaubwürdiges Zertifikat. Außerdem braucht man noch das Root-Cert von CACert.

Server-Config

Noch nicht fertig

port 33469
proto udp

dev tun0

ca /etc/ssl/certs/cacert.org.pem
cert /etc/ssl/certs/vpn-server.crt
key /etc/ssl/private/vpn.key
dh dh1024.pem

mode server
tls-server
ifconfig 10.0.0.1 10.0.0.2
route 10.0.0.0 255.0.0.0

push "route 10.0.0.1"

user nobody
group nogroup

client-config-dir ccd
ccd-exclusive
keepalive 10 120

comp-lzo

persist-key
persist-tun 

status openvpn-status.log