Nächste: Unbeaufsichtigte Aktualisierungen, Vorige: Log-Rotation, Nach oben: Dienste [Inhalt][Index]
Das Modul (gnu services networking)
bietet Dienste zum Konfigurieren
des Netzwerks an.
Dies ist der Diensttyp für den Dienst, der dhcp ausführt, einen Client
für das „Dynamic Host Configuration Protocol“ (DHCP), der auf allen
Netzwerkschnittstellen außer „loopback“ läuft. Sein Wert ist das zu
verwendende DHCP-Client-Paket; vorgegeben ist isc-dhcp
.
Dieser Diensttyp definiert einen Dienst, der einen DHCP-Daemon ausführt. Um
einen Dienst zu diesem Typ anzugeben, müssen Sie eine
<dhcpd-configuration>
bereitstellen. Zum Beispiel so:
(service dhcpd-service-type
(dhcpd-configuration
(config-file (local-file "my-dhcpd.conf"))
(interfaces '("enp0s25"))))
package
(Vorgabe: isc-dhcp
)Das Paket, das den DHCP-Daemon zur Verfügung stellt. Von diesem Paket wird erwartet, dass es den Daemon unter dem Pfad sbin/dhcpd relativ zum Verzeichnis der Paketausgabe bereitstellt. Das vorgegebene Paket ist der DHCP-Server vom ISC.
config-file
(Vorgabe: #f
)Die Konfigurationsdatei, die benutzt werden soll. Sie muss angegeben
werden und wird an dhcpd
mittels seiner Befehlszeilenoption
-cf
übergeben. Ein beliebiges „dateiartiges“ Objekt kann dafür
angegeben werden (siehe dateiartige Objekte). Siehe
man dhcpd.conf
für Details, welcher Syntax die Konfigurationsdatei
genügen muss.
version
(Vorgabe: "4"
)Die DHCP-Version, die benutzt werden soll. Der ISC-DHCP-Server unterstützt
die Werte „4“, „6“ und „4o6“. Das Feld entspricht den Befehlszeilenoptionen
-4
, -6
und -4o6
von dhcpd
. Siehe man
dhcpd
für Details.
run-directory
(Vorgabe: "/run/dhcpd"
)Das zu benutzende Laufzeit-Verzeichnis („run“-Verzeichnis). Wenn der Dienst aktiviert wird, wird dieses Verzeichnis erzeugt, wenn es noch nicht existiert.
pid-file
(Vorgabe: "/run/dhcpd/dhcpd.pid"
)Die zu benutzende PID-Datei. Dieses Feld entspricht der Befehlszeilenoption
-pf
von dhcpd
. Siehe man dhcpd
für Details.
interfaces
(Vorgabe: '()
)Die Namen der Netzwerkschnittstelle, auf der dhcpd auf Broadcast-Nachrichten
lauscht. Wenn diese Liste nicht leer ist, werden ihre Elemente (diese müssen
Zeichenketten sein) an den dhcpd
-Aufruf beim Starten des Daemons
angehängt. Es ist unter Umständen nicht nötig, hier Schnittstellen
ausdrücklich anzugeben; siehe man dhcpd
für Details.
Dies ist der Typ für statisch konfigurierte Netzwerkschnittstellen.
'()
] [#:requirement'(udev)
] Liefert einen Dienst, der die Schnittstelle auf dieser
IP-Adresse startet. Wenn netmask wahr ist, wird es als
Netzwerkmaske benutzt. Wenn gateway wahr ist, muss es eine
Zeichenkette sein, die den voreingestellten Netzwerk-Zugang
(„Netzwerk-Gateway“) angibt. Als requirement („Anforderung“) können
Abhängigkeiten von anderen Diensten deklariert werden, die vor dem
Konfigurieren der Schnittstelle gestartet sein müssen.
Diese Prozedur kann mehrmals aufgerufen werden, einmal pro
Netzwerkschnittstelle, die Sie möchten. Intern funktioniert sie, indem sie
static-networking-service-type
mit zusätzlichen
Netzwerkschnittstellen erweitert, um die sich der Dienst kümmern soll.
Zum Beispiel:
(static-networking-service "eno1" "192.168.1.82"
#:gateway "192.168.1.2"
#:name-servers '("192.168.1.2"))
Liefert einen Dienst, der Wicd ausführt, einen Netzwerkverwaltungsdaemon, um ein einfacheres Einrichten kabelgebundener und drahtloser Netzwerkanbindungen zu ermöglichen.
Dieser Dienst fügt das wicd-Paket zum globalen Profil hinzu und stellt
dadurch mehrere Befehle zur Verfügung, um mit dem Daemon zu interagieren und
Netzwerke einzurichten: wicd-client
, eine grafische
Benutzeroberfläche, und die Benutzungsschnittstellen wicd-cli
und
wicd-curses
.
Dies ist der Diensttyp für den
ModemManager-Dienst. Der Wert dieses Diensttyps ist ein
modem-manager-configuration
-Verbundsobjekt.
Dieser Dienst gehört zu den %desktop-services
(siehe Desktop-Dienste).
Repräsentiert die Konfiguration vom ModemManager.
modem-manager
(Vorgabe: modem-manager
)Das ModemManager-Paket, was benutzt werden soll.
Dies ist der Diensttyp für den
USB_ModeSwitch-Dienst. Der Wert dieses Diensttyps ist ein
usb-modeswitch-configuration
-Verbundsobjekt.
Wenn sie eingesteckt werden, geben sich manche USB-Modems (und andere USB-Geräte) zunächst als Nur-Lese-Speichermedien und nicht als Modem aus. Sie müssen erst einem Moduswechsel („Modeswitching“) unterzogen werden, bevor sie benutzt werden können. Der USB_ModeSwitch-Diensttyp installiert udev-Regeln, um bei diesen Geräten automatisch ein Modeswitching durchzuführen, wenn sie eingesteckt werden.
Dieser Dienst gehört zu den %desktop-services
(siehe Desktop-Dienste).
Der Datentyp, der die Konfiguration von USB_ModeSwitch repräsentiert.
usb-modeswitch
(Vorgabe: usb-modeswitch
)Das USB_ModeSwitch-Paket, das die Programmdateien für das Modeswitching enthält.
usb-modeswitch-data
(Vorgabe: usb-modeswitch-data
)Das Paket, in dem die Gerätedaten und die udev-Regeldatei stehen, die USB_ModeSwitch benutzt.
config-file
(Vorgabe: #~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf")
)Welche Konfigurationsdatei das USB_ModeSwitch-Aufrufprogramm („Dispatcher“)
benutzt. Nach Vorgabe wird die mit USB_ModeSwitch ausgelieferte
Konfigurationsdatei benutzt, die neben anderen Voreinstellungen die
Protokollierung nach /var/log abschaltet. Wenn #f
festgelegt
wird, wird keine Konfigurationsdatei benutzt.
Dies ist der Diensttyp für den
NetworkManager-Dienst. Der Wert dieses Diensttyps ist ein
network-manager-configuration
-Verbundsobjekt.
Dieser Dienst gehört zu den %desktop-services
(siehe Desktop-Dienste).
Datentyp, der die Konfiguration von NetworkManager repräsentiert.
network-manager
(Vorgabe: network-manager
)Das zu verwendende NetworkManager-Paket.
dns
(Vorgabe: "default"
)Der Verarbeitungsmodus für DNS-Anfragen. Er hat Einfluss darauf, wie
NetworkManager mit der Konfigurationsdatei resolv.conf
verfährt.
NetworkManager aktualisiert resolv.conf
, damit sie die Nameserver
enthält, die von zurzeit aktiven Verbindungen benutzt werden.
NetworkManager führt dnsmasq
als lokal zwischenspeichernden
Nameserver aus und aktualisiert resolv.conf
so, dass es auf den
lokalen Nameserver verweist. Falls Sie mit einem VPN verbunden sind, wird
dafür eine getrennte DNS-Auflösung verwendet („Conditional Forwarding“).
Mit dieser Einstellung können Sie Ihre Netzwerkverbindung teilen. Wenn Sie
sie zum Beispiel mit einem anderen Laptop über ein Ethernet-Kabel teilen
möchten, können Sie nm-connection-editor
öffnen und die Methode
der Ethernet-Verbindung für IPv4 und IPv6 auf „Gemeinsam mit anderen
Rechnern“ stellen und daraufhin die Verbindung neu herstellen (oder Ihren
Rechner neu starten).
Sie können so auch eine Verbindung vom Wirts- zum Gastsystem in virtuellen
Maschinen mit QEMU (siehe Guix in einer VM installieren) herstellen, d.h.
eine „Host-to-Guest Connection“). Mit einer solchen
Wirt-nach-Gast-Verbindung können Sie z.B. von einem Webbrowser auf Ihrem
Wirtssystem auf einen Web-Server zugreifen, der auf der VM läuft (siehe
Web-Dienste). Sie können sich damit auch über SSH mit der virtuellen
Maschine verbinden (siehe openssh-service-type
). Um eine Wirt-nach-Gast-Verbindung
einzurichten, führen Sie einmal diesen Befehl aus:
nmcli connection add type tun \ connection.interface-name tap0 \ tun.mode tap tun.owner $(id -u) \ ipv4.method shared \ ipv4.addresses 172.28.112.1/24
Danach geben Sie bei jedem Start Ihrer virtuellen QEMU-Maschine (siehe
Guix in einer VM starten) die Befehlszeilenoption -nic
tap,ifname=tap0,script=no,downscript=no an qemu-system-…
mit.
NetworkManager verändert resolv.conf
nicht.
vpn-plugins
(Vorgabe: '()
)Dies ist die Liste der verfügbaren Plugins für virtuelle private Netzwerke
(VPN). Zum Beispiel kann das Paket network-manager-openvpn
angegeben
werden, womit NetworkManager virtuelle private Netzwerke mit OpenVPN
verwalten kann.
Mit diesem Diensttyp wird Connman ausgeführt, ein Programm zum Verwalten von Netzwerkverbindungen.
Sein Wert muss ein connman-configuration
-Verbundsobjekt wie im
folgenden Beispiel sein:
(service connman-service-type
(connman-configuration
(disable-vpn? #t)))
Weiter unten werden Details der connman-configuration
erklärt.
Datentyp, der die Konfiguration von Connman repräsentiert.
connman
(Vorgabe: connman)Das zu verwendende Connman-Paket.
disable-vpn?
(Vorgabe: #f
)Falls dies auf wahr gesetzt ist, wird Connmans VPN-Plugin deaktiviert.
Dies ist der Diensttyp, um WPA Supplicant auszuführen. Dabei handelt es sich um einen Authentisierungsdaemon, der notwendig ist, um sich gegenüber verschlüsselten WLAN- oder Ethernet-Netzwerken zu authentisieren.
Repräsentiert die Konfiguration des WPA-Supplikanten.
Sie hat folgende Parameter:
wpa-supplicant
(Vorgabe: wpa-supplicant
)Das WPA-Supplicant-Paket, was benutzt werden soll.
requirement
(Vorgabe: '(user-processes loopback syslogd)
Die Liste der Dienste, die vor dem WPA-Supplikanten bereits gestartet sein sollen.
dbus?
(Vorgabe: #t
)Ob auf Anfragen auf D-Bus gelauscht werden soll.
pid-file
(Vorgabe: "/var/run/wpa_supplicant.pid"
)Wo die PID-Datei abgelegt wird.
interface
(Vorgabe: #f
)Wenn dieses Feld gesetzt ist, muss es den Namen einer Netzwerkschnittstelle angeben, die von WPA Supplicant verwaltet werden soll.
config-file
(Vorgabe: #f
)Optionale Konfigurationsdatei.
extra-options
(Vorgabe: '()
)Liste zusätzlicher Befehlszeilenoptionen, die an den Daemon übergeben werden.
Dies ist der Diensttyp für den hostapd-Daemon, mit dem ein WLAN-Zugangspunkt (ein „Access Point“ gemäß
IEEE 802.11) und Authentifizierungsserver eingerichtet werden kann. Sein
zugewiesener Wert muss eine hostapd-configuration
sein wie im
folgenden Beispiel:
;; Mit wlan1 den Zugangspunkt für "Mein Netzwerk" betreiben. (service hostapd-service-type (hostapd-configuration (interface "wlan1") (ssid "Mein Netzwerk") (channel 12)))
Dieser Datentyp repräsentiert die Konfiguration des hostapd-Dienstes. Er hat folgende Felder:
package
(Vorgabe: hostapd
)Das zu benutzende hostapd-Paket.
interface
(Vorgabe: "wlan0"
)Die Netzwerkschnittstelle, auf der der WLAN-Zugangspunkt betrieben wird.
ssid
Die SSID (Service Set Identifier), eine das Netzwerk identifizierende Zeichenkette.
broadcast-ssid?
(Vorgabe: #t
)Ob diese SSID allgemein sichtbar sein soll.
channel
(Vorlage: 1
)Der zu verwendende WLAN-Kanal.
driver
(Vorgabe: "nl80211"
)Über welchen Schnittstellentyp der Treiber angesprochen
wird. "nl80211"
wird von allen Linux-mac80211-Treibern
benutzt. Schreiben Sie "none"
, wenn hostapd für einen eigenständigen
RADIUS-Server erstellt wird, der keine Draht- oder Drahtlosverbindung
steuert.
extra-settings
(Vorgabe: ""
)Weitere Einstellungen, die wie sie sind an die Konfigurationsdatei von hostapd angehängt werden. Siehe https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf für eine Referenz der Konfigurationsdatei.
Dies ist der Diensttyp für einen Dienst, um ein WLAN-Netzwerk zu
simulieren. Das kann auf virtuellen Maschinen zu Testzwecken eingesetzt
werden. Der Dienst lädt das
mac80211_hwsim
-Modul in den Linux-Kernel und startet hostapd, um ein
Pseudo-WLAN-Netzwerk vorzutäuschen, das nach Vorgabe als wlan0
sichtbar ist.
Der Wert des Dienstes ist ein hostapd-configuration
-Verbundsobjekt.
Mit diesem Diensttyp wird eine iptables-Konfiguration eingerichtet. iptables ist ein Rahmen für Netzwerkpaketfilter, der vom Linux-Kernel unterstützt wird. Der Dienst unterstützt die Konfiguration von iptables für sowohl IPv4 als auch IPv6. Eine einfache Beispielkonfiguration, die alle eingehenden Verbindungen verweigert, die nicht an den SSH-Port 22 gehen, können Sie hier sehen:
(service iptables-service-type
(iptables-configuration
(ipv4-rules (plain-file "iptables.rules" "*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT
"))
(ipv6-rules (plain-file "ip6tables.rules" "*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp6-port-unreachable
COMMIT
"))))
Repräsentiert die iptables-Konfiguration.
iptables
(Vorgabe: iptables
)Das zu benutzende iptables-Paket, das iptables-restore
und
ip6tables-restore
zur Verfügung stellt.
ipv4-rules
(Vorgabe: %iptables-accept-all-rules
)Die zu benutzenden iptables-Regeln. Diese werden an iptables-restore
übergeben. Als Regeln kann jedes „dateiartige“ Objekt angegeben werden
(siehe dateiartige Objekte).
ipv6-rules
(Vorgabe: %iptables-accept-all-rules
)Die zu benutzenden ip6tables-Regeln. Diese werden an
ip6tables-restore
übergeben. Als Regeln kann jedes „dateiartige“
Objekt angegeben werden (siehe dateiartige Objekte).
Dieser Dienst richtet eine Konfiguration von nftables ein. nftables ist als
Projekt ein Teil von Netfilter mit dem Ziel, den bestehenden Aufbau aus
iptables, ip6tables, arptables und ebtables zu ersetzen. Es stellt einen
neuen Rahmen für Netzwerkpaketfilter bereit sowie ein neues Werkzeug
nft
auf Anwendungsebene und eine Kompatibilitätsschicht für
iptables. Dieser Dienst wird zusammen mit %default-nftables-ruleset
ausgeliefert, einem vorgegebenen Satz von Regeln, der alle eingehenden
Verbindungen außer auf dem SSH-Port 22 ablehnt. Um ihn zu benutzen,
schreiben Sie einfach:
Datentyp, der die nftables-Konfiguration repräsentiert.
package
(Vorgabe: nftables
)Das nftables-Paket, das nft
zur Verfügung stellt.
ruleset
(Vorgabe: %default-nftables-ruleset
)Die zu benutzenden nftables-Regeln. Als Regeln kann jedes „dateiartige“ Objekt angegeben werden (siehe dateiartige Objekte).
Dies ist der Typ des Dienstes, der den ntpd
-Daemon für das
Network Time Protocol, kurz NTP, ausführt. Mit
diesem Daemon wird die Systemuhr mit der Uhr auf den angegebenen NTP-Servern
synchronisiert.
Der Wert dieses Dienstes ist ein ntpd-configuration
-Objekt, wie im
Folgenden beschrieben.
Der Datentyp für die Dienstkonfiguration des NTP-Dienstes.
servers
(Vorgabe: %ntp-servers
)Dies ist die Liste der Server (<ntp-server>
-Verbundsobjekte), mit
denen ntpd
synchronisiert wird. Siehe die Definition des
ntp-server
-Datentyps weiter unten.
allow-large-adjustment?
(Vorgabe: #t
)Hiermit wird festgelegt, ob ntpd
die Uhr beim ersten Umstellen um
mehr als 1.000 Sekunden ändern darf.
ntp
(Vorgabe: ntp
)Das NTP-Paket, was benutzt werden soll.
Liste der Rechnernamen („Host“-Namen), die als vorgegebene NTP-Server benutzt werden. Dabei handelt es sich um die Server des NTP Pool Project.
Der Datentyp, der die Konfiguration eines NTP-Servers repräsentiert.
type
(Vorgabe: 'server
)Die Art des NTP-Servers als Symbol, entweder 'pool
, 'server
,
'peer
, 'broadcast
oder 'manycastclient
.
address
Die Adresse des Servers als Zeichenkette.
options
NTPD-Optionen, die für diesen bestimmten Server gelten sollen, angegeben als Liste von Optionsnamen und/oder Tupeln aus je Optionsname und -wert. Im folgenden Beispiel wird ein Server definiert, der die Optionen iburst und prefer sowie version 3 und eine maxpoll-Zeit von 16 Sekunden benutzen soll.
(ntp-server (type 'server) (address "ein.ntp.server.org") (options `(iburst (version 3) (maxpoll 16) prefer))))
Hiermit wird ntpd
, der Network-Time-Protocol-Daemon (NTP-Daemon),
ausgeführt, in seiner OpenNTPD-Implementierung. Der Daemon sorgt dafür, dass die Systemuhr mit
den Uhren der eingestellten Server synchron bleibt.
(service
openntpd-service-type
(openntpd-configuration
(listen-on '("127.0.0.1" "::1"))
(sensor '("udcf0 correction 70000"))
(constraint-from '("www.gnu.org"))
(constraints-from '("https://www.google.com/"))
(allow-large-adjustment? #t)))
Diese Variable bezeichnet eine Liste von Serveradressen, die in
%ntp-servers
definiert sind.
openntpd
(Vorgabe: (file-append openntpd "/sbin/ntpd")
)Das openntpd-Programm, das benutzt werden soll.
listen-on
(Vorgabe: '("127.0.0.1" "::1")
)Eine Liste von lokalen IP-Adressen oder Rechnernamen („Host“-Namen), auf denen der ntpd-Daemon lauschen soll.
query-from
(Vorgabe: '()
)Eine Liste von lokalen IP-Adressen, die der ntpd-Daemon für ausgehende Anfragen benutzen soll.
sensor
(Vorgabe: '()
)Hiermit geben Sie eine Liste von Zeitdifferenz-Sensorgeräten an, die ntpd
benutzen soll. ntpd
wird auf jeden Sensor lauschen, der auch
tatsächlich existiert, und solche, die nicht existieren, ignorieren. Siehe
die Dokumentation beim Anbieter
für weitere Informationen.
server
(Vorgabe: '()
)Hiermit geben Sie eine Liste von IP-Adressen oder Rechnernamen von NTP-Servern an, mit denen synchronisiert werden soll.
servers
(Vorgabe: %openntp-servers
)Hiermit geben Sie eine Liste von IP-Adressen oder Rechnernamen von NTP-Pools an, mit denen synchronisiert werden soll.
constraint-from
(Vorgabe: '()
)ntpd
kann so eingestellt werden, dass es das Datum aus der
„Date“-Kopfzeile bei mit TLS übermittelten Anfragen an HTTPS-Server, denen
vertraut wird, ausliest. Diese Zeitinformation wird nicht für Genauigkeit
benutzt, sondern um mit authentifizierten Informationen die Auswirkungen
eines Man-in-the-Middle-Angriffs auf unauthentifizierte NTP-Kommunikation
einzuschränken. Geben Sie hierzu eine Liste von URLs, IP-Adressen oder
Rechnernamen („Host“-Namen) von HTTPS-Servern an, um eine solche
Beschränkung („Constraint“) einzurichten.
constraints-from
(Vorgabe: '()
)Wie bei constraint-from
geben Sie auch hier eine Liste von URLs,
IP-Adressen oder Rechnernamen von HTTPS-Servern an, um eine Beschränkung
einzurichten. Falls der Rechnername zu mehreren IP-Adressen aufgelöst wird,
berechnet ntpd
den Median von allen als Beschränkung.
allow-large-adjustment?
(Vorgabe: #f
)Legt fest, ob ntpd
die Uhr beim ersten Umstellen um mehr als 180
Sekunden verstellen darf.
Dieser Dienst führt den inetd
-Daemon aus (siehe inetd invocation in GNU Inetutils). inetd
lauscht auf
Verbindungen mit Internet-Sockets und startet bei Bedarf das entsprechende
Server-Programm, sobald eine Verbindung mit einem dieser Sockets hergestellt
wird.
Der Wert dieses Dienstes ist ein inetd-configuration
-Objekt. Im
folgenden Beispiel wird der inetd
-Daemon konfiguriert, um den
eingebauten echo
-Dienst sowie einen SMTP-Dienst anzubieten, wobei
letzterer SMTP-Kommunikation über SSH an einen Server smtp-server
über einen vom rechnername
n bezeichneten Zugang („Gateway“)
weiterleitet:
(service
inetd-service-type
(inetd-configuration
(entries (list
(inetd-entry
(name "echo")
(socket-type 'stream)
(protocol "tcp")
(wait? #f)
(user "root"))
(inetd-entry
(node "127.0.0.1")
(name "smtp")
(socket-type 'stream)
(protocol "tcp")
(wait? #f)
(user "root")
(program (file-append openssh "/bin/ssh"))
(arguments
'("ssh" "-qT" "-i" "/pfad/zum/ssh_schlüssel"
"-W" "smtp-server:25" "benutzer@rechnername")))))))
Siehe unten für mehr Details über inetd-configuration
.
Datentyp, der die Konfiguration von inetd
repräsentiert.
program
(Vorgabe: (file-append inetutils "/libexec/inetd")
)Das inetd
-Programm, das benutzt werden soll.
entries
(Vorgabe: '()
)Eine Liste von inetd
-Diensteinträgen. Jeder Eintrag sollte von
einem inetd-entry
-Konstruktor erzeugt werden.
Datentyp, der einen Eintrag in der inetd
-Konfiguration
repräsentiert. Jeder Eintrag entspricht einem Socket, auf dem
inetd
auf Anfragen lauscht.
node
(Vorgabe: #f
)Optional sollte hier als Zeichenkette eine kommagetrennte Liste lokaler
Adressen angegeben werden, die inetd
benutzen soll, wenn er
stellvertretend für den angegebenen Dienst lauscht. Siehe Configuration file in GNU Inetutils für eine vollständige Beschreibung aller
Optionen.
name
Eine Zeichenkette. Dieser Name muss einem Eintrag in /etc/services
entsprechen.
socket-type
Entweder 'stream
, 'dgram
, 'raw
, 'rdm
oder
'seqpacket
.
protocol
Eine Zeichenkette, die einem Eintrag in /etc/protocols
entsprechen
muss.
wait?
(Vorgabe: #t
)Ob inetd
warten soll, bis der Server beendet ist, bevor es wieder
auf neue Anfragen an den Dienst lauscht.
user
Eine Zeichenkette mit dem Benutzernamen (und optional dem Gruppennamen) des
Benutzers, als der dieser Server ausgeführt werden soll. Der Gruppenname
kann als Suffix angegeben werden, getrennt durch einen Doppelpunkt oder
Punkt, d.h. "benutzer"
, "benutzer:gruppe"
oder
"benutzer.gruppe"
.
program
(Vorgabe: "internal"
)Das Serverprogramm, das die Anfragen bedienen soll, oder "internal"
,
wenn inetd
einen eingebauten Dienst verwenden soll.
arguments
(Vorgabe: '()
)Eine Liste von Zeichenketten oder dateiartigen Objekten, die dem
Serverprogramm als Argumente übergeben werden, angefangen mit dem nullten
Argument, d.h. dem Namen selbigen Serverprogramms. Bei in inetd
eingebauten Diensten muss dieser Eintrag auf '()
oder
'("internal")
gesetzt sein.
Siehe Configuration file in GNU Inetutils für eine mehr ins Detail gehende Erörterung jedes Konfigurationsfeldes.
Dies ist der Diensttyp für den Dienst, der den Tor-Daemon für anonyme Netzwerkrouten ausführt. Der Dienst benutzt für
seine Konfiguration ein
<tor-configuration>
-Verbundsobjekt. Vorgegeben ist, dass der
Tor-Daemon als „unprivilegierter“ Nutzer tor
ausgeführt wird, einem
Mitglied der tor
-Benutzergruppe ohne besondere Berechtigungen.
tor
(Vorgabe: tor
)Das Paket, das den Tor-Daemon zur Verfügung stellt. Von diesem Paket wird erwartet, dass es den Daemon unter dem Pfad bin/tor relativ zum Ausgabeverzeichnis verfügbar macht. Das vorgegebene Paket ist die Implementierung des Tor-Projekts.
config-file
(Vorgabe: (plain-file "empty" "")
)Die Konfigurationsdatei, die benutzt werden soll. Sie wird an eine
vorgegebene Konfigurationsdatei angehängt und die sich daraus ergebende
Konfigurationsdatei wird dann an tor
über dessen Befehlszeilenoption
-f
übergeben. Hier kann jedes „dateiartige“ Objekt (siehe
dateiartige Objekte) angegeben werden. Siehe man
tor
für Details zur Syntax der Konfigurationsdatei.
hidden-services
(Vorgabe: '()
)Die Liste der zu benutzenden „versteckten Dienste“ als
<hidden-service>
-Verbundsobjekte. Für jeden versteckten Dienst, den
Sie in dieser Liste eintragen, werden automatisch entsprechende
Einstellungen zur vorgefertigten Konfigurationsdatei hinzugefügt. Sie können
<hidden-service>
-Verbundsobjekte bequem mit der unten beschriebenen
Prozedur tor-hidden-service
erzeugen lassen.
socks-socket-type
(Vorgabe: 'tcp
)Welche Art von Socket Tor für seinen SOCKS-Socket in der Voreinstellung
benutzen soll. Dafür muss entweder 'tcp
oder 'unix
angegeben
werden. Für 'tcp
wird Tor nach Voreinstellung auf dem TCP-Port 9050
auf der loopback-Schnittstelle (d.h. localhost) lauschen. Für 'unix
wird Tor auf dem UNIX-Socket /var/run/tor/socks-sock lauschen, auf
den Mitglieder der tor
-Benutzergruppe Schreibberechtigung erhalten.
Wenn Sie detailliertere Anpassungen am SOCKS-Socket vornehmen wollen,
belassen Sie socks-socket-type
bei seinem vorgegebenen Wert
'tcp
und benutzen Sie config-file
, um diese Voreinstellung mit
Ihrer eigenen SocksPort
-Option zu überspielen.
Hiermit wird ein neuer versteckter Dienst von Tor mit diesem Namen definiert, der die Zuordnung herstellt. Die Zuordnung ist eine Liste von Port-/Rechner-Tupeln wie hier:
'((22 "127.0.0.1:22") (80 "127.0.0.1:8080"))
In diesem Beispiel wird Port 22 des versteckten Dienstes an den ihm zugeordneten lokalen Port 22 weitergeleitet und Port 80 wird an den lokalen Port 8080 weitergeleitet.
Dadurch wird ein Verzeichnis /var/lib/tor/hidden-services/Name
erstellt, worin sich in der Datei hostname der
.onion
-Rechnername („Host“-Name) des versteckten Dienstes befindet.
Siehe die Dokumentation des Tor-Projekts für weitere Informationen.
Das Modul (gnu services rsync)
bietet die folgenden Dienste an:
Sie könnten einen rsync-Daemon einsetzen wollen, um Dateien verfügbar zu machen, damit jeder (oder nur Sie) bestehende Dateien herunterladen oder neue Dateien hochladen kann.
Dies ist der Diensttyp für den rsync-Daemon,
er benutzt ein rsync-configuration
-Verbundsobjekt wie in diesem
Beispiel:
Siehe unten für Details zur rsync-configuration
.
Datentyp, der die Konfiguration für den rsync-service
repräsentiert.
package
(Vorgabe: rsync)Zu benutzendes rsync
-Paket.
port-number
(Vorgabe: 873
)Der TCP-Port, auf dem rsync
auf eingehende Verbindungen
lauscht. Wenn die Portnummer kleiner als 1024
ist, muss
rsync
als Administratornutzer root
und auch mit dieser
Benutzergruppe gestartet werden.
pid-file
(Vorgabe: "/var/run/rsyncd/rsyncd.pid"
)Der Name der Datei, in die rsync
seine PID schreibt.
lock-file
(Vorgabe: "/var/run/rsyncd/rsyncd.lock"
)Der Name der Datei, die rsync
als seine Sperrdatei verwendet.
log-file
(Vorgabe: "/var/log/rsyncd.log"
)Der Name der Datei, in die rsync
seine Protokolle schreibt.
use-chroot?
(Vorgabe: #t)Ob chroot auf das über rsync
geteilte Verzeichnis angewandt werden
soll.
share-path
(Vorgabe: /srv/rsync)Der Ort des Verzeichnisses, das rsync
teilt, d.h. seine „Shared
Directory“.
share-comment
(Vorgabe: "Rsync share"
)Kommentar zum von rsync
geteilten Verzeichnis.
read-only?
(Vorgabe: #f)Bestimmt die Lese- und Schreibberechtigungen für das gemeinsame Verzeichnis.
timeout
(Vorgabe: 300
)Ein-/Ausgabe-Zeitbeschränkung in Sekunden.
user
(Vorgabe: "root")Das Benutzerkonto, dem der rsync
-Prozess gehören soll.
group
(Vorgabe: "root")Die Benutzergruppe des rsync
-Prozesses.
uid
(Vorgabe: "rsyncd")Der Benutzername oder der Benutzeridentifikator (d.h. die „User-ID“), mit
dem Dateiübertragungen zum und vom Modul stattfinden sollen, wenn der Daemon
als Administratornutzer root
läuft.
gid
(Vorgabe: "rsyncd")Benutzergruppenname oder Gruppenidentifikator („Group-ID“), mit dem auf das Modul zugegriffen wird.
Des Weiteren bietet das Modul (gnu services ssh)
die folgenden
Dienste an.
[#:x11-forwarding? #t] [#:tcp/ip-forwarding? #t]
[#:password-authentication? #t] [#:public-key-authentication? #t]
[#:initialize? #t] Das lshd
-Programm auf dem lsh-Paket so
ausführen, dass es auf dem Port mit Portnummer port-number
lauscht. host-key muss eine Datei angeben, die den Wirtsschlüssel
enthält, die nur für den Administratornutzer lesbar sein darf.
Wenn daemonic? wahr ist, entkoppelt sich lshd
vom Terminal,
auf dem er läuft, und schickt seine Protokolle an syslogd, außer
syslog-output? ist auf falsch gesetzt. Selbstverständlich hängt der
lsh-service dann auch von der Existenz eines syslogd-Dienstes ab. Wenn
pid-file? wahr ist, schreibt lshd
seine PID in die Datei
namens pid-file.
Wenn initialize? wahr ist, wird der Startwert zur Verschlüsselung ebenso wie der Wirtsschlüssel bei der Dienstaktivierung erstellt, falls sie noch nicht existieren. Das kann lange dauern und Anwenderinteraktion kann dabei erforderlich sein.
Wenn initialize? falsch ist, bleibt es dem Nutzer überlassen, den Zufallsgenerator zu initialisieren (siehe lsh-make-seed in LSH Manual) und ein Schlüsselpaar zu erzeugen, dessen privater Schlüssel in der mit host-key angegebenen Datei steht (siehe lshd basics in LSH Manual).
Wenn interfaces leer ist, lauscht lshd an allen Netzwerkschnittstellen auf Verbindungen, andernfalls muss interfaces eine Liste von Rechnernamen („Host“-Namen) oder Adressen bezeichnen.
allow-empty-passwords? gibt an, ob Anmeldungen mit leeren Passwörtern akzeptiert werden sollen, und root-login? gibt an, ob Anmeldungen als Administratornutzer „root“ akzeptiert werden sollen.
Die anderen Felder sollten selbsterklärend sein.
Dies ist der Diensttyp für den OpenSSH-Secure-Shell-Daemon, sshd
. Sein Wert muss ein
openssh-configuration
-Verbundsobjekt wie in diesem Beispiel sein:
(service openssh-service-type
(openssh-configuration
(x11-forwarding? #t)
(permit-root-login 'without-password)
(authorized-keys
`(("alice" ,(local-file "alice.pub"))
("bob" ,(local-file "bob.pub"))))))
Siehe unten für Details zur openssh-configuration
.
Dieser Dienst kann mit weiteren autorisierten Schlüsseln erweitert werden, wie in diesem Beispiel:
(service-extension openssh-service-type
(const `(("charlie"
,(local-file "charlie.pub")))))
Dies ist der Verbundstyp für die Konfiguration von OpenSSHs sshd
.
openssh
(Vorgabe: openssh)Das zu benutzende OpenSSH-Paket.
pid-file
(Vorgabe: "/var/run/sshd.pid"
)Der Name der Datei, in die sshd
seine PID schreibt.
port-number
(Vorgabe: 22
)Der TCP-Port, auf dem sshd
auf eingehende Verbindungen lauscht.
permit-root-login
(Vorgabe: #f
)Dieses Feld bestimmt, ob und wann Anmeldungen als Administratornutzer „root“
erlaubt sind. Wenn es #f
ist, sind Anmeldungen als Administrator
gesperrt, bei #t
sind sie erlaubt. Wird hier das Symbol
'without-password
angegeben, dann sind Anmeldungen als Administrator
erlaubt, aber nur, wenn keine passwortbasierte Authentifizierung verwendet
wird.
allow-empty-passwords?
(Vorgabe: #f
)Wenn dies auf wahr gesetzt ist, können sich Nutzer, deren Passwort leer ist, anmelden. Ist es falsch, können sie es nicht.
password-authentication?
(Vorgabe: #t
)Wenn dies wahr ist, können sich Benutzer mit ihrem Passwort anmelden. Wenn es falsch ist, müssen sie andere Authentisierungsmethoden benutzen.
public-key-authentication?
(Vorgabe: #t
)Wenn dies wahr ist, können Benutzer zur Anmeldung mit ihrem öffentlichen Schlüssel authentifiziert werden. Wenn es falsch ist, müssen sie andere Authentisierungsmethoden benutzen.
Autorisierte öffentliche Schlüssel werden in ~/.ssh/authorized_keys gespeichert. Dies wird nur für Protokollversion 2 benutzt.
x11-forwarding?
(Vorgabe: #f
)Wenn dies auf wahr gesetzt ist, ist das Weiterleiten von Verbindungen an
grafische X11-Clients erlaubt — mit anderen Worten funktionieren dann die
ssh
-Befehlszeilenoptionen -X und -Y.
allow-agent-forwarding?
(Vorgabe: #t
)Ob Weiterleitung an den SSH-Agenten zugelassen werden soll.
allow-tcp-forwarding?
(Vorgabe: #t
)Ob Weiterleitung von TCP-Kommunikation zugelassen werden soll.
gateway-ports?
(Vorgabe: #f
)Ob Ports als Zugang für eingehende Verbindungen („Gateway-Ports“) weitergeleitet werden dürfen.
challenge-response-authentication?
(Vorgabe: #f
)Gibt an, ob „Challenge-Response“-Authentifizierung zugelassen wird (z.B. über PAM).
use-pam?
(Vorgabe: #t
)Aktiviert die Pluggable-Authentication-Module-Schnittstelle. Wenn es auf
#t
gesetzt ist, wird dadurch PAM-Authentisierung über
challenge-response-authentication?
und
password-authentication?
aktiviert, zusätzlich zur Verarbeitung von
PAM-Konten und Sitzungsmodulen für alle Authentisierungsarten.
Weil PAM-Challenge-Response-Authentisierung oft für dieselben Zwecke wie
Passwortauthentisierung eingesetzt wird, sollten Sie entweder
challenge-response-authentication?
oder
password-authentication?
deaktivieren.
print-last-log?
(Vorgabe: #t
)Hiermit wird angegeben, ob sshd
Datum und Uhrzeit der letzten
Anmeldung anzeigen soll, wenn sich ein Benutzer interaktiv anmeldet.
subsystems
(Vorgabe: '(("sftp" "internal-sftp"))
)Hiermit werden externe Subsysteme konfiguriert (z.B. ein Dateiübertragungsdaemon).
Diese werden als Liste von zweielementigen Listen angegeben, von denen jede den Namen des Subsystems und einen Befehl (mit optionalen Befehlszeilenargumenten) benennt, der bei einer Anfrage an das Subsystem ausgeführt werden soll.
Der Befehl internal-sftp
implementiert einen SFTP-Server im selben
Prozess. Alternativ kann man den sftp-server
-Befehl angeben:
(service openssh-service-type
(openssh-configuration
(subsystems
`(("sftp" ,(file-append openssh "/libexec/sftp-server"))))))
accepted-environment
(Vorgabe: '()
)Eine Liste von Zeichenketten, die die Umgebungsvariablen benennen, die exportiert werden dürfen.
Jede Zeichenkette wird zu einer eigenen Zeile in der
Konfigurationsdatei. Siehe die Option AcceptEnv
in man
sshd_config
.
Mit diesem Beispiel können SSH-Clients die Umgebungsvariable COLORTERM
exportieren. Sie wird von Terminal-Emulatoren gesetzt, die Farben
unterstützen. Sie können Sie in der Ressourcendatei Ihrer Shell benutzen, um
Farben in der Eingabeaufforderung und in Befehlen zu aktivieren, wenn diese
Variable gesetzt ist.
(service openssh-service-type
(openssh-configuration
(accepted-environment '("COLORTERM"))))
authorized-keys
(Vorgabe: '()
)Dies ist die Liste der autorisierten Schlüssel. Jedes Element der Liste ist ein Benutzername gefolgt von einem oder mehr dateiartigen Objekten, die öffentliche SSH-Schlüssel repräsentieren. Zum Beispiel werden mit
(openssh-configuration
(authorized-keys
`(("rekado" ,(local-file "rekado.pub"))
("chris" ,(local-file "chris.pub"))
("root" ,(local-file "rekado.pub") ,(local-file "chris.pub")))))
die angegebenen öffentlichen Schlüssel für die Benutzerkonten rekado
,
chris
und root
registriert.
Weitere autorisierte Schlüssel können als service-extension
hinzugefügt werden.
Beachten Sie, dass das hier neben ~/.ssh/authorized_keys ohne sich zu stören benutzt werden kann.
log-level
(Vorgabe: 'info
)Dieses Symbol gibt die Stufe der Protokollierung an: quiet
(schweigsam), fatal
, error
, info
, verbose
(ausführlich), debug
(Fehlersuche) etc. Siehe die Handbuchseite für
sshd_config für die vollständige Liste der Stufenbezeichnungen.
extra-content
(Vorgabe: ""
)Dieses Feld kann benutzt werden, um beliebigen Text an die Konfigurationsdatei anzuhängen. Es ist besonders bei ausgeklügelten Konfigurationen nützlich, die anders nicht ausgedrückt werden können. Zum Beispiel würden mit dieser Konfiguration Anmeldungen als Administratornutzer „root“ grundsätzlich untersagt, lediglich für eine bestimmte IP-Adresse wären sie zugelassen:
(openssh-configuration
(extra-content "\
Match Address 192.168.0.1
PermitRootLogin yes"))
Den
Dropbear-SSH-Daemon
mit der angegebenen Konfiguration ausführen, einem
<dropbear-configuration>
-Objekt.
Wenn Sie zum Beispiel einen Dropbear-Dienst angeben möchten, der auf Port
1234 lauscht, dann fügen Sie diesen Aufruf ins services
-Feld des
Betriebssystems ein:
(dropbear-service (dropbear-configuration
(port-number 1234)))
Dieser Datentyp repräsentiert die Konfiguration eines Dropbear-SSH-Daemons.
dropbear
(Vorgabe: dropbear)Das zu benutzende Dropbear-Paket.
port-number
(Vorgabe: 22)Die Portnummer des TCP-Ports, auf dem der Daemon auf eingehende Verbindungen wartet.
syslog-output?
(Vorgabe: #t
)Ob eine Ausgabe für Syslog aktiviert sein soll.
pid-file
(Vorgabe: "/var/run/dropbear.pid"
)Der Dateiname der PID-Datei des Daemons.
root-login?
(Vorgabe: #f
)Ob Anmeldungen als Administratornutzer root
möglich sein sollen.
allow-empty-passwords?
(Vorgabe: #f
)Ob leere Passwörter zugelassen sein sollen.
password-authentication?
(Vorgabe: #t
)Ob passwortbasierte Authentisierung zugelassen sein soll.
Dies ist der Diensttyp für das AutoSSH-Programm, das eine Kopie von ssh
ausführt und diese
überwacht. Bei Bedarf wird sie neugestartet, für den Fall, dass sie abstürzt
oder keine Kommunikation mehr verarbeitet. AutoSSH kann von Hand aus der
Befehlszeile heraus aufgerufen werden, indem man Argumente an die Binärdatei
autossh
aus dem Paket autossh
übergibt, aber es kann auch
als ein Guix-Dienst ausgeführt werden. Letzteres wird hier beschrieben.
AutoSSH kann benutzt werden, um an den lokalen Rechner gerichtete Kommunikation an eine entfernte Maschine über einen SSH-Tunnel weiterzuleiten. Dabei gilt die ~/.ssh/config-Datei des AutoSSH ausführenden Benutzers.
Um zum Beispiel einen Dienst anzugeben, der autossh mit dem Benutzerkonto
pino
ausführt und alle lokalen Verbindungen auf Port 8081
an
entfernt:8081
über einen SSH-Tunnel durchzureichen, fügen Sie
folgenden Aufruf in das services
-Feld des Betriebssystems ein:
(service autossh-service-type
(autossh-configuration
(user "pino")
(ssh-options (list "-T" "-N" "-L" "8081:localhost:8081" "entfernt.net"))))
Dieser Datentyp repräsentiert die Konfiguration des AutoSSH-Dienstes.
user
(Vorgabe: "autossh"
)Das Benutzerkonto, mit dem der AutoSSH-Dienst ausgeführt wird. Es wird vorausgesetzt, dass der angegebene Benutzer existiert.
poll
(Vorgabe: 600
)Gibt an, wie oft die Verbindung geprüft wird („Poll Time“), in Sekunden.
first-poll
(Vorgabe: #f
)Gibt an, wie viele Sekunden AutoSSH vor der ersten Verbindungsprüfung
abwartet. Nach dieser ersten Prüfung werden weitere Prüfungen mit der in
poll
angegebenen Regelmäßigkeit durchgeführt. Wenn dies auf #f
gesetzt ist, erfährt die erste Verbindungsprüfung keine Sonderbehandlung,
sondern benutzt die gleichen Zeitabstände, die auch mit poll
festgelegt wurden.
gate-time
(Vorgabe: 30
)Gibt an, wie viele Sekunden lang eine SSH-Verbindung aktiv sein muss, bis sie als erfolgreich angesehen wird.
log-level
(Vorgabe: 1
)Die Protokollierungsstufe. Sie entspricht den bei Syslog verwendeten Stufen,
d.h. 0
verschweigt die meisten Ausgaben, während 7
die
gesprächigste Stufe ist.
max-start
(Vorgabe: #f
)Wie oft SSH (neu) gestartet werden darf, bevor AutoSSH aufgibt und sich
beendet. Steht dies auf #f
, gibt es keine Begrenzung und AutoSSH kann
endlos neu starten.
message
(Vorgabe: ""
)Welche Nachricht beim Prüfen von Verbindungen an die zurückkommende Echo-Nachricht angehängt werden soll.
port
(Vorgabe: "0"
)Welche Ports zum Überprüfen der Verbindung benutzt werden. Steht dies auf
"0"
, werden keine Überprüfungen durchgeführt. Steht es auf
"n"
für eine positive ganze Zahl n, werden die Ports
n und n+1 zum Überwachen der Verbindung eingesetzt, wobei auf
Port n Daten dafür gesendet werden und Port n+1
deren Echo
empfangen soll. Steht es auf "n:m"
für positive ganze
Zahlen n und m, werden Ports n und m zur Überprüfung
eingesetzt, wozu Port n zum Senden der Prüfdaten eingesetzt wird und
Port m das Echo empfängt.
ssh-options
(Vorgabe: '()
)Die Liste der Befehlszeilenargumente, die an ssh
weitergegeben
werden sollen, wenn es ausgeführt wird. Die Befehlszeilenoptionen
-f und -M sind AutoSSH vorbehalten; sie anzugeben, führt
zu undefiniertem Verhalten.
Dies ist der Diensttyp für das Programm
WebSSH (https://webssh.huashengdun.org/), das einen
webbasierten SSH-Client ausführt. WebSSH kann von Hand aus der Befehlszeile
heraus aufgerufen werden, indem man Argumente an die Binärdatei
wssh
aus dem Paket webssh
übergibt, aber es kann auch als
ein Guix-Dienst ausgeführt werden. Letzteres wird hier beschrieben.
Um zum Beispiel einen Dienst anzugeben, der WebSSH an der
Loopback-Schnittstelle auf Port 8888
ausführt, wobei die Richtlinie
ist, dass Verbindungen abgelehnt werden außer zu einer Liste von erlaubten
Rechnern, und eine auf HTTPS-Verbindungen lauschende NGINX als inversen
Proxy dafür fungieren zu lassen, fügen Sie folgende Aufrufe in das
services
-Feld des Betriebssystems ein:
(service webssh-service-type (webssh-configuration (address "127.0.0.1") (port 8888) (policy 'reject) (known-hosts '("localhost ecdsa-sha2-nistp256 AAAA…" "127.0.0.1 ecdsa-sha2-nistp256 AAAA…")))) (service nginx-service-type (nginx-configuration (server-blocks (list (nginx-server-configuration (inherit %webssh-configuration-nginx) (server-name '("webssh.example.com")) (listen '("443 ssl")) (ssl-certificate (letsencrypt-certificate "webssh.example.com")) (ssl-certificate-key (letsencrypt-key "webssh.example.com")) (locations (cons (nginx-location-configuration (uri "/.well-known") (body '("root /var/www;"))) (nginx-server-configuration-locations %webssh-configuration-nginx))))))))
Repräsentiert die Konfiguration für den Dienst webssh-service
.
package
(Vorgabe: webssh
)Zu benutzendes webssh
-Paket.
user-name
(Vorgabe: "webssh"
)Der Benutzername oder der Benutzeridentifikator (d.h. die „User-ID“), mit dem Dateiübertragungen zum und vom Modul stattfinden sollen.
group-name
(Vorgabe: "webssh"
)Benutzergruppenname oder Gruppenidentifikator („Group-ID“), mit dem auf das Modul zugegriffen wird.
address
(Vorgabe: #f
)Die IP-Adresse, auf der webssh
auf eingehende Verbindungen
lauscht.
port
(Vorgabe: 8888
)Der TCP-Port, auf dem webssh
auf eingehende Verbindungen lauscht.
policy
(Vorgabe: #f
)Die Verbindungsrichtlinie reject
setzt voraus, dass erlaubte Rechner
in known-hosts eingetragen werden.
known-hosts
(Vorgabe: '()
)Eine Liste der Rechner, die für eine SSH-Verbindung aus webssh
zugelassen sind.
log-file
(Vorgabe: "/var/log/webssh.log")Der Name der Datei, in die rsync
seine Protokolle schreibt.
log-level
(Vorgabe: #f
)Das Protokollierungsniveau.
Diese Variable enthält eine Zeichenkette, die Sie für /etc/hosts
benutzen können (siehe Host Names in Referenzhandbuch der
GNU-C-Bibliothek). Jede Zeile enthält einen Eintrag, der einen bekannten
Servernamen des Facebook-Online-Dienstes — z.B. www.facebook.com
—
an den lokalen Rechner umleitet — also an 127.0.0.1
oder dessen
IPv6-Gegenstück ::1
.
Normalerweise wird diese Variable im Feld hosts-file
einer
operating-system
-Betriebssystemdeklaration benutzt (siehe
/etc/hosts):
(use-modules (gnu) (guix)) (operating-system (host-name "mymachine") ;; … (hosts-file ;; Eine /etc/hosts-Datei, mit der "localhost" und ;; "mymachine" als Alias-Namen eingerichtet werden ;; und für die Facebook-Servernamen stattdessen ;; Alias-Namen benutzt werden. (plain-file "hosts" (string-append (local-host-aliases host-name) %facebook-host-aliases))))
Dieser Mechanismus kann verhindern, dass lokal laufende Programme, wie z.B. Web-Browser, auf Facebook zugreifen.
Das Modul (gnu services avahi)
stellt die folgende Definition zur
Verfügung.
Dieser Dienst führt den avahi-daemon
aus, einen systemweiten
mDNS-/DNS-SD-Anbieter, mit dem im lokalen Netzwerk befindliche Geräte
erkannt werden können („Service Discovery“) und Rechnernamen selbstständig
aufgelöst werden können („Zero-Configuration“) (siehe
https://avahi.org/). Sein Wert muss ein
avahi-configuration
-Verbundsobjekt sein — siehe unten.
Dieser Dienst erweitert den Name Service Cache Daemon (nscd), damit er
.local
-Rechnernamen mit
nss-mdns auflösen
kann. Siehe Name Service Switch für Informationen zur Auflösung von
Rechnernamen.
Des Weiteren wird das avahi-Paket zum Systemprofil hinzugefügt, damit
Befehle wie avahi-browse
einfach benutzt werden können.
Dieser Datentyp repräsentiert die Konfiguration von Avahi.
host-name
(Vorgabe: #f
)Wenn dies auf etwas anderes als #f
gesetzt ist, wird es anderen als
Rechnername für diese Maschine mitgeteilt, andernfalls wird der tatsächliche
Rechnername anderen mitgeteilt.
publish?
(Vorgabe: #t
)Wenn es auf wahr gesetzt ist, dürfen Rechnernamen und Avahi-Dienste über das Netzwerk mitgeteilt werden (als Broadcast).
publish-workstation?
(Vorgabe: #t
)Wenn es auf wahr gesetzt ist, teilt avahi-daemon
den Rechnernamen
dieser Maschine und die IP-Adresse über mDNS auf dem lokalen Netzwerk
öffentlich mit. Um die auf Ihrem lokalen Netzwerk mitgeteilten Rechnernamen
zu sehen, können Sie das hier ausführen:
avahi-browse _workstation._tcp
wide-area?
(Vorgabe: #f
)Wenn dies auf wahr gesetzt ist, ist DNS-SD über „Unicast DNS“ aktiviert.
ipv4?
(Vorgabe: #t
)ipv6?
(Vorgabe: #t
)Mit diesen Feldern wird festgelegt, ob IPv4-/IPv6-Sockets verwendet werden.
domains-to-browse
(Vorgabe: '()
)Dies ist eine Liste von Domänen, die durchsucht werden.
Dies ist der Diensttyp des Open-vSwitch-Dienstes, der als Wert ein
openvswitch-configuration
-Objekt hat.
Der Datentyp, der die Konfiguration von Open vSwitch repräsentiert, einem auf mehreren Schichten arbeitenden („multilayer“) virtuellen Switch, der für massenhafte Netzwerkautomatisierung durch programmatische Erweiterungen eingesetzt werden kann.
package
(Vorgabe: openvswitch)Das Paketobjekt vom Open vSwitch.
Dies ist der Diensttyp für den PageKite-Dienst, einem Angebot zur getunnelten Netzwerkumleitung, womit
bloß auf localhost lauschende Server öffentlich erreichbar gemacht werden
können. Mit PageKite werden die Server für andere erreichbar, selbst wenn
Ihre Maschine nur über eine restriktive Firewall oder eine
Netzwerkadressübersetzung („Network Address Translation“, NAT) ohne
Portweiterleitung mit dem Internet verbunden ist. Der Wert dieses Dienstes
ist ein pagekite-configuration
-Verbundsobjekt.
Hier ist ein Beispiel, wodurch die lokal laufenden HTTP- und SSH-Daemons zugänglich gemacht werden:
(service pagekite-service-type
(pagekite-configuration
(kites '("http:@kitename:localhost:80:@kitesecret"
"raw/22:@kitename:localhost:22:@kitesecret"))
(extra-file "/etc/pagekite.rc")))
Der Datentyp, der die Konfiguration von PageKite repräsentiert.
package
(Vorgabe: pagekite)Paketobjekt von PageKite.
kitename
(Vorgabe: #f
)PageKite-Name, um sich gegenüber dem Vordergrundserver zu authentisieren.
kitesecret
(Vorgabe: #f
)Das gemeinsame Geheimnis, das eine Authentisierung gegenüber dem
Vordergrundserver ermöglicht. Wahrscheinlich sollten Sie es besser als Teil
von extra-file
angeben.
frontend
(Vorgabe: #f
)Eine Verbindung zum angegebenen PageKite-Vordergrundserver herstellen statt zu dem Dienst von pagekite.net.
kites
(Vorgabe: '("http:@kitename:localhost:80:@kitesecret")
)Die Liste der zu benutzenden „Kites“ für Dienste. Nach Vorgabe wird der
HTTP-Server auf Port 80 nach außen hin zugänglich gemacht. Dienste sind im
Format protokoll:kitename:rechnername:port:geheimnis
anzugeben.
extra-file
(Vorgabe: #f
)Eine Konfigurationsdatei, die zusätzlich eingelesen werden soll. Es wird erwartet, dass Sie diese manuell erstellen. Benutzen Sie sie, wenn Sie zusätzliche Optionen angeben möchten und um gemeinsame Geheimnisse abseits von Guix’ Zuständigkeitsbereich zu verwalten.
Nächste: Unbeaufsichtigte Aktualisierungen, Vorige: Log-Rotation, Nach oben: Dienste [Inhalt][Index]