Nächste: Network File System, Vorige: VNC-Dienste, Nach oben: Dienste [Inhalt][Index]
Das Modul (gnu services vpn)
stellt Dienste zur Verfügung, die mit
Virtual Private Networks (VPNs) zu tun haben.
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.
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. openvpn-client-service-type
und
openvpn-server-service-type
können beide gleichzeitig zum Einsatz
kommen.
Diensttyp für einen Dienst, der den VPN-Daemon openvpn
als Client
ausführt.
Der Wert dieses Dienstes muss ein
<openvpn-client-configuration>
-Objekt sein.
Diensttyp für einen Dienst, der den VPN-Daemon openvpn
als Server
ausführt.
Der Wert dieses Dienstes muss ein
<openvpn-server-configuration>
-Objekt sein.
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.
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.
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.
Derzeit unterstützt der strongSwan-Dienst nur die alte Art der Konfiguration über die Dateien ipsec.conf und ipsec.secrets.
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")))
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.
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")))))))
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")
)List of strings or G-expressions which represent the IP addresses to be assigned to the above interface.
port
(Vorgabe: 51820
)Auf welchem Port auf eingehende Verbindungen gelauscht werden soll.
dns
(Vorgabe: '())
)List of strings or G-expressions which represent the DNS server(s) to announce to VPN clients via DHCP.
monitor-ips?
(Vorgabe: #f
) ¶Ob überwacht werden soll, wenn sich die Internet-Adressen (IPs) ändern, zu
denen die für Netzwerkteilnehmer angegebenen Endpunkte aufgelöst
werden. Dann wird der Endpunkt jedes Netzwerkteilnehmers, dessen IP-Adresse
nicht mehr mit dem neu aufgelösten Rechnernamen des Netzwerkteilnehmers
übereinstimmt, zurückgesetzt. Setzen Sie dies auf #t
, wenn einer oder
mehrere Endpunkte ihre Rechnernamen über einen Anbieter für dynamisches DNS
beziehen, damit die Sitzungen bestehen bleiben.
monitor-ips-interval
(Vorgabe: '(next-minute (range 0 60 5))
)Mit welchem Zeitabstand der Auftrag zur IP-Überwachung ausgeführt werden soll, als mcron-Zeitangabe (siehe (mcron)Guile Syntax).
private-key
(Vorgabe: "/etc/wireguard/private.key"
)The private key file for the interface. It is automatically generated if
the file does not exist. If this field is #f
, a private key is not
automatically created and the path is not serialized to the configuration
file.
bootstrap-private-key?
(default: #t
)Whether or not the private key should be generated automatically if it does not exist.
Setting this to #f
allows one to set the private key using command
substitution. One example shown in the wg-quick(8)
manual is
retrieving a private key using password-store
. This can be achieved
with the following code:
(wireguard-configuration
(private-key
#~(string-append "<("
#$(file-append password-store "/bin/pass")
;; Wireguard replaces %i with the interface name.
" WireGuard/private-keys/%i)")))
peers
(Vorgabe: '()
)Die zugelassenen Netzwerkteilnehmer auf dieser Schnittstelle. Dies ist eine Liste von wireguard-peer-Verbundsobjekten.
pre-up
(Vorgabe: '()
)List of strings or G-expressions. These are script snippets which will be executed before setting up the interface.
post-up
(Vorgabe: '()
)List of strings or G-expressions. These are script snippets which will be executed after setting up the interface.
pre-down
(Vorgabe: '()
)List of strings or G-expressions. These are script snippets which will be executed before tearing down the interface.
post-down
(Vorgabe: '()
)List of strings or G-expressions. These are script snippets which will be executed after tearing down the interface.
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.
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
(Vorgabe: #f
)An optional pre-shared key file for this peer that can be either a string or a G-expression. 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: Network File System, Vorige: VNC-Dienste, Nach oben: Dienste [Inhalt][Index]