Précédent: , Monter: Services   [Table des matières][Index]


12.9.36 Services divers

Service d’empreintes digitales

Le module (gnu services authentication) fournit un service DBus pour lire et identifier les empreintes digitales via un lecteur d’empreinte.

Variable : fprintd-service-type

Le type de service pour fprintd, qui fournit des capacités de lecture d’empreinte.

Service de contrôle du système

Le module (gnu services sysctl) fournit un service pour configurer les paramètres du noyau au démarrage.

Variable : sysctl-service-type

Le type de service pour sysctl, qui modifie les paramètres du noyau dans /proc/sys/. Pour activer le transfert d’IPv4, vous pouvez l’instancier ainsi :

(service sysctl-service-type
         (sysctl-configuration
           (settings '(("net.ipv4.ip_forward" . "1")))))

Comme le service sysctl-service-type fait partie des services par défaut, %base-services et %desktop-services, vous pouvez utiliser modify-services pour changer sa configuration et ajouter les paramètres du noyau que vous voulez (voir modify-services).

(modify-services %base-services
  (sysctl-service-type config =>
                       (sysctl-configuration
                         (settings (append '(("net.ipv4.ip_forward" . "1"))
                                           %default-sysctl-settings)))))
Type de données : sysctl-configuration

Le type de données représentant la configuration de sysctl.

sysctl (par défaut : (file-append procps "/sbin/sysctl")

L’exécutable sysctl à utiliser.

settings (par défaut : %default-sysctl-settings)

Une liste d’association spécifiant les paramètres du noyau et leur valeur.

Variable : %default-sysctl-settings

Une liste d’association spécifiant les paramètres sysctl par défaut sur le système Guix.

Service du démon PC/SC Smart Card

Le module (gnu services security-token) fournit le service suivant qui lance pcscd, le démon PC/SC Smart Card. pcscd est le démon pour pcsc-lite et MuscleCard. C’est un gestionnaire de ressource qui coordonne les communications avec les lecteurs de smart cards, les smart cards et les jetons cryptographiques connectés au système.

Variable : pcscd-service-type

Le type de service pour le service pcscd. Sa valeur doit être un objet pcscd-configuration. Pour lancer pcscd dans sa configuration par défaut, instantiez-le avec :

Type de données : pcscd-configuration

Type de données représentant la configuration de pcscd.

pcsc-lite (par défaut : pcsc-lite)

Le paquet pcsc-lite qui fournit pcscd.

usb-drivers (par défaut : (list ccid))

Liste des paquets qui fournissent des pilotes USB à pcscd. Les pilotes doivent être dans pcsc/drivers dans le répertoire du dépôt du paquet.

Service Lirc

Le module (gnu services lirc) fournit le service suivant.

Procédure Scheme : lirc-service [#:lirc lirc] [#:device #f] [#:driver #f] [#:config-file #f] [#:extra-options '()]

Renvoie un service qui lance LIRC, un démon qui décode les signaux infrarouges des télécommandes.

Éventuellement, device, driver et config-file (le nom du fichier de configuration) peuvent être spécifiés. Voir le manuel de lircd pour plus de détails.

Enfin, extra-options est une liste d’options de la ligne de commande supplémentaires à passer à lircd.

Service Spice

Le module (gnu services spice) fournit le service suivant.

Procédure Scheme : spice-vdagent-service [#:spice-vdagent]

Renvoie un service qui lance VDAGENT, un démon qui permet le partage du presse-papier avec une vm et de configurer la résolution d’affichage du client lorsque la fenêtre de la console graphique est redimensionnée.

service inputattach

Le service inputattach vous permet d’utiliser des périphériques d’entrée comme les tablettes Wacom, les écrans tactiles ou les joysticks avec le serveur d’affichage Xorg.

Variable : inputattach-service-type

Type d’un service qui lance inputattach sur un appareil et envie les événements qu’il reçoit.

Type de données : inputattach-configuration
device-type (par défaut : "wacom")

Le type du périphérique à gérer. Lancez inputattach --help, du paquet inputattach, pour voir la liste des types de périphériques supportés.

device (par défaut : "/dev/ttyS0")

Le fichier de périphérique pour s’y connecter.

baud-rate (par défaut : #f)

Taux de Baud à utiliser pour la connexion série. Cela doit être un nombre ou #f.

log-file (par défaut : #f)

Si la valeur est vraie, cela doit être le nom d’un fichier où enregistrer les messages.

Service de dictionnaire

Le module (gnu services dict) fournit le service suivant :

Variable : dicod-service-type

C’est le type de service qui lance le démon dicod, une implémentation du serveur DICT (voir Dicod dans GNU Dico Manual).

Procédure Scheme : dicod-service [#:config (dicod-configuration)]

Renvoie un service qui lance le démon dicod, une implémentation du serveur DICT (voir Dicod dans GNU Dico Manual).

L’argument config facultatif spécifie la configuration pour dicod, qui devrait être un objet <dicod-configuration>, par défaut il sert le dictionnaire international collaboratif de GNU pour l’anglais.

Vous pouvez ajouter open localhost à votre fichier ~/.dico pour faire de localhost le serveur par défaut du client dico (voir Initialization File dans GNU Dico Manual).

Type de données : dicod-configuration

Type de données représentant la configuration de dicod.

dico (par défaut : dico)

Objet de paquet du serveur de dictionnaire GNU Dico.

interfaces (par défaut : ’("localhost"))

C’est la liste des adresses IP et des ports et éventuellement des noms de fichiers de socket sur lesquels écouter (voir listen directive dans GNU Dico Manual).

handlers (par défaut : ’())

Liste des objets <dicod-handler> qui définissent des gestionnaires (des instances de modules).

databases (par défaut : (list %dicod-database:gcide))

Liste d’objets <dicod-database> qui définissent des dictionnaires à servir.

Type de données : dicod-handler

Type de données représentant un gestionnaire de dictionnaire (instance de module).

name

Nom du gestionnaire (instance de module).

module (par défaut : #f)

Nom du module dicod du gestionnaire (instance). Si la valeur est #f, le module a le même nom que le gestionnaire. (voir Modules dans GNU Dico Manual).

options

Liste de chaînes ou de gexps représentant les arguments pour le gestionnaire de module

Type de données : dicod-database

Type de données représentant une base de données de dictionnaire.

name

Nom de la base de données, qui sera utilisée dans les commande DICT.

handler

Nom du gestionnaire dicod (instance de module) utilisé par cette base de données (voir Handlers dans GNU Dico Manual).

complex? (par défaut : #f)

Indique si la configuration est pour une base de données complexe. La configuration complexe a besoin d’un objet <dicod-handler> correspondant, sinon inutile.

options

Liste de chaînes ou de gexps représentant les arguments pour la base de données (voir Databases dans GNU Dico Manual).

Variable : %dicod-database:gcide

Un objet <dicod-database> servant le dictionnaire international collaboratif en anglais via le paquet gcide.

Voici un exemple de configuration de dicod-service.

(dicod-service #:config
  (dicod-configuration
   (handlers (list (dicod-handler
                    (name "wordnet")
                    (module "dictorg")
                    (options
                     (list #~(string-append "dbdir=" #$wordnet))))))
   (databases (list (dicod-database
                     (name "wordnet")
                     (complex? #t)
                     (handler "wordnet")
                     (options '("database=wn")))
                    %dicod-database:gcide))))

Service Docker

Le module (gnu services docker) fournit les services suivants.

Variable : docker-service-type

C’est le type du service qui lance Docker, un démon qui peut exécuter des lots applicatifs (aussi appelés « conteneurs ») dans des environnements isolés.

Type de données : docker-configuration

Le type de données qui représente la configuration de Docker et Containerd.

docker (par défaut : docker)

Le paquet du démon Docker à utiliser.

docker-cli (par défaut : docker-cli)

Le paquet du client Docker à utiliser.

containerd (par défaut : containerd)

Le paquet Containerd à utiliser.

proxy (par défaut : docker-libnetwork-cmd-proxy)

Le paquet du mandataire réseau en espace utilisateur de Docker à utiliser.

enable-proxy? (par défaut : #t)

Indique s’il faut utiliser le mandataire réseau en espace utilisateur de Docker.

debug? (par défaut : #f)

Indique s’il faut activer la sortie de débogage.

enable-iptables? (par défaut : #t)

Indique s’il faut ajouter des règles iptables.

environment-variables (par défaut : ())

Liste de variables d’environnement à initialiser pour dockerd.

Cela doit être une liste de chaines où chaque chaine a pour forme ‘clé=valeur’ comme dans cet exemple :

(list "LANGUAGE=eo:ca:eu"
      "TMPDIR=/tmp/dockerd")
Variable : singularity-service-type

C’est le type de service qui vous permet de lancer Singularity, un outil similaire à Docker pour créer et lancer des lots applicatifs (aussi appelés « conteneurs »). la valeur de ce service est le paquet Singularity à utiliser.

Le service n’installe pas de démon : à la place, il installe des utilitaires en setuid-root (voir Programmes setuid) pour que les utilisateurs non privilégiés puisse invoquer singularity run et les commandes similaires.

Service auditd

Le module (gnu services auditd) fournit le service suivant.

Variable : auditd-service-type

C’est le type du service qui lance auditd, un démon qui suit les informations de sécurité de votre système.

Exemples de ce qui peut être suivi :

  1. Les accès aux fichiers
  2. Les appels système
  3. Les commandes invoquées
  4. Les tentatives de connexion échouées
  5. Le filtrage du pare-feu
  6. Les accès réseau

auditctl du paquet audit peut être utilisé pour ajouter ou supprimer des évènements à suivre (jusqu’au prochain redémarrage). Pour suivre les évènements de manière permanente, ajoutez des arguments à la commande auditctl dans un fichier nommé audit.rules dans le répertoire de configuration (voir plus bas). aureport du paquet audit peut être utilisé pour visualiser un rapport de tous les évènements enregistrés. le démon d’audit enregistre par défaut dans le fichier /var/log/audit.log.

Type de données : auditd-configuration

Le type de données qui représente la configuration de auditd.

audit (par défaut : audit)

Le paquet audit à utiliser.

configuration-directory (par défaut : %default-auditd-configuration-directory)

Le répertoire contenant le fichier de configuration du paquet audit, qui doit être nommé auditd.conf, et éventuellement des règles d’audit à instancier au démarrage.

Service R-Shiny

Le module (gnu services science) fournit le service suivant.

Variable : rshiny-service-type

C’est le type de service utilisé pour lancer une appli web créée avec r-shiny. Ce service initialise la variable d’environnement R_LIBS_USER et lance le script fournit pour appeler runApp.

Type de données : rshiny-configuration

Le type de données qui représente la configuration de rshiny.

package (par défaut : r-shiny)

Le paquet à utiliser.

binary (par défaut : "rshiny")

Le nom du binaire ou du script shell situé dans package/bin/ à lancer au démarrage du service.

La manière habituelle de créer ce fichier est :


(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))))

Service Nix

Le module (gnu services nix) fournit le service suivant.

Variable : nix-service-type

C’est le type du service qui lance le démon de construction du gestionnaire de paquets Nix. Voici un exemple qui montre comment l’utiliser :

(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)))

Après guix system reconfigure, configurez Nix pour votre utilisateur :

$ ln -s "/nix/var/nix/profiles/per-user/$USER/profile" ~/.nix-profile
$ source /run/current-system/profile/etc/profile.d/nix.sh
Type de données : nix-configuration

Ce type de données représente la configuration du démon Nix.

nix (par défaut : nix)

Le paquet Nix à utiliser.

sandbox (par défaut : #t)

Spécifie si les constructions sont effectuées dans un bac à sable par défaut.

build-directory (par défaut : "/tmp")

Le répertoire où les répertoires de construction sont stockés pendant les constructions. Il est utile de le modifier par exemple si l’emplacement par défaut n’a pas assez d’espace pour contenir l’arborescence de construction de gros paquets.

Cela fonctionne de la même manière que la variable d’environnement TPMDIR pour guix-daemon. TPMDIR, pour plus d’information.

build-sandbox-items (par défaut : '())

C’est une liste de chaines de caractères ou d’objets ajoutés au champ build-sandbox-items du fichier de configuration.

extra-config (par défaut : '())

C’est une liste de chaînes de caractères ou d’objets ajoutés au fichier de configuration. Elle est utile pour ajouter du texte supplémentaire directement dans le fichier de configuration.

extra-options (par défaut : '())

Options supplémentaires de la ligne de commande pour nix-service-type.

Service Fail2Ban

fail2ban scanne les fichiers journaux (p. ex. /var/log/apache/error_log) et bannit les adresses IP qui montrent des signes de malhonnêteté — des échecs de connexion répétés, des tentatives d’utiliser des exploits, etc.

Le type de service fail2ban-service-type est fournit par le module (gnu services security).

Ce type de service lance le démon fail2ban. Il peut être configuré de plusieurs façon qui sont :

Configuration basique

Les paramètres de base du service Fail2Ban peut être configurés via sa configuration fail2ban, qui est documentée ci-dessous.

Extensions personnalisées des prisons

La fonction fail2ban-jail-service peut être utilisée pour ajouter de nouvelles prisons Fail2Ban.

Mécanisme d’extension du Shepherd

Les développeurs de services peuvent étendre le type de service fail2ban-service-type lui-même avec le mécanisme d’extension habituel des services.

Variable : fail2ban-service-type

C’est le type de service qui lance le démon fail2ban. Voici un exemple de configuration de base explicite :

(append
 (list
  (service fail2ban-service-type
           (fail2ban-configuration
            (extra-jails
             (list
              (fail2ban-jail-configuration
               (name "sshd")
               (enabled? #t))))))
  ;; Il n'y a pas de dépendance implicite à un service SSH,
  ;; donc il faut en fournir un.
  (service openssh-service-type))
 %base-services)
Procédure Scheme : fail2ban-jail-service svc-type jail

Étend svc-type, un objet <service-type> avec jail, un objet fail2ban-jail-configuration.

Par exemple :

(append
 (list
  (service
   ;; La procédure « fail2ban-jail-service » peut étendre n'importe quel type de service
   ;; avec une prison fail2ban. Cela supprime la nécessité d'étendre les services explicitement
   ;; avec le fail2ban-service-type.
   (fail2ban-jail-service
    openssh-service-type
    (fail2ban-jail-configuration
     (name "sshd")
     (enabled? #t)))
   (openssh-configuration ...))))

Ci-dessous se trouve la référence des différents enregistrement de configuration jail-service-type.

Type de données : fail2ban-configuration

Les champs de fail2ban-configuration disponibles sont :

fail2ban (par défaut : fail2ban) (type : paquet)

Le paquet fail2ban à utiliser. Il est utilisé à la fois pour les binaires et pour la configuration de base par défaut qui doit être étendue avec des objets <fail2ban-jail-configuration>.

run-directory (par défaut : "/var/run/fail2ban") (type : chaine)

Le répertoire d’état pour le démon fail2ban.

jails (par défaut : ()) (type : liste-de-fail2ban-jail-configurations)

Instances de <fail2ban-jail-configuration> collectées par les extensions.

extra-jails (par défaut : ()) (type : liste-de-fail2ban-jail-configurations)

Instances de <fail2ban-jail-configuration> fournies explicitement.

extra-content (par défaut : ()) (type : text-config)

Contenu brut supplémentaire à ajouter à la fin du fichier jail.local, à fournir sous forme d’une liste de simili-fichiers.

Type de données : fail2ban-ignore-cache-configuration

Les champs de fail2ban-ignore-cache-configuration disponibles sont :

key (type : chaine)

Clé de cache.

max-count (type : entier)

Taille du cache.

max-time (type : entier)

Durée du cache.

Type de données : fail2ban-jail-action-configuration

Les champs de fail2ban-jail-action-configuration disponibles sont :

name (type : string)

Nom de l’action.

arguments (par défaut : ()) (type : liste-d’arguments)

Arguments de l’action.

Type de données : fail2ban-jail-configuration

Les champs de fail2ban-jail-configuration disponibles sont :

name (type : string)

Nom requis de cette configuration de prison.

enabled? (par défaut : #t) (type : booléen)

Spécifie si cette prison est activée.

backend (type : peut-être-symbole)

Le moteur à utiliser pour détecter les changements dans log-path. La valeur par défaut est ’auto. Pour consulter les valeurs par défaut de la configuration de prison, consultez le fichier /etc/fail2ban/jail.conf du paquet fail2ban.

max-retry (type : peut-être-entier)

Le nombre d’échecs avant qu’un hôte ne soit banni (p. ex. (max-retry 5)).

max-matches (type : peut-être-entier)

Le nombre de correspondances stockées dans le ticket (accessible avec l’étiquette <matches>) dans l’action.

find-time (type : peut-être-chaine)

La fenêtre pendant laquelle le compte de tentative maximale doit être atteint pour qu’une adresse IP soit bannie. Un hôte est banni s’il a généré max-retry pendant les dernières find-time secondes (p. ex. »find-time "10m")). Elle peut être fournie en seconde ou avec le « format temporel abrégé » de Fail2ban, décrit dans man 5 jail.conf.

ban-time (type : peut-être-chaine)

La durée, en secondes ou au format temporel abrégé, qu’un bannissement doit durer (p. ex. (ban-time "10m")).

ban-time-increment? (type : peut-être-booléen)

Indique s’il faut considérer les bannissements passés pour calculer un incrément du temps de bannissement par défaut d’une adresse IP particulière.

ban-time-factor (type : peut-être-chaine)

Le coefficient à utiliser pour calculer un temps de bannissement exponentiel.

ban-time-formula (type : peut-être-chaine)

C’est la formule utilisée pour calculer la prochaine valeur d’une durée de bannissement.

ban-time-multipliers (type : peut-être-chaine)

Utilisé pour calculer la prochaine valeur de la durée du bannissement au lieu de la formule.

ban-time-max-time (type : peut-être-chaine)

Le nombre maximum de secondes qu’un bannissement peut durer.

ban-time-rnd-time (type : peut-être-chaine)

Le nombre maximum de secondes maximum qu’un bannissement à durée aléatoire peut durer. C’est utile pour arrêter les robots « intelligents » qui calculent le moment exacte où une adresse IP peut être dé-bannie.

ban-time-overall-jails? (type : peut-être-booléen)

Lorsque la valeur est vraie, elle spécifie que la recherche d’une adresse IP dans la base de donnée doit se faire dans toutes les prisons. Sinon, seule la prison actuelle pour l’adresse IP bannie est prise en compte.

ignore-self? (type : peut-être-booléen)

Ne jamais bannir l’adresse IP de la machine locale.

ignore-ip (par défaut : ()) (type : liste-de-chaines)

Une liste d’adresse IP, de masques CIDR ou d’hôtes DNS à ignorer. fail2ban ne bannira par un hôte qui correspond à une adresse de cette liste.

ignore-cache (type : peut-être-fail2ban-ignore-cache-configuration)

fournit des paramètres de cache pour ignorer les vérifications d’échecs.

filter (type : peut-fail2ban-jail-filter-configuration)

Le filtre à utiliser par la prison, spécifiée par un objet <fail2ban-jail-filter-configuration>. Par défaut, les prisons ont un nom qui correspond au nom de leur filtre.

log-time-zone (type : peut-être-chaine)

Le fuseau horaire par défaut pour les lignes de journaux qui n’en indiquent pas.

log-encoding (type : peut-être-symbole)

L’encodage des journaux traités par la prison. Les valeurs possibles sont : 'ascii, 'utf-8 et 'auto.

log-path (par défaut : ()) (type : liste-de-chaines)

Le nom de fichier des journaux à surveiller.

action (par défaut : ()) (type : liste-de-fail2ban-jail-action)

Une liste de <fail2ban-jail-action-configuration>.

extra-content (par défaut : ()) (type : text-config)

Contenu supplémentaire pour la configuration de la prison, à fournir sous la forme d’une liste de simili-fichiers.

Type de données : fail2ban-jail-filter-configuration

Les champs de fail2ban-jail-filter-configuration disponibles sont :

name (type : string)

Filtre à utiliser.

mode (type : peut-être-chaine)

Mode de filtrage.


Précédent: , Monter: Services   [Table des matières][Index]