OpenVPN: Unterschied zwischen den Versionen
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 | ** 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 | ||
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> → <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, 20: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:
- Linux: In den meisten Distributionen vorhanden.
- Windoze: GUI + Installer
- Mac OS X: Tunnelblick
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 Certificates → New). 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