Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


12.9.23 VPN-Dienste

Das Modul (gnu services vpn) stellt Dienste zur Verfügung, die mit Virtual Private Networks (VPNs) zu tun haben.

Bitmask

Variable: bitmask-service-type

Ein Diensttyp für den VPN-Client Bitmask. Damit wird der Client systemweit verfügbar gemacht und dessen Polkit-Richtlinie geladen. Beachten Sie, dass der Client nur mit einem laufenden polkit-agent funktioniert, der entweder von Ihrer „Desktop“-Arbeitsumgebung oder von Ihnen manuell gestartet wird.

OpenVPN

Hiermit wird ein Client-Dienst angeboten, mit dem sich Ihre Maschine mit einem VPN verbinden kann, sowie ein Server-Dienst, mit dem Sie auf Ihrer Maschine ein VPN betreiben können.

Scheme-Prozedur: openvpn-client-service [#:config (openvpn-client-configuration)]

Liefert einen Dienst, der den VPN-Daemon openvpn als Client ausführt.

Scheme-Prozedur: openvpn-server-service [#:config (openvpn-server-configuration)]

Liefert einen Dienst, der den VPN-Daemon openvpn als Server ausführt.

Beide können zeitgleich laufen gelassen werden.

Datentyp: openvpn-client-configuration

Verfügbare openvpn-client-configuration-Felder sind:

openvpn (Vorgabe: openvpn) (Typ: dateiartig)

Das OpenVPN-Paket.

pid-file (Vorgabe: "/var/run/openvpn/openvpn.pid") (Typ: Zeichenkette)

Die Datei für den Prozessidentifikator („PID“) von OpenVPN.

proto (Vorgabe: udp) (Typ: Protokoll)

Das Protokoll (UDP oder TCP), das benutzt werden soll, um einen Kommunikationskanal zwischen Clients und Servern herzustellen.

dev (Vorgabe: tun) (Typ: Gerätetyp)

Der Gerätetyp, mit dem die VPN-Verbindung repräsentiert werden soll.

ca (Vorgabe: "/etc/openvpn/ca.crt") (Typ: Vielleicht-Zeichenkette)

Die Zertifikatsautorität, mit der Verbindungen geprüft werden.

cert (Vorgabe: "/etc/openvpn/client.crt") (Typ: Vielleicht-Zeichenkette)

Das Zertifikat der Maschine, auf der der Daemon läuft. Es sollte von der in ca angegebenen Zertifikatsautorität signiert sein.

key (Vorgabe: "/etc/openvpn/client.key") (Typ: Vielleicht-Zeichenkette)

Der Schlüssel der Maschine, auf der der Daemon läuft. Er muss der Schlüssel zum in cert angegebenen Zertifikat sein.

comp-lzo? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Ob der Kompressionsalgorithmus lzo benutzt werden soll.

persist-key? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Die Schlüsseldateien nach Auftreten von SIGUSR1 oder –ping-restart nicht erneut einlesen.

persist-tun? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Nach dem Auftreten von SIGUSR1 oder –ping-restart TUN/TAP-Geräte nicht schließen und wieder öffnen und auch keine Start-/Stop-Skripte ausführen.

fast-io? (Vorgabe: #f) (Typ: Boolescher-Ausdruck)

(Experimentell) Schreibzugriffe durch Datenverkehr bei TUN/TAP/UDP optimieren, indem ein Aufruf von poll/epoll/select vor der Schreiboperation eingespart wird.

verbosity (Vorgabe: 3) (Typ: Zahl)

Ausführlichkeitsstufe.

tls-auth (Vorgabe: #f) (Typ: TLS-Clientauthentifizierung)

Eine weitere HMAC-Authentifizierung zusätzlich zum TLS-Steuerungskanal einsetzen, um das System vor gezielten Überlastungsangriffen („Denial of Service“) zu schützen.

auth-user-pass (Typ: Vielleicht-Zeichenkette)

Beim Server eine Authentisierung über Benutzername/Passwort durchführen. Die Option nimmt eine Datei, welche Benutzername und Passwort auf zwei Zeilen enthält. Benutzen Sie dafür kein dateiartiges Objekt, weil es in den Store eingelagert würde, wo es jeder Benutzer einsehen könnte.

verify-key-usage? (Vorgabe: #t) (Typ: Schlüsselnutzung)

Ob sichergestellt werden soll, dass das Server-Zertifikat auch über eine Erweiterung („Extension“) verfügt, dass es für die Nutzung als Server gültig ist.

bind? (Vorgabe: #f) (Typ: Binden)

Ob an immer dieselbe, feste lokale Portnummer gebunden wird.

resolv-retry? (Vorgabe: #t) (Typ: resolv-retry)

Ob, wenn die Server-Adresse nicht aufgelöst werden konnte, die Auflösung erneut versucht wird.

remote (Vorgabe: ()) (Typ: Liste-von-„openvpn-remote“)

Eine Liste entfernter Server, mit denen eine Verbindung hergestellt werden soll.

Datentyp: openvpn-remote-configuration

Verfügbare openvpn-remote-configuration-Felder sind:

name (Vorgabe: "my-server") (Typ: Zeichenkette)

Der Servername.

port (Vorgabe: 1194) (Typ: Zahl)

Die Portnummer, auf der der Server lauscht.

Datentyp: openvpn-server-configuration

Verfügbare openvpn-server-configuration-Felder sind:

openvpn (Vorgabe: openvpn) (Typ: dateiartig)

Das OpenVPN-Paket.

pid-file (Vorgabe: "/var/run/openvpn/openvpn.pid") (Typ: Zeichenkette)

Die Datei für den Prozessidentifikator („PID“) von OpenVPN.

proto (Vorgabe: udp) (Typ: Protokoll)

Das Protokoll (UDP oder TCP), das benutzt werden soll, um einen Kommunikationskanal zwischen Clients und Servern herzustellen.

dev (Vorgabe: tun) (Typ: Gerätetyp)

Der Gerätetyp, mit dem die VPN-Verbindung repräsentiert werden soll.

ca (Vorgabe: "/etc/openvpn/ca.crt") (Typ: Vielleicht-Zeichenkette)

Die Zertifikatsautorität, mit der Verbindungen geprüft werden.

cert (Vorgabe: "/etc/openvpn/client.crt") (Typ: Vielleicht-Zeichenkette)

Das Zertifikat der Maschine, auf der der Daemon läuft. Es sollte von der in ca angegebenen Zertifikatsautorität signiert sein.

key (Vorgabe: "/etc/openvpn/client.key") (Typ: Vielleicht-Zeichenkette)

Der Schlüssel der Maschine, auf der der Daemon läuft. Er muss der Schlüssel zum in cert angegebenen Zertifikat sein.

comp-lzo? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Ob der Kompressionsalgorithmus lzo benutzt werden soll.

persist-key? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Die Schlüsseldateien nach Auftreten von SIGUSR1 oder –ping-restart nicht erneut einlesen.

persist-tun? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Nach dem Auftreten von SIGUSR1 oder –ping-restart TUN/TAP-Geräte nicht schließen und wieder öffnen und auch keine Start-/Stop-Skripte ausführen.

fast-io? (Vorgabe: #f) (Typ: Boolescher-Ausdruck)

(Experimentell) Schreibzugriffe durch Datenverkehr bei TUN/TAP/UDP optimieren, indem ein Aufruf von poll/epoll/select vor der Schreiboperation eingespart wird.

verbosity (Vorgabe: 3) (Typ: Zahl)

Ausführlichkeitsstufe.

tls-auth (Vorgabe: #f) (Typ: TLS-Serverauthentifizierung)

Eine weitere HMAC-Authentifizierung zusätzlich zum TLS-Steuerungskanal einsetzen, um das System vor gezielten Überlastungsangriffen („Denial of Service“) zu schützen.

port (Vorgabe: 1194) (Typ: Zahl)

Gibt die Portnummer an, auf der der Server lauscht.

server (Vorgabe: "10.8.0.0 255.255.255.0") (Typ: IP-Maske)

Eine IP-Adresse gefolgt von deren Maske, die das Subnetz im virtuellen Netzwerk angibt.

server-ipv6 (Vorgabe: #f) (Typ: CIDR6)

Eine CIDR-Notation, mit der das IPv6-Subnetz im virtuellen Netzwerk angegeben wird.

dh (Vorgabe: "/etc/openvpn/dh2048.pem") (Typ: Zeichenkette)

Die Datei mit den Diffie-Hellman-Parametern.

ifconfig-pool-persist (Vorgabe: "/etc/openvpn/ipp.txt") (Typ: Zeichenkette)

Die Datei, in der Client-IPs eingetragen werden.

redirect-gateway? (Vorgabe: #f) (Typ: Zugang)

Wenn dies auf wahr steht, fungiert der Server als Zugang („Gateway“) für seine Clients.

client-to-client? (Vorgabe: #f) (Typ: Boolescher-Ausdruck)

Wenn dies auf wahr steht, ist es zugelassen, dass Clients untereinander innerhalb des VPNs kommunizieren.

keepalive (Vorgabe: (10 120)) (Typ: keepalive)

Lässt ping-artige Nachrichtigen in beide Richtungen über die Leitung übertragen, damit beide Seiten bemerken, wenn der Kommunikationspartner offline geht. Für keepalive muss ein Paar angegeben werden. Das erste Element ist die Periode, nach der das Pingsignal wieder gesendet werden soll, und das zweite ist eine Zeitbegrenzung, in der eines ankommen muss, damit die andere Seite nicht als offline gilt.

max-clients (Vorgabe: 100) (Typ: Zahl)

Wie viele Clients es höchstens geben kann.

status (Vorgabe: "/var/run/openvpn/status") (Typ: Zeichenkette)

Die Datei für einen Zustandsbericht („Status File“). Diese Datei enthält einen kurzen Bericht über die momentane Verbindung. Sie wird jede Minute gekürzt und neu geschrieben.

client-config-dir (Vorgabe: ()) (Typ: Liste-von-„openvpn-ccd“)

Die Liste der Konfigurationen für einige Clients.

strongSwan

Derzeit unterstützt der strongSwan-Dienst nur die alte Art der Konfiguration über die Dateien ipsec.conf und ipsec.secrets.

Variable: strongswan-service-type

Ein Diensttyp, um mit strongSwan VPN (Virtual Private Networking) über IPsec einzurichten. Als Wert muss ein strongswan-configuration-Verbundsobjekt angegeben werden, wie im folgenden Beispiel:

(service strongswan-service-type
         (strongswan-configuration
          (ipsec-conf "/etc/ipsec.conf")
          (ipsec-secrets "/etc/ipsec.secrets")))
Datentyp: strongswan-configuration

Der Datentyp, der die Konfiguration des strongSwan-Dienstes repräsentiert.

strongswan

Das strongSwan-Paket, was für diesen Dienst benutzt werden soll.

ipsec-conf (Vorgabe: #f)

Der Dateiname Ihrer ipsec.conf. Wenn es wahr ist, muss hierfür und für ipsec-secrets jeweils eine Zeichenkette angegeben werden.

ipsec-secrets (Vorgabe: #f)

Der Dateiname Ihrer ipsec.secrets. Wenn es wahr ist, muss hierfür und für ipsec-conf jeweils eine Zeichenkette angegeben werden.

Wireguard

Variable: wireguard-service-type

Ein Diensttyp für eine Schnittstelle über einen Wireguard-Tunnel. Sein Wert muss ein wireguard-configuration-Verbundsobjekt wie in diesem Beispiel sein:

(service wireguard-service-type
         (wireguard-configuration
          (peers
           (list
            (wireguard-peer
             (name "my-peer")
             (endpoint "my.wireguard.com:51820")
             (public-key "hzpKg9X1yqu1axN6iJp0mWf6BZGo8m1wteKwtTmDGF4=")
             (allowed-ips '("10.0.0.2/32")))))))
Datentyp: wireguard-configuration

Der Datentyp, der die Konfiguration des Wireguard-Dienstes repräsentiert.

wireguard

Das Wireguard-Paket, was für diesen Dienst benutzt werden soll.

interface (Vorgabe: "wg0")

Der Name der VPN-Schnittstelle.

addresses (Vorgabe: '("10.0.0.1/32"))

Welche IP-Adressen obiger Schnittstelle zugeordnet werden.

port (Vorgabe: 51820)

Auf welchem Port auf eingehende Verbindungen gelauscht werden soll.

dns (Vorgabe: #f)

Die DNS-Server, die den VPN-Clients per DHCP mitgeteilt werden.

private-key (Vorgabe: "/etc/wireguard/private.key")

Die Datei mit dem privaten Schlüssel für die Schnittstelle. Wenn die angegebene Datei nicht existiert, wird sie automatisch erzeugt.

peers (Vorgabe: '())

Die zugelassenen Netzwerkteilnehmer auf dieser Schnittstelle. Dies ist eine Liste von wireguard-peer-Verbundsobjekten.

pre-up (Vorgabe: '())

Welche Skriptbefehle vor dem Einrichten der Schnittstelle ausgeführt werden soll.

post-up (Vorgabe: '())

Welche Skriptbefehle nach dem Einrichten der Schnittstelle ausgeführt werden soll.

pre-down (Vorgabe: '())

Welche Skriptbefehle vor dem Abwickeln der Schnittstelle ausgeführt werden soll.

post-down (Vorgabe: '())

Welche Skriptbefehle nach dem Abwickeln der Schnittstelle ausgeführt werden soll.

table (Vorgabe: "auto")

Zu welcher Routing-Tabelle neue Routen hinzugefügt werden, angegeben als Zeichenkette. Es gibt zwei besondere Werte: Mit "off" schalten Sie die Erzeugung neuer Routen ganz ab, mit "auto" (was vorgegeben ist) werden Routen zur Standard-Routingtabelle hinzugefügt und Standardrouten besonders behandelt.

Datentyp: wireguard-peer

Der Datentyp, der einen an die angegebene Schnittstelle angeschlossenen Netzwerkteilnehmer („Peer“) repräsentiert.

name

Die Bezeichnung für den Netzwerkteilnehmer.

endpoint (Vorgabe: #f)

Optional der Endpunkt des Netzwerkteilnehmers, etwa "demo.wireguard.com:51820".

public-key

Der öffentliche Schlüssel des Netzwerkteilnehmers, dargestellt als eine base64-kodierte Zeichenkette.

preshared-key (default: #f)

An optional pre-shared key file for this peer. The given file will not be autogenerated.

allowed-ips

Eine Liste der IP-Adressen, von denen für diesen Netzwerkteilnehmer eingehende Kommunikation zugelassen wird und an die ausgehende Kommunikation für diesen Netzwerkteilnehmer gerichtet wird.

keep-alive (Vorgabe: #f)

Optional ein Zeitintervall in Sekunden. Einmal pro Zeitintervall wird ein Paket an den Serverendpunkt geschickt. Das hilft beim Empfangen eingehender Verbindungen von diesem Netzwerkteilnehmer, wenn Sie nur über eine Netzwerkadressübersetzung („NAT“) oder hinter einer Firewall erreichbar sind.


Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]