WeiterInhalt

5. Optionen

Hier Beschreibe ich noch einmal die wichtigsten Optionen und welche die in den Beispielen noch nicht benutzt wurden. Ich gebe sie hier so an, wie sie als Parameter an OpenVPN beim Starten übergeben würden. Falls sie in die Konfig-Datei kommen, was meist der Fall ist, wird das '--' einfach weggelassen.
Weitere Details zu den Beschreibungen und weitere Optionen findet man in der Manualpage von OpenVPN.

5.1 Tunnel Options

--mode n

Gibt den Modus an in dem OpenVPN laufen soll. Mögliche Werte sind p2p (Standard, einfache P2P-Verbindung) und server (Multi-Client-Verbindung)

--remote host [port]

der Hostname oder die IP-Adresse der Gegenstelle. Es kann auch noch der Port mit übergeben werden.

--proto n

das Protokoll für den Tunnel. Mögliche Werte sind udp (Standard), tcp-client oder tcp-server. Bei udp wird dies auf beiden Seiten benutzt. Bei tcp ist einer der tcp-client und einer der tcp-server. Der Server wartet unbegrenzt auf eine Verbindung, der Client versucht ständig (im 5s-Takt) eine aufzubauen. OpenVPN ist optimiert für udp

--http-proxy server port [authfile] [auth-method]

mit diesem Parameter kann die Verbindung über einen Proxy hergestellt werden

--float

OFFEN

--port port

die TCP/UDP-Port-Nummer. Standardmäßig wird Port 1194 benutzt

--dev tunX | tapX | null

das Device für den Tunnel. X steht für die Device-Nummer. tunX ist für IP-Tunnel, tapX für Ethernet-Tunnel

--ifconfig l rn

Mit ifconfig werden die Device-Parameter gesetzt. Bei dem tun-Device ist l - die lokale IP-Adresse und rn die der Gegenstelle, bei dem tap-Device ist l ebenfalls die lokale IP-Adresse und rn die Netzwerkmaske.

--route network/IP [netmask] [gateway] [metric]

genau wie das normale route-Kommando

--tun-mtu n

Setzt den MTU-Wert (Maximum Transmission Units, maximale Paketgröße)

--mtu-test

Hiermit kann beim Starten von OpenVPN der MTU-Wert ermittelt werden. Der Test dauert ca. 3min.

--fragment max

OFFEN Erlaubt es, dass Pakete fragmentiert gesendet werden. Gilt nur für udp! Dadurch können Pakete mit Übergröße in Teilpakete unterteilt werden

--mssfix max

OFFEN

--up cmd, --down cmd

Erlaubt es nach einem Verbindungsauf- oder Abbau ein Script zu starten; siehe auch --user und --group

--user user, --group group

Setzt die ID des OpenVPN-Prozesses auf den angegebenen User und die Gruppe.

--daemon [progname]

Startet OpenVPN als Dämon. Ausgaben werden ab dann in die syslog geschrieben. Mit progname kann der Name der Einträge festgelegt werden (Standard: openvpn)

--log file

Logatei für Meldungen. Wenn die Datei vorhanden ist wird sie überschrieben.

--log-append file

Logdatei für Meldungen. Wenn die Datei vorhanden ist werden die Meldungen angehängt.

--verb n

Bestimmt den Debug-Level. 0 - keine Ausgabe; außer Fehlermeldungen, 1-4 - normale Ausgaben, 5 - bei Aktivitäten werden die Buchstaben R und W ausgegeben, klein für TCP/UDP Pakete und GROSS für TUN/TAP Pakete,6 to 11 - Ausführliche Debug-Meldungen

--comp-lzo [mode]

OFFEN Legt fest ob die Daten komprimiert werden (yes) oder nicht (no). Der Standardwert ist adaptive

5.2 Server Options

--mode server

Startet OpenVPN im Multi-Client-Modus (siehe auch --mode)

--server network netmask

Legt die Netzwerkadresse und -maske fest die benutzt werden soll

--push option

Sendet eine Option an die Gegenstelle

--duplicate-cn

Normalerweise werden bei Zertifikaten verschiedene Common Names benutzt. Wenn ein Client sich mehrmals mit demselben Common Name anmeldet wird eine vorhandene Verbindung getrennt. Durch duplicate-cn kann dies verhindert werden. Siehe auch Eigene Zertifikate

--max-clients n

Legt fest wieviel Clients sich maximal verbinden dürfen.

5.3 Client Mode

Dieser Modus verlangt, dass die Gegenstelle sich in einem Server-Modus befindet (--server, --server-bridge oder --mode server).

--client

Versetzt den Gateway in den Client-Modus. Ersetzt --pull und --tls-client

--pull

Diese Option muss gesetzt werden, wenn die Gegenstelle im Multi-Client-Modus läuft. Sie erlaubt der Gegenstelle u.a. das setzen von Routen. Siehe auch --client und --push


5.4 Data Channel Encryption Options

Dies sind Optionen die beide Arten der Authentisierung betreffen: Statischer Schlüssel und Zertifikate.

--secret file

Ein Verweis auf den statischen Schlüssel. Diese Option ist nur für diese Art der Authentisierung

--auth alg

Bestimmt den Algorithmus der für die Pakete der Authentisierung benutzt werden soll. Standardwert ist SHA1. Siehe auch --show-digests

--cipher alg

Bestimmt welche Verschlüsselungsmethode für die Datenpakete benutzt werden soll. Siehe auch --show-ciphers

5.5 TLS Mode Options - Zertifikatbasiert

Diese Optionen betreffen die zertifikatbasierte Authentisierung.


--tls-server

Legt fest, dass der entsprechende VPN-Gateway der Server bei der Authentisierung ist. Diese Einstellung hat nichts mit den oben genannten Server-Modis zu tun.

--tls-client

Legt fest wer der Client bei der Authentisierung ist.

--dh file

Ein Verweis auf die Datei mit den Diffie-Hellman-Parametern. Dieses wird nur bei dem --tls-server benötigt.

--ca file

Ein Verweis auf das Stammzertifikat. Dieses muss sich auf jedem Rechner befinden

--cert file

Hier wird jeweils das Zertifikat angegeben, das für den entsprechenden VPN-Gateway benutzt werden soll.

--key file

Hier gibt man den zu dem Zertifikat gehörenden privaten Schlüssel an. Dieser sollte unbedingt vor Lesezugriffen andere Benutzer geschützt sein.

--pkcs12 file

Ein Verweis auf einen Kontainer, der das Stammzertifikat, das Zertifikat und den privaten Schlüssel enthält. Ersetzt --ca, --cert und --key.

--askpass [file]

Für den Fall, dass der private Schlüssel passwortgeschützt ist, kann man hier einen Verweis auf eine Datei die das Passwort enthält angeben. Hierdurch wird die Passwortabfrage beim Starten verhindert. Das Passwort muss nur in der ersten Zeile der Datei stehen. Dies ist nützlich wenn OpenVPN im Dämon-Modus starten soll

--crl-verify crl

Gibt eine CRL (Certificate Revocation List- Widerrufsliste) an, in der Zertifikate aufgeführt sind, die keinen Zugriff mehr erhalten sollen.

5.6 SSL Informationen


--show-ciphers

Listet alle Cipher-Algorithmen auf. Siehe --cipher                                                                                      

--show-digests

Liste alle benutzbaren Authentifizierungs-Methoden auf. Siehe auch --auth

5.7 tun/tap-Device Options


--dev tunX | tapX

das zu benutzende Device

Die Wahl welches Device benutzt wird, hängt davon ab was man über den VPN-Tunnel senden will. Mit dem tun-Device können nur IP-Pakete gesendet werden. Es ist also ein IP-Tunnel. Das tap-Device kann dagegen auch andere Protokolle senden. D.h. es könnte z.B. über einen VPN-Tunnel auch per Netware IPX auf einen Novell-Server zugegriffen werden. Daher nennt man die Benutzung dieses Devices Ethernet-Bridging. Hier die wichtigsten Vor- und Nachteile (aus der OpenVPN-FAQ):


Ethernet Bridging
IP-Tunnel
Vorteile
- 'Überbrückt' den VPN-Tunnel
- Effizient und Skalierbar

- keine Routen notwendig
- Erlaubt besseres tuning

- lässt auch andere Protokolle zu
(z.B. Appletalk, Netware IPX usw.)


- Einfache Konfiguration für Roadwarrior




Nachteile
- weniger Effizient als IP-Tunnel
- Clienten benötigen einen WINS-Server um zwischen Netzwerken zu 'browsen'

- schwer skalierbar
- keine Broadcasts über die Netze möglich (OFFEN)


- Netzwerke müssen geroutet werden

Wie wird nun aber bei dem tap-Device eine 'Brücke' hergestellt? Auf Details gehe ich hier nicht ein (es geht ja um VPN und nicht um Ethernet-Bridging), aber hier ein kurzer Tip: Ethernet-Bridging bedeutet bei VPN das ein Netzwerkcontroller den Tunnel überbrücken kann. Es muss also einem Controller gesagt werden, dass er das VPN-Device benutzen soll. Unter Linux kann dazu das Tool brtcl benutzt werden. Unter Windows müssen in den Netzwerkverbindungen die betreffende Verbindung und das VPN-Device markiert werden, dann ein Klick mit der rechten Maustaste und Verbindungen überbrücken wählen.

5.8 Zusammenfassung

Dies war nur ein Auszug von vielen Optionen die OpenVPN mit sich bringt. Jemand der OpenVPN intensiver nutzen will muss sich unbedingt die Manualpage und ggf. die englische Howto auf der Homepage durchlesen.


WeiterInhalt