Vorige: Hurd-Dienste, Nach oben: Dienste [Inhalt][Index]
Das Modul (gnu services authentication)
stellt einen DBus-Dienst zur
Verfügung, mit dem Fingerabdrücke mit Hilfe eines Fingerabdrucksensors
gelesen und identifiziert werden können.
Der Diensttyp für fprintd
, mit dem Fingerabdrücke gelesen werden
können.
Das Modul (gnu services sysctl)
stellt einen Dienst zur Verfügung, um
Kernelparameter zur Boot-Zeit einzustellen.
Der Diensttyp für sysctl
, das Kernel-Parameter unter
/proc/sys/ anpasst. Um IPv4-Weiterleitung („Forwarding“) zu
aktivieren, kann er auf diese Weise instanziiert werden:
(service sysctl-service-type
(sysctl-configuration
(settings '(("net.ipv4.ip_forward" . "1")))))
Weil sysctl-service-type
in den Listen vorgegebener Dienste vorkommt,
sowohl in %base-services
als auch in %desktop-services
, können
Sie modify-services
benutzen, um seine Konfiguration zu ändern und
die Kernel-Parameter einzutragen, die Sie möchten (siehe modify-services
).
(modify-services %base-services
(sysctl-service-type config =>
(sysctl-configuration
(settings (append '(("net.ipv4.ip_forward" . "1"))
%default-sysctl-settings)))))
Der Datentyp, der die Konfiguration von sysctl
repräsentiert.
sysctl
(Vorgabe: (file-append procps "/sbin/sysctl"
)Die ausführbare Datei für sysctl
, die benutzt werden soll.
settings
(Vorgabe: %default-sysctl-settings
)Eine assoziative Liste, die Kernel-Parameter und ihre Werte festlegt.
Eine assoziative Liste, die die vorgegebenen sysctl
-Parameter auf
Guix System enthält.
Das Modul (gnu services security-token)
stellt den folgenden Dienst
zur Verfügung, um pcscd
auszuführen, den
PC/SC-Smart-Card-Daemon. pcscd
ist das Daemonprogramm für die
Rahmensysteme pcsc-lite und MuscleCard. Es handelt sich um einen
Ressourcenverwaltungsdienst, der die Kommunikation mit
Smart-Card-Lesegeräten, Smart Cards und kryptographischen Tokens steuert,
die mit dem System verbunden sind.
Diensttyp für den pcscd
-Dienst. Als Wert muss ein
pcscd-configuration
-Objekt angegeben werden. Um pcscd mit seiner
Vorgabekonfiguration auszuführen, instanziieren Sie ihn als:
Repräsentiert die Konfiguration von pcscd
.
pcsc-lite
(Vorgabe: pcsc-lite
)Das „pcsc-lite“-Paket, das pcscd zur Verfügung stellt.
usb-drivers
(Vorgabe: (list ccid)
)Die Liste der Pakete, die USB-Treiber für pcscd zur Verfügung stellen. Es wird erwartet, dass sich Treiber unter pcsc/drivers innerhalb des Store-Verzeichnisses des Pakets befinden.
Das Modul (gnu services lirc)
stellt den folgenden Dienst zur
Verfügung.
Diensttyp für einen Dienst, der LIRC ausführt, einen Dienst zum Dekodieren von Infrarot-Signalen aus Fernbedienungen.
Der Wert dieses Dienstes ist ein <lirc-configuration>
-Objekt.
Datentyp, der die Konfiguration von lircd
repräsentiert.
lirc
(Vorgabe: lirc
) (Typ: dateiartig)Paketobjekt von lirc
.
device
(Vorgabe: #f
) (Typ: Zeichenkette)driver
(Vorgabe: #f
) (Typ: Zeichenkette)config-file
(Vorgabe: #f
) (Typ: Zeichenkette-oder-dateiartig)BESCHREIBUNG FEHLT NOCH. Siehe das lircd
-Handbuch für Details.
extra-options
(Vorgabe: '()
) (Typ: Liste-von-Zeichenketten)Zusätzliche Befehlszeilenoptionen, die an lircd
übergeben werden.
Das Modul (gnu services spice)
stellt den folgenden Dienst bereit.
Diensttyp für einen Dienst, der VDAGENT ausführt, einen Daemon, um die Zwischenablage mit einer virtuellen Maschine zu teilen und die Auflösung des Anzeigegeräts des Gastsystems umzustellen, wenn sich die Größe des grafischen Konsolenfensters ändert.
Datentyp, der die Konfiguration des spice-vdagent-service-type
repräsentiert.
spice-vdagent
(Vorgabe: spice-vdagent
) (Typ: dateiartig)Paketobjekt von VDAGENT.
Der inputattach-Dienst macht es Ihnen möglich, Eingabegeräte wie Wacom-Tabletts, Tastbildschirme („Touchscreens“) oder Joysticks mit dem Xorg-Anzeigeserver zu benutzen.
Der Diensttyp für den Dienst, der inputattach
auf einem Gerät
ausführt und Ereignisse davon weiterleitet.
device-type
(Vorgabe: "wacom"
)Der Typ des Geräts, mit dem eine Verbindung hergestellt werden soll. Führen
Sie inputattach --help
aus dem inputattach
-Paket aus, um
eine Liste unterstützter Gerätetypen zu sehen.
device
(Vorgabe: "/dev/ttyS0"
)Die Gerätedatei, um sich mit dem Gerät zu verbinden.
baud-rate
(Vorgabe: #f
)Welche Baudrate für die serielle Verbindung benutzt werden soll. Es sollte
eine Zahl oder #f
angegeben werden.
log-file
(Vorgabe: #f
)Wenn es wahr ist, muss es der Name einer Datei sein, in die Protokollnachrichten geschrieben werden sollen.
Das Modul (gnu services dict)
stellt den folgenden Dienst zur
Verfügung:
Dies ist der Diensttyp für einen Dienst, der den dicod
-Daemon
ausführt. Dabei handelt es sich um eine Implementierung eines DICT-Servers
(siehe das Dicod in Handbuch von GNU Dico).
Sie können in Ihre ~/.dico-Datei open localhost
eintragen,
damit localhost
zum voreingestellten Server des
dico
-Clients wird (siehe das Initialization File in Handbuch von GNU Dico).
Anmerkung: Dieser Dienst ist auch mit Guix Home erhältlich, wo er einfach mit Ihren Benutzerrechten ausgeführt wird (siehe
home-dicod-service-type
).
Der Datentyp, der die Konfiguration von dicod repräsentiert.
dico
(Vorgabe: dico)Paketobjekt des GNU-Dico-Wörterbuchservers.
interfaces
(Vorgabe: ’("localhost"))Hierfür muss die Liste der IP-Adressen, Ports und möglicherweise auch
Socket-Dateinamen angegeben werden, auf die gelauscht werden soll (siehe
listen
directive in Handbuch von GNU
Dico).
handlers
(Vorgabe: ’())Liste der <dicod-handler>
-Objekte, die Handler (Modulinstanzen)
bezeichnen.
databases
(Vorgabe: (list %dicod-database:gcide))Liste der <dicod-database>
-Objekte, die anzubietende Wörterbücher
bezeichnen.
Der Datentyp, der einen Wörterbuch-Handler (eine Modulinstanz) repräsentiert.
name
Der Name des Handlers (der Modulinstanz).
module
(Vorgabe: #f)Der Name des dicod-Moduls (der Instanz) des Handlers. Wenn er #f
ist,
heißt das, das Modul hat denselben Namen wie der Handler (siehe
Modules in Handbuch von GNU Dico).
options
Liste der Zeichenketten oder G-Ausdrücke, die die Argumente für den Modul-Handler repräsentieren.
Datentyp, der eine Wörterbuchdatenbank repräsentiert.
name
Der Name der Datenbank, der in DICT-Befehlen benutzt wird.
handler
Der Name des dicod-Handlers (der Modulinstanz), die von dieser Datenbank benutzt wird (siehe Handlers in Handbuch von GNU Dico).
complex?
(Vorgabe: #f)Ob die Datenbankkonfiguration komplex ist. In diesem Fall muss für die
komplexe Konfiguration auch ein entsprechendes <dicod-handler>
-Objekt
existieren, ansonsten nicht.
options
Liste der Zeichenketten oder G-Ausdrücke, die die Argumente für die Datenbank repräsentiert (siehe Databases in Handbuch von GNU Dico).
Ein <dicod-database>
-Objekt, um das „GNU Collaborative International
Dictionary of English“ anzubieten. Dazu wird das gcide
-Paket benutzt.
Im Folgenden sehen Sie eine Beispielkonfiguration für einen
dicod-service-type
.
(service dicod-service-type
(dicod-configuration
(handlers (list
(dicod-handler
(name "wordnet")
(module "wordnet")
(options
(list #~(string-append "wnhome=" #$wordnet))))))
(databases (list
(dicod-database
(name "wordnet")
(complex? #t)
(handler "wordnet"))
%dicod-database:gcide))))
Das Modul (gnu services docker)
stellt die folgenden Dienste zur
Verfügung.
This service type operates containerd containerd, a daemon responsible for overseeing the entire container lifecycle on its host system. This includes image handling, storage management, container execution, supervision, low-level storage operations, network connections, and more.
This is the data type representing the configuration of containerd.
containerd
(default: containerd
)The containerd daemon package to use.
debug?
(Vorgabe: #f
)Ausgaben zur Fehlersuche an- oder abschalten.
environment-variables
(Vorgabe: '()
)List of environment variables to set for containerd
.
Hier muss eine Liste von Zeichenketten angegeben werden, die jeweils der Form ‘Schlüssel=Wert’ genügen wie in diesem Beispiel:
(list "HTTP_PROXY=socks5://127.0.0.1:9150"
"HTTPS_PROXY=socks5://127.0.0.1:9150")
Dies ist der Diensttyp des Dienstes, um Docker auszuführen, einen Daemon, der Anwendungsbündel in „Containern“, d.h. isolierten Umgebungen, ausführen kann.
The containerd-service-type
service need to be added to a system
configuration, otherwise a message about not any service provides
containerd
will be displayed during guix system reconfigure
.
Dies ist der Datentyp, der die Konfiguration von Docker und Containerd repräsentiert.
docker
(Vorgabe: docker
)Das Docker-Daemon-Paket, was benutzt werden soll.
docker-cli
(Vorgabe: docker-cli
)Das Docker-Client-Paket, was benutzt werden soll.
containerd
(Vorgabe: containerd)This field is deprecated in favor of containerd-service-type
service.
proxy
(Vorgabe: docker-libnetwork-cmd-proxy)Das Paket des mit Benutzerrechten (im „User-Land“) ausgeführten Docker-Netzwerkproxys, das verwendet werden soll.
enable-proxy?
(Vorgabe: #t
)Den mit Benutzerrechten (im „User-Land“) ausgeführten Docker-Netzwerkproxy an- oder abschalten.
debug?
(Vorgabe: #f
)Ausgaben zur Fehlersuche an- oder abschalten.
enable-iptables?
(Vorgabe: #t
)Das Hinzufügen von iptables-Regeln durch Docker an- oder abschalten.
environment-variables
(Vorgabe: '()
)Liste Umgebungsvariabler, mit denen dockerd
gestartet wird.
Hier muss eine Liste von Zeichenketten angegeben werden, die jeweils der Form ‘Schlüssel=Wert’ genügen wie in diesem Beispiel:
(list "LANGUAGE=eo:ca:eu"
"TMPDIR=/tmp/dockerd")
config-file
(Typ: Vielleicht-dateiartig)Eine JSON-Konfigurationsdatei, die dockerd
mitgegeben wird.
Dies ist der Diensttyp für den Dienst, mit dem Sie Singularity ausführen können, ein Docker-ähnliches Werkzeug, um Anwendungsbündel (auch bekannt als „Container“) auszuführen. Der Wert für diesen Dienst ist das Singularity-Paket, das benutzt werden soll.
Der Dienst installiert keinen Daemon, sondern er installiert Hilfsprogramme
als setuid-root (siehe Privilegierte Programme), damit auch
„unprivilegierte“ Nutzer ohne besondere Berechtigungen singularity
run
und ähnliche Befehle ausführen können.
Um Ihre Docker-Container im Einklang mit Guix’ Schnittstellen für Ihre anderen Shepherd-Dienste zu verwalten, eignet sich oci-container-service-type am besten: Sie übergeben ein Container-Image nach den Vorschriften der Open Container Initiative (OCI) und es wird als ein Shepherd-Dienst laufen. Ein Anwendungsfall dafür ist, damit Dienste aus Docker- bzw. OCI-Abbildern zu betreiben, für die es noch kein Guix-Paket gibt.
Es handelt sich um einen dünnen Wrapper um Dockers CLI herum, mit dem OCI-Image-gestützte Prozesse als Shepherd-Dienste laufen können.
(service oci-container-service-type
(list
(oci-container-configuration
(network "host")
(image
(oci-image
(repository "guile")
(tag "3")
(value (specifications->manifest '("guile")))
(pack-options '(#:symlinks (("/bin/guile" -> "bin/guile"))
#:max-layers 2))))
(entrypoint "/bin/guile")
(command
'("-c" "(display \"hello!\n\")")))
(oci-container-configuration
(image "prom/prometheus")
(ports
'(("9000" . "9000")
("9090" . "9090"))))
(oci-container-configuration
(image "grafana/grafana:10.0.1")
(network "host")
(volumes
'("/var/lib/grafana:/var/lib/grafana")))))
In this example three different Shepherd services are going to be added to
the system. Each oci-container-configuration
record translates to a
docker run
invocation and its fields directly map to options. You
can refer to the
upstream
documentation for the semantics of each value. If the images are not found,
they will be
pulled.
The services with (network "host")
are going to be attached to the
host network and are supposed to behave like native processes with regard to
networking.
Verfügbare oci-container-configuration
-Felder sind:
user
(Vorgabe: "oci-container"
) (Typ: Zeichenkette)Mit den Berechtigungen welches Benutzerkontos die Docker-Befehle ausgeführt werden.
group
(Vorgabe: "docker"
) (Typ: Zeichenkette)Mit den Berechtigungen welcher Benutzergruppe die Docker-Befehle ausgeführt werden.
command
(Vorgabe: '()
) (Typ: Liste-von-Zeichenketten)Den voreingestellten Befehl (CMD
) im Image ändern.
entrypoint
(Vorgabe: ""
) (Typ: Zeichenkette)Den voreingestellten Einsprungpunkt (ENTRYPOINT
) im Image ändern.
host-environment
(Vorgabe: '()
) (Typ: Liste)Set environment variables in the host environment where docker run
is invoked. This is especially useful to pass secrets from the host to the
container without having them on the docker run
’s command line: by
setting the MYSQL_PASSWORD
on the host and by passing --env
MYSQL_PASSWORD
through the extra-arguments
field, it is possible to
securely set values in the container environment. This field’s value can be
a list of pairs or strings, even mixed:
(list '("LANGUAGE\" . "eo:ca:eu")
"JAVA_HOME=/opt/java")
Pair members can be strings, gexps or file-like objects. Strings are passed
directly to make-forkexec-constructor
.
environment
(Vorgabe: '()
) (Typ: Liste)Legen Sie Umgebungsvariable fest. Geben Sie dazu eine Liste von Paaren oder von Zeichenketten an, gerne auch gemischt:
(list '("LANGUAGE" . "eo:ca:eu")
"JAVA_HOME=/opt/java")
Pair members can be strings, gexps or file-like objects. Strings are passed directly to the Docker CLI. You can refer to the upstream documentation for semantics.
image
(type: string-or-oci-image)The image used to build the container. It can be a string or an
oci-image
record. Strings are resolved by the Docker Engine, and
follow the usual format myregistry.local:5000/testing/test-image:tag
.
provision
(Vorgabe: ""
) (Typ: Zeichenkette)Der Name des Shepherd-Dienstes, der bereitgestellt wird.
requirement
(default: '()
) (type: list-of-symbols)Set additional Shepherd services dependencies to the provisioned Shepherd service.
log-file
(Typ: Vielleicht-Zeichenkette)When log-file
is set, it names the file to which the service’s
standard output and standard error are redirected. log-file
is
created if it does not exist, otherwise it is appended to.
auto-start?
(default: #t
) (type: boolean)Whether this service should be started automatically by the Shepherd. If it
is #f
, the service has to be started manually with herd
start
.
respawn?
(default: #f
) (type: boolean)Ob der Dienst durch Shepherd neu gestartet werden soll, nachdem er gestoppt wurde, zum Beispiel wenn der ihm zu Grunde liegende Prozess terminiert wird.
shepherd-actions
(Vorgabe: '()
) (Typ: Liste-von-Symbolen)This is a list of shepherd-action
records defining actions supported
by the service.
network
(Vorgabe: ""
) (Typ: Zeichenkette)Unter welchem Docker-Netzwerk der gestartete Container zu finden ist.
ports
(Vorgabe: '()
) (Typ: Liste)Welcher Port oder Bereich von Ports im gestarteten Container zugänglich sein sollen. Geben Sie dazu eine Liste von Paaren oder von Zeichenketten an, gerne auch gemischt:
(list '("8080" . "80")
"10443:443")
Pair members can be strings, gexps or file-like objects. Strings are passed directly to the Docker CLI. You can refer to the upstream documentation for semantics.
volumes
(Vorgabe: '()
) (Typ: Liste)Welche Datenträgerzuordnungen („volume mappings“) im gestarteten Container sein sollen. Geben Sie dazu eine Liste von Paaren oder von Zeichenketten an, gerne auch gemischt:
(list '("/root/data/grafana" . "/var/lib/grafana")
"/gnu/store:/gnu/store")
Pair members can be strings, gexps or file-like objects. Strings are passed directly to the Docker CLI. You can refer to the upstream documentation for semantics.
container-user
(Vorgabe: ""
) (Typ: Zeichenkette)Was der aktuelle Benutzer im gestarteten Container sein soll. Informationen zur Bedeutung können Sie in der Docker-Dokumentation finden.
workdir
(Vorgabe: ""
) (Typ: Zeichenkette)Set the current working directory for the spawned Shepherd service. You can refer to the upstream documentation for semantics.
extra-arguments
(default: '()
) (type: list)A list of strings, gexps or file-like objects that will be directly passed
to the docker run
invocation.
Available oci-image
fields are:
repository
(type: string)A string like myregistry.local:5000/testing/test-image
that names the
OCI image.
tag
(default: "latest"
) (type: string)A string representing the OCI image tag. Defaults to latest
.
value
(type: oci-lowerable-image)A manifest
or operating-system
record that will be lowered
into an OCI compatible tarball. Otherwise this field’s value can be a gexp
or a file-like object that evaluates to an OCI compatible tarball.
pack-options
(default: '()
) (type: list)An optional set of keyword arguments that will be passed to the
docker-image
procedure from guix scripts pack
. They can be
used to replicate guix pack
behavior:
(oci-image
(repository "guile")
(tag "3")
(value
(specifications->manifest '("guile")))
(pack-options '(#:symlinks (("/bin/guile" -> "bin/guile"))
#:max-layers 2)))
If the value
field is an operating-system
record, this field’s
value will be ignored.
system
(default: ""
) (type: string)Attempt to build for a given system, e.g. "i686-linux"
target
(Vorgabe: ""
) (Typ: Zeichenkette)Attempt to cross-build for a given triple, e.g. "aarch64-linux-gnu"
grafts?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Whether to allow grafting or not in the pack build.
Das Modul (gnu services auditd)
stellt den folgenden Dienst zur
Verfügung.
Dies ist der Diensttyp des Dienstes, mit dem auditd ausgeführt wird, ein Daemon, der sicherheitsrelevante Informationen auf Ihrem System sammelt.
Beispiele für Dinge, über die Informationen gesammelt werden sollen:
auditctl
aus dem audit
-Paket kann benutzt werden, um zu
überwachende Ereignisse (bis zum nächsten Neustart) hinzuzufügen oder zu
entfernen. Um über Ereignisse dauerhaft Informationen sammeln zu lassen,
schreiben Sie die Befehlszeilenargumente für auditctl in eine Datei namens
audit.rules im Verzeichnis für Konfigurationen (siehe
unten). aureport
aus dem audit
-Paket kann benutzt werden,
um einen Bericht über alle aufgezeichneten Ereignisse anzuzeigen. Nach
Vorgabe speichert der Audit-Daemon Protokolle in die Datei
/var/log/audit.log.
Dies ist der Datentyp, der die Konfiguration von auditd repräsentiert.
audit
(Vorgabe: audit
)Das zu verwendende audit-Paket.
configuration-directory
(Vorgabe: %default-auditd-configuration-directory
)Das Verzeichnis mit der Konfigurationsdatei für das audit-Paket. Sie muss
den Namen auditd.conf
tragen und optional kann sie ein paar
Audit-Regeln enthalten, die beim Start instanziiert werden sollen.
Das Modul (gnu services science)
stellt den folgenden Dienst bereit.
Dies ist der Diensttyp eines Dienstes, um eine mit r-shiny
erzeugte
Web-Anwendung („Webapp“) auszuführen. Dieser Dienst legt die
Umgebungsvariable R_LIBS_USER
fest und führt das eingestellte Skript
aus, um runApp
aufzurufen.
Dies ist der Datentyp, der die Konfiguration von rshiny repräsentiert.
package
(Vorgabe: r-shiny
)Das zu benutzende Paket.
binary
(Vorgabe: "rshiny"
)Der Name der Binärdatei oder des Shell-Skripts, das sich in
Paket/bin/
befindet und beim Starten des Dienstes ausgeführt werden
soll.
Die übliche Art, diese Datei erzeugen zu lassen, ist folgende:
… (let* ((out (assoc-ref %outputs "out")) (targetdir (string-append out "/share/" ,name)) (app (string-append out "/bin/" ,name)) (Rbin (search-input-file %build-inputs "/bin/Rscript"))) ;; … (mkdir-p (string-append out "/bin")) (call-with-output-file app (lambda (port) (format port "#!~a library(shiny) setwd(\"~a\") runApp(launch.browser=0, port=4202)~%\n" Rbin targetdir))))
Das Modul (gnu services nix)
stellt den folgenden Dienst zur
Verfügung:
Dies ist der Diensttyp für den Dienst, der den Erstellungs-Daemon der Nix-Paketverwaltung ausführt. Hier ist ein Beispiel, wie man ihn benutzt:
(use-modules (gnu)) (use-service-modules nix) (use-package-modules package-management) (operating-system ;; … (packages (append (list nix) %base-packages)) (services (append (list (service nix-service-type)) %base-services)))
Nach guix system reconfigure
können Sie Nix für Ihr Benutzerkonto
konfigurieren:
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable $ nix-channel --update
$ sudo mkdir -p /nix/var/nix/profiles/per-user/$USER $ sudo chown $USER:root /nix/var/nix/profiles/per-user/$USER
$ ln -s "/nix/var/nix/profiles/per-user/$USER/profile" ~/.nix-profile $ source /run/current-system/profile/etc/profile.d/nix.sh
Dieser Datentyp repräsentiert die Konfiguration des Nix-Daemons.
nix
(Vorgabe: nix
)Das zu verwendende Nix-Paket.
sandbox
(Vorgabe: #t
)Gibt an, ob Erstellungen nach Voreinstellung in einer isolierten Umgebung („Sandbox“) durchgeführt werden sollen.
build-directory
(Vorgabe: "/tmp"
)In welchem Verzeichnis die Verzeichnisbäume zu Erstellungen untergebracht werden. Dies zu ändern, ist dann sinnvoll, wenn zum Beispiel der vorgegebene Ort nicht genügend Speicherplatz für die Verzeichnisbäume großer Pakete bereitstellt.
Dies entspricht einer Änderung der Umgebungsvariablen TMPDIR
des
guix-daemon
. Siehe TMPDIR
für
weitere Informationen.
build-sandbox-items
(Vorgabe: '()
)Dies ist eine Liste von Zeichenketten oder Objekten, die an das
build-sandbox-items
-Feld der Konfigurationsdatei angehängt werden.
extra-config
(Vorgabe: '()
)Dies ist eine Liste von Zeichenketten oder Objekten, die an die Konfigurationsdatei angehängt werden. Mit ihnen wird zusätzlicher Text wortwörtlich zur Konfigurationsdatei hinzugefügt.
extra-options
(Vorgabe: '()
)Zusätzliche Befehlszeilenoptionen für nix-service-type
.
Durch fail2ban
werden
Protokolldateien durchgesehen (wie /var/log/apache/error_log
) und
diejenigen IP-Adressen ausgesperrt, die bösartig erscheinen – also
mehrfach ein falsches Passwort probieren, nach Sicherheitslücken suchen und
Ähnliches.
Der Diensttyp fail2ban-service-type
wird durch das Modul (gnu
services security)
verfügbar gemacht.
Mit dem Diensttyp wird der fail2ban
-Daemon ausgeführt. Sie können ihn
auf unterschiedliche Weise konfigurieren, nämlich:
Die Grundeinstellungen für den Fail2Ban-Dienst können Sie über seine
fail2ban
-Konfiguration bestimmen. Ihre Dokumentation finden Sie
unten.
Mit der Funktion fail2ban-jail-service
können neue Fail2Ban-Jails
hinzugefügt werden.
Entwickler von Diensten können den Dienst mit dem Typ
fail2ban-service-type
über den üblichen Mechanismus zur
Diensterweiterung erweitern.
Dies ist der Diensttyp für einen Dienst, der den fail2ban
-Daemon
ausführt. Hier folgt ein Beispiel für eine grundlegende, explizite
Konfiguration.
(append
(list
(service fail2ban-service-type
(fail2ban-configuration
(extra-jails
(list
(fail2ban-jail-configuration
(name "sshd")
(enabled? #t))))))
;; Es besteht keine implizite Abhängigkeit von einem wirklichen
;; SSH-Dienst, also müssen Sie ihn zusätzlich hinschreiben.
(service openssh-service-type))
%base-services)
Den Diensttyp, ein <service-type>
-Objekt, mit Jail
ausstatten, einem Objekt vom Typ fail2ban-jail-configuration
.
Zum Beispiel:
(append
(list
(service
;; Durch die Prozedur 'fail2ban-jail-service' kann jeglicher Diensttyp
;; mit einem fail2ban-Jail versehen werden. So müssen die Dienste
;; nicht explizit im fail2ban-service-type aufgeführt werden.
(fail2ban-jail-service
openssh-service-type
(fail2ban-jail-configuration
(name "sshd")
(enabled? #t)))
(openssh-configuration …))))
Nun folgt die Referenz der Verbundstypen zur Konfiguration des
jail-service-type
.
Verfügbare fail2ban-configuration
-Felder sind:
fail2ban
(Vorgabe: fail2ban
) (Typ: „package“)Welches fail2ban
-Paket benutzt werden soll. Es stellt sowohl die
Binärdateien als auch die Voreinstellungen für die Konfiguration bereit, die
mit <fail2ban-jail-configuration>
-Objekten erweitert werden soll.
run-directory
(Vorgabe: "/var/run/fail2ban"
) (Typ: Zeichenkette)Das Zustandsverzeichnis für den fail2ban
-Daemon.
jails
(Vorgabe: '()
) (Typ: Liste-von-„fail2ban-jail-configuration“)<fail2ban-jail-configuration>
-Instanzen, die sich aus
Diensterweiterungen ergeben.
extra-jails
(Vorgabe: '()
) (Typ: Liste-von-„fail2ban-jail-configuration“)<fail2ban-jail-configuration>
-Instanzen, die explizit angegeben
werden.
extra-content
(Vorgabe: '()
) (Typ: Konfigurationstexte)Zusätzlicher „roher Inhalt“, der ans Ende der Datei jail.local angefügt wird. Geben Sie ihn als Liste von dateiartigen Objekten an.
Verfügbare fail2ban-ignore-cache-configuration
-Felder sind:
key
(Typ: Zeichenkette)Schlüssel, für den zwischengespeichert wird.
max-count
(Typ: Ganze-Zahl)Für welche Größe zwischengespeichert wird.
max-time
(Typ: Zeichenkette)Wie lange die Zwischenspeicherung anhält.
Verfügbare fail2ban-jail-action-configuration
-Felder sind:
name
(Typ: Zeichenkette)Name der Aktion.
arguments
(Vorgabe: '()
) (Typ: Liste-von-Argumenten)Argumente der Aktion.
Verfügbare fail2ban-jail-configuration
-Felder sind:
name
(Typ: Zeichenkette)Verpflichtend der Name dieser Jail-Konfiguration.
enabled?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Gibt an, ob dieses Jail aktiviert ist.
backend
(Typ: Vielleicht-Symbol)Mit welchem Hintergrundprogramm Änderungen am log-path
erkannt werden
sollen. Voreingestellt ist ’auto. Um die Voreinstellungen zu der
Jail-Konfiguration einzusehen, siehe die Datei
/etc/fail2ban/jail.conf des fail2ban
-Pakets.
max-retry
(Typ: Vielleicht-Ganze-Zahl)Wie oft Fehler erkannt werden müssen, bevor ein Rechner gesperrt wird (etwa
(max-retry 5)
).
max-matches
(Typ: Vielleicht-Ganze-Zahl)Wie viele Treffer je Ticket höchstens gespeichert werden sollen (in Aktionen
kann man dies mit <matches>
verwenden).
find-time
(Typ: Vielleicht-Zeichenkette)In welchem Zeitfenster die Höchstzahl an Neuversuchen festgestellt werden
muss, damit eine IP-Adresse gesperrt wird. Ein Rechner wird gesperrt, wenn
er max-retry
während der letzten find-time
Sekunden erreicht
hat (z.B. (find-time "10m")
). Es kann in Sekunden angegeben werden
oder im Zeitkurzformat von Fail2Ban (das „time abbreviation format“, das in
man 5 jail.conf
beschrieben ist).
ban-time
(Typ: Vielleicht-Zeichenkette)Die Dauer einer Sperre, in Sekunden oder besagtem Zeitkurzformat. (Etwa
(ban-time "10m")
.)
ban-time-increment?
(Typ: Vielleicht-Boolescher-Ausdruck)Ob vorherige Sperren einen Einfluss auf berechnete Steigerungen der Sperrzeit einer bestimmten IP-Adresse haben sollen.
ban-time-factor
(Typ: Vielleicht-Zeichenkette)Der auf die Sperrzeit angerechnete Koeffizient für eine exponentiell zunehmende Sperrzeit.
ban-time-formula
(Typ: Vielleicht-Zeichenkette)Mit dieser Formel wird der nächste Wert einer Sperrzeit berechnet.
ban-time-multipliers
(Typ: Vielleicht-Zeichenkette)Hiermit wird der nächste Wert einer Sperrzeit berechnet und die Formel ignoriert.
ban-time-max-time
(Typ: Vielleicht-Zeichenkette)Wie viele Sekunden jemand längstens gesperrt wird.
ban-time-rnd-time
(Typ: Vielleicht-Zeichenkette)Wie viele Sekunden höchstens zufällig auf die Sperrzeit angerechnet werden. So können ausgefuchste Botnetze nicht genau ausrechnen, wann eine IP-Adresse wieder entsperrt sein wird.
ban-time-overall-jails?
(Typ: Vielleicht-Boolescher-Ausdruck)Wenn dies wahr ist, wird festgelegt, dass nach einer IP-Adresse in der Datenbank aller Jails gesucht wird. Andernfalls wird nur das aktuelle Jail beachtet.
ignore-self?
(Typ: Vielleicht-Boolescher-Ausdruck)Niemals die eigene IP-Adresse der lokalen Maschine bannen.
ignore-ip
(Vorgabe: '()
) (Typ: Liste-von-Zeichenketten)Eine Liste von IP-Adressen, CIDR-Masken oder DNS-Rechnernamen, die ignoriert
werden. fail2ban
wird keinen Rechner bannen, der zu einer Adresse auf
dieser Liste gehört.
ignore-cache
(Typ: Vielleicht-„fail2ban-ignore-cache-configuration“)Machen Sie Angaben zum Zwischenspeicher, mit dem mehrfache Auffälligkeiten ignoriert werden können.
filter
(Typ: Vielleicht-„fail2ban-jail-filter-configuration“)Der Filter, der für das Jail gilt, als
<fail2ban-jail-filter-configuration>
-Objekt. Nach Voreinstellung
entsprechen die Namen der Jails ihren Filternamen.
log-time-zone
(Typ: Vielleicht-Zeichenkette)Die Voreinstellung für die Zeitzone, wenn eine Zeile im Protokoll keine nennt.
log-encoding
(Typ: Vielleicht-Symbol)In welcher Kodierung die Protokolldateien abgelegt sind, um die sich das
Jail kümmert. Mögliche Werte sind 'ascii
, 'utf-8
und
'auto
.
log-path
(Vorgabe: '()
) (Typ: Liste-von-Zeichenketten)Die Dateinamen der Protokolldateien, die beobachtet werden.
action
(Vorgabe: '()
) (Typ: Liste-von-„fail2ban-jail-action“)Eine Liste von <fail2ban-jail-action-configuration>
.
extra-content
(Vorgabe: '()
) (Typ: Konfigurationstexte)Zusätzlicher Inhalt für die Jail-Konfiguration. Geben Sie ihn als Liste von dateiartigen Objekten an.
Verfügbare fail2ban-jail-filter-configuration
-Felder sind:
name
(Typ: Zeichenkette)Filter, der benutzt werden soll.
mode
(Typ: Vielleicht-Zeichenkette)In welchem Modus der Filter stehen soll.
This service type lets you resize a live file system during boot, which can be convenient if a Guix image is flashed on an SD Card (e.g. for an embedded device) or uploaded to a VPS. In both cases the medium the image will reside upon may be larger than the image you want to produce.
For an embedded device booting from an SD card you may use something like:
(service resize-file-system-service-type
(resize-file-system-configuration
(file-system
(file-system (device (file-system-label "root"))
(type "ext4")))))
Warnung: Be extra cautious to use the correct device and type. The service has little error handling of its own and relies on the underlying tools. Wrong use could end in loss of data or the corruption of the operating system.
Partitions and file systems are grown to the maximum size available. File systems can only grow when they are on the last partition on a device and have empty space available.
This service supports the ext2, ext3, ext4, btrfs, and bcachefs file systems.
file-system
(default: #f
) (type: file-system)The file-system object to resize (siehe Dateisysteme). This object must
have the device
and type
fields set. Other fields are
ignored.
cloud-utils
(default: cloud-utils
) (type: file-like)The cloud-utils package to use. This package is used for the
growpart
command.
e2fsprogs
(default: e2fsprogs
) (type: file-like)The e2fsprogs package to use, used for resizing ext2, ext3, and ext4 file systems.
btrfs-progs
(default: btrfs-progs
) (type: file-like)The btrfs-progs package to use, used for resizing the btrfs file system.
bcachefs-tools
(default: bcachefs-tools
) (type: file-like)The bcachefs-tools package to use, used for resizing the bcachefs file system.
The (gnu services backup)
module offers services for backing up file
system trees. For now, it provides the restic-backup-service-type
.
With restic-backup-service-type
, you can periodically back up
directories and files with Restic, which
supports end-to-end encryption and deduplication. Consider the following
configuration:
(use-service-modules backup …) ;for 'restic-backup-service-type' (use-package-modules sync …) ;for 'rclone' (operating-system ;; … (packages (append (list rclone) ;for use by restic %base-packages)) (services (list (service restic-backup-service-type (restic-backup-configuration (jobs (list (restic-backup-job (name "remote-ftp") (repository "rclone:remote-ftp:backup/restic") (password-file "/root/.restic") ;; Every day at 23. (schedule "0 23 * * *") (files '("/root/.restic" "/root/.config/rclone" "/etc/ssh/ssh_host_rsa_key" "/etc/ssh/ssh_host_rsa_key.pub" "/etc/guix/signing-key.pub" "/etc/guix/signing-key.sec"))))))))))
Each restic-backup-job
translates to an mcron job which sets the
RESTIC_PASSWORD
environment variable by reading the first line of
password-file
and runs restic backup
, creating backups
using rclone of all the files listed in the files
field.
The restic-backup-service-type
installs as well restic-guix
to
the system profile, a restic
utility wrapper that allows for easier
interaction with the Guix configured backup jobs. For example the following
could be used to instantaneusly trigger a backup for the above shown
configuration, without waiting for the scheduled job:
restic-guix backup remote-ftp
Available restic-backup-configuration
fields are:
jobs
(default: '()
) (type: list-of-restic-backup-jobs)The list of backup jobs for the current system.
Available restic-backup-job
fields are:
restic
(default: restic
) (type: package)The restic package to be used for the current job.
user
(default: "root"
) (type: string)The user used for running the current job.
repository
(type: string)The restic repository target of this job.
name
(Typ: Zeichenkette)A string denoting a name for this job.
password-file
(type: string)Name of the password file, readable by the configured user
, that will
be used to set the RESTIC_PASSWORD
environment variable for the
current job.
schedule
(type: gexp-or-string)A string or a gexp that will be passed as time specification in the mcron job specification (siehe mcron job specifications in GNU mcron).
files
(default: '()
) (type: list-of-lowerables)The list of files or directories to be backed up. It must be a list of values that can be lowered to strings.
verbose?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Whether to enable verbose output for the current backup job.
extra-flags
(default: '()
) (type: list-of-lowerables)A list of values that are lowered to strings. These will be passed as
command-line arguments to the current job restic backup
invokation.
The (gnu services upnp)
module offers services related to
UPnP (Universal Plug and Play) and DLNA (Digital Living
Network Alliance), networking protocols that can be used for media streaming
and device interoperability within a local network. For now, this module
provides the readymedia-service-type
.
ReadyMedia (formerly
known as MiniDLNA) is a DLNA/UPnP-AV media server. The project’s daemon,
minidlnad
, can serve media files (audio, pictures, and video) to
DLNA/UPnP-AV clients available on the network.
readymedia-service-type
is a Guix service that wraps around
ReadyMedia’s minidlnad
.
Consider the following configuration:
(use-service-modules upnp …) (operating-system … (services (list (service readymedia-service-type (readymedia-configuration (media-directories (list (readymedia-media-directory (path "/media/audio") (types '(A))) (readymedia-media-directory (path "/media/video") (types '(V))) (readymedia-media-directory (path "/media/misc")))) (extra-config '(("notify_interval" . "60"))))) …)))
This sets up the ReadyMedia daemon to serve files from the media folders
specified in media-directories
. The media-directories
field
is mandatory. All other fields (such as network ports and the server name)
come with a predefined default and can be omitted.
Available readymedia-configuration
fields are:
readymedia
(default: readymedia
) (type: package)The ReadyMedia package to be used for the service.
friendly-name
(default: #f
) (type: maybe-string)A custom name that will be displayed on connected clients.
media-directories
(type: list)The list of media folders to serve content from. Each item is a
readymedia-media-directory
.
cache-directory
(default: "/var/cache/readymedia"
) (type: string)A folder for ReadyMedia’s cache files. If not existing already, the folder will be created as part of the service activation and the ReadyMedia user will be assigned ownership.
log-directory
(default: "/var/log/readymedia"
) (type: string)A folder for ReadyMedia’s log files. If not existing already, the folder will be created as part of the service activation and the ReadyMedia user will be assigned ownership.
port
(default: #f
) (type: maybe-integer)A custom port that the service will be listening on.
extra-config
(default: '()
) (type: alist)An association list of further options, as accepted by ReadyMedia.
A media-directories
entry includes a folder path
and,
optionally, the types
of media files included within the folder.
path
(type: string)The media folder location.
types
(default: '()
) (type: list)A list indicating the types of file included in the media folder. Valid
values are combinations of individual media types, i.e. symbol A
for
audio, P
for pictures, V
for video. An empty list means that
no type is specified.
Vorige: Hurd-Dienste, Nach oben: Dienste [Inhalt][Index]