This is guix.fr.info, produced by makeinfo version 6.7 from
guix.fr.texi.

Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021
Ludovic Courtès
Copyright © 2013, 2014, 2016 Andreas Enge
Copyright © 2013 Nikita Karetnikov
Copyright © 2014, 2015, 2016 Alex Kost
Copyright © 2015, 2016 Mathieu Lirzin
Copyright © 2014 Pierre-Antoine Rault
Copyright © 2015 Taylan Ulrich Bayırlı/Kammer
Copyright © 2015, 2016, 2017, 2019, 2020, 2021 Leo Famulari
Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus
Copyright © 2016 Ben Woodcroft
Copyright © 2016, 2017, 2018, 2021 Chris Marusich
Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner
Copyright © 2016 John Darrington
Copyright © 2016, 2017 Nikita Gillmann
Copyright © 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen
Copyright © 2016, 2017, 2018, 2019, 2020 Julien Lepiller
Copyright © 2016, Alex ter Weele
Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines
Copyright © 2017, 2018, 2019 Clément Lassieur
Copyright © 2017, 2018, 2020, 2021 Mathieu Othacehe
Copyright © 2017 Federico Beffa
Copyright © 2017, 2018 Carlo Zancanaro
Copyright © 2017 Thomas Danckaert
Copyright © 2017 humanitiesNerd
Copyright © 2017, 2021 Christopher Lemmer Webber
Copyright © 2017, 2018, 2019, 2020 Marius Bakke
Copyright © 2017, 2019, 2020 Hartmut Goebel
Copyright © 2017, 2019, 2020, 2021 Maxim Cournoyer
Copyright © 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice
Copyright © 2017 George Clemmer
Copyright © 2017 Andy Wingo
Copyright © 2017, 2018, 2019, 2020 Arun Isaac
Copyright © 2017 nee
Copyright © 2018 Rutger Helling
Copyright © 2018, 2021 Oleg Pykhalov
Copyright © 2018 Mike Gerwitz
Copyright © 2018 Pierre-Antoine Rouby
Copyright © 2018, 2019 Gábor Boskovits
Copyright © 2018, 2019, 2020 Florian Pelz
Copyright © 2018 Laura Lazzati
Copyright © 2018 Alex Vong
Copyright © 2019 Josh Holland
Copyright © 2019, 2020 Diego Nicola Barbato
Copyright © 2019 Ivan Petkov
Copyright © 2019 Jakob L. Kreuze
Copyright © 2019 Kyle Andrews
Copyright © 2019 Alex Griffin
Copyright © 2019, 2020 Guillaume Le Vaillant
Copyright © 2020 Leo Prikler
Copyright © 2019, 2020 Simon Tournier
Copyright © 2020 Wiktor Żelazny
Copyright © 2020 Damien Cassou
Copyright © 2020 Jakub Kądziołka
Copyright © 2020 Jack Hill
Copyright © 2020 Naga Malleswari
Copyright © 2020 Brice Waegeneire
Copyright © 2020 R Veera Kumar
Copyright © 2020 Pierre Langlois
Copyright © 2020 pinoaffe
Copyright © 2020 André Batista
Copyright © 2020, 2021 Alexandru-Sergiu Marton
Copyright © 2020 raingloom
Copyright © 2020 Daniel Brooks
Copyright © 2020 John Soo
Copyright © 2020 Jonathan Brielmaier
Copyright © 2020 Edgar Vincent
Copyright © 2021 Maxime Devos

   Vous avez la permission de copier, distribuer ou modifier ce document
sous les termes de la Licence GNU Free Documentation, version 1.3 ou
toute version ultérieure publiée par la Free Software Foundation ; sans
section invariante, texte de couverture et sans texte de quatrième de
couverture. Une copie de la licence est incluse dans la section
intitulée « GNU Free Documentation License ».
INFO-DIR-SECTION Administration système
START-INFO-DIR-ENTRY
* Guix: (guix.fr).           Gérer les logiciels installés et la
                               configuration du système.
* guix package : (guix.fr)Invoquer guix package.  Installer, supprimer et
                                                      mettre à jour des
                                                      paquets.
* guix gc : (guix.fr)Invoquer guix gc.  Récupérer de l’espace disque
                                            inutilisé.
* guix pull : (guix.fr)Invoquer guix pull.  Mettre à jour la liste des
                                                paquets disponibles.
* guix system : (guix.fr)Invoquer guix system.  Gérer la configuration du
                                                    système d’exploitation.
* guix deploy: (guix.fr)Invoquer guix deploy.  Gérer la configuration du
                                                 système d’exploitation
                                                 d’hôtes distants.
END-INFO-DIR-ENTRY

INFO-DIR-SECTION Développement logiciel
START-INFO-DIR-ENTRY
* guix environment : (guix.fr)Invoquer guix environment.  Construire des
                                                              environnements
                                                              de construction
                                                              avec Guix.
* guix build : (guix.fr)Invoquer guix build.  Construire des paquets.
* guix pack : (guix.fr) Invoquer guix pack.  Créer des lots binaires.
END-INFO-DIR-ENTRY


File: guix.fr.info,  Node: Services de courriels,  Next: Services de messagerie,  Prev: Services de bases de données,  Up: Services

10.8.11 Services de courriels
-----------------------------

Le module ‘(gnu services mail)’ fournit des définitions de services Guix
pour les services de courriel : des serveurs IMAP, POP3 et LMTP ainsi
que des MTA (Mail Transport Agent). Que d’acronymes ! Ces services sont
détaillés dans les sous-sections ci-dessous.

Service Dovecot
...............

 -- Procédure Scheme : dovecot-service [#:config
          (dovecot-configuration)]
     Renvoie un service qui lance le serveur de courriel IMAP/POP3/LMTP
     Dovecot.

   Par défaut, Dovecot n’a pas besoin de beaucoup de configuration ;
l’objet de configuration par défaut créé par ‘(dovecot-configuration)’
suffira si votre courriel est livré dans ‘~/Maildir’. Un certificat
auto-signé sera généré pour les connexions TLS, bien que Dovecot
écoutera aussi sur les ports non chiffrés par défaut. Il y a quelques
options cependant, que les administrateurs peuvent avoir besoin de
changer et comme c’est le cas avec d’autres services, Guix permet aux
administrateurs systèmes de spécifier ces paramètres via une interface
Scheme unifiée.

   Par exemple, pour spécifier que les courriels se trouvent dans
‘maildir~/.mail’, on peut instancier Dovecot de cette manière :

     (dovecot-service #:config
                      (dovecot-configuration
                       (mail-location "maildir:~/.mail")))

   Les paramètres de configuration disponibles sont les suivants. Chaque
définition des paramètres est précédé par son type ; par exemple,
‘string-list foo’ indique que le paramètre ‘foo’ devrait être spécifié
comme une liste de chaînes de caractères. Il y a aussi une manière de
spécifier la configuration comme une chaîne de caractères, si vous avez
un vieux fichier ‘dovecot.conf’ que vous voulez porter depuis un autre
système ; voir la fin pour plus de détails.

   Les champs de ‘dovecot-configuration’ disponibles sont :

 -- paramètre de ‘dovecot-configuration’ : package dovecot
     Le paquet dovecot.

 -- paramètre de ‘dovecot-configuration’ : comma-separated-string-list
          listen
     Une liste d’IP ou d’hôtes à écouter pour les connexions. ‘*’ écoute
     sur toutes les interfaces IPv4, ‘::’ écoute sur toutes les
     interfaces IPv6. Si vous voulez spécifier des ports différents de
     la valeur par défaut ou quelque chose de plus complexe, complétez
     les champs d’adresse et de port de ‘inet-listener’ des services
     spécifiques qui vous intéressent.

 -- paramètre de ‘dovecot-configuration’ : protocol-configuration-list
          protocols
     Liste des protocoles que vous voulez servir. Les protocoles
     disponibles comprennent ‘imap’, ‘pop3’ et ‘lmtp’.

     Les champs ‘protocol-configuration’ disponibles sont :

      -- paramètre de ‘protocol-configuration’ : string name
          Le nom du protocole.

      -- paramètre de ‘protocol-configuration’ : string auth-socket-path
          Le chemin d’un socket UNIX vers le serveur d’authentification
          maître pour trouver les utilisateurs. C’est utilisé par imap
          (pour les utilisateurs partagés) et lda. Sa valeur par défaut
          est ‘"/var/run/dovecot/auth-userdb"’.

      -- paramètre de ‘protocol-configuration’ :
               space-separated-string-list mail-plugins
          Liste de greffons à charger séparés par des espaces.

      -- paramètre de ‘protocol-configuration’ : non-negative-integer
               mail-max-userip-connections
          Nombre maximum de connexions IMAP permises pour un utilisateur
          depuis chaque adresse IP. Remarque : la comparaison du nom
          d’utilisateur est sensible à la casse. Par défaut ‘10’.

 -- paramètre de ‘dovecot-configuration’ : service-configuration-list
          services
     Liste des services à activer. Les services disponibles comprennent
     ‘imap’, ‘imap-login’, ‘pop3’, ‘pop3-login’, ‘auth’ et ‘lmtp’.

     Les champs de ‘service-configuration’ disponibles sont :

      -- paramètre de ‘service-configuration’ : string kind
          Le type de service. Les valeurs valides comprennent
          ‘director’, ‘imap-login’, ‘pop3-login’, ‘lmtp’, ‘imap’,
          ‘pop3’, ‘auth’, ‘auth-worker’, ‘dict’, ‘tcpwrap’,
          ‘quota-warning’ ou n’importe quoi d’autre.

      -- paramètre de ‘service-configuration’ :
               listener-configuration-list listeners
          Les auditeurs du service. Un auditeur est soit un
          ‘unix-listener-configuration’, soit un
          ‘fifo-listener-configuration’, soit un
          ‘inet-listener-configuration’. La valeur par défaut est ‘()’.

          Les champs de ‘unix-listener-configuration’ disponibles sont :

           -- paramètre de ‘unix-listener-configuration’ : string path
               Chemin vers le fichier, relativement au champ ‘base-dir’.
               C’est aussi utilisé comme nom de section.

           -- paramètre de ‘unix-listener-configuration’ : string mode
               Le mode d’accès pour le socket. La valeur par défaut est
               ‘"0600"’.

           -- paramètre de ‘unix-listener-configuration’ : string user
               L’utilisateur à qui appartient le socket. La valeur par
               défaut est ‘""’.

           -- paramètre de ‘unix-listener-configuration’ : string group
               Le groupe auquel appartient le socket. La valeur par
               défaut est ‘""’.

          Les champs de ‘fifo-listener-configuration’ disponibles sont :

           -- paramètre de ‘fifo-listener-configuration’ : string path
               Chemin vers le fichier, relativement au champ ‘base-dir’.
               C’est aussi utilisé comme nom de section.

           -- paramètre de ‘fifo-listener-configuration’ : string mode
               Le mode d’accès pour le socket. La valeur par défaut est
               ‘"0600"’.

           -- paramètre de ‘fifo-listener-configuration’ : string user
               L’utilisateur à qui appartient le socket. La valeur par
               défaut est ‘""’.

           -- paramètre de ‘fifo-listener-configuration’ : string group
               Le groupe auquel appartient le socket. La valeur par
               défaut est ‘""’.

          Les champs de ‘inet-listener-configuration’ disponibles sont :

           -- paramètre de ‘inet-listener-configuration’ : string
                    protocol
               Le protocole à écouter.

           -- paramètre de ‘inet-listener-configuration’ : string
                    address
               L’adresse sur laquelle écouter, ou la chaîne vide pour
               toutes les adresses. La valeur par défaut est ‘""’.

           -- paramètre de ‘inet-listener-configuration’ :
                    non-negative-integer port
               Le port sur lequel écouter.

           -- paramètre de ‘inet-listener-configuration’ : boolean ssl?
               S’il faut utiliser SSL pour ce service ; ‘yes’, ‘no’ ou
               ‘required’. La valeur par défaut est ‘#t’.

      -- paramètre de ‘service-configuration’ : non-negative-integer
               client-limit
          Connexions de clients simultanées maximum par processus. Une
          fois ce nombre de connections atteint, la connexion suivante
          fera en sorte que Dovecot démarre un autre processus. Si la
          valeur est 0, ‘default-client-limit’ est utilisé à la place.

          La valeur par défaut est ‘0’.

      -- paramètre de ‘service-configuration’ : non-negative-integer
               service-count
          Nombre de connexions à gérer avant de démarrer un nouveau
          processus. Typiquement les valeurs utiles sont 0 (sans limite)
          ou 1. 1 est plus sûr, mais 0 est plus rapide.
          <doc/wiki/LoginProcess.txt>. La valeur par défaut est ‘1’.

      -- paramètre de ‘service-configuration’ : non-negative-integer
               process-limit
          Nombre de processus maximum qui peut exister pour ce service.
          Si la valeur est 0, ‘default-process-limit’ est utilisé à la
          place.

          La valeur par défaut est ‘0’.

      -- paramètre de ‘service-configuration’ : non-negative-integer
               process-min-avail
          Nombre de processus à toujours garder en attente de
          connexions. La valeur par défaut est ‘0’.

      -- paramètre de ‘service-configuration’ : non-negative-integer
               vsz-limit
          Si vous mettez ‘service-count 0’, vous avez sans doute besoin
          d’augmenter ce paramètre. La valeur par défaut est
          ‘256000000’.

 -- paramètre de ‘dovecot-configuration’ : dict-configuration dict
     Configuration du dictionnaire, créé par le constructeur
     ‘dict-configuration’.

     Les champs de ‘dict-configuration’ disponibles sont :

      -- paramètre de ‘dict-configuration’ : free-form-fields entries
          Une liste de paires de clefs-valeurs que ce dictionnaire
          contient. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : passdb-configuration-list
          passdbs
     Une liste de configurations passdb, chacune créée par le
     constructeur ‘passdb-configuration’.

     Les champs de ‘passdb-configuration’ disponibles sont :

      -- paramètre de ‘passdb-configuration’ : string driver
          Le pilote à utiliser par passdb. Les valeur valides
          comprennent ‘pam’, ‘passwd’, ‘shadow’, ‘bsdauth’ et ‘static’.
          La valeur par défaut est ‘"pam"’.

      -- paramètre de ‘passdb-configuration’ :
               space-separated-string-list args
          Liste d’arguments pour le pilote passdb séparés par des
          espaces. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : userdb-configuration-list
          userdbs
     Liste des configurations userdb, chacune créée par le constructeur
     ‘userdb-configuration’.

     Les champs de ‘userdb-configuration’ disponibles sont :

      -- paramètre de ‘userdb-configuration’ : string driver
          Le pilote que userdb devrait utiliser. Les valeurs valides
          comprennent ‘passwd’ et ‘static’. La valeur par défaut est
          ‘"passwd"’.

      -- paramètre de ‘userdb-configuration’ :
               space-separated-string-list args
          Liste des arguments du pilote userdb séparés par des espaces.
          La valeur par défaut est ‘""’.

      -- paramètre de ‘userdb-configuration’ : free-form-args
               override-fields
          Remplace des champs de passwd. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : plugin-configuration
          plugin-configuration
     Configuration du greffon, créé par le constructeur
     ‘plugin-configuration’.

 -- paramètre de ‘dovecot-configuration’ :
          list-of-namespace-configuration namespaces
     Liste d’espaces de noms. Chaque élément de la liste est créé par le
     constructeur ‘namespace-configuration’.

     Les champs de ‘namespace-configuration’ disponibles sont :

      -- paramètre de ‘namespace-configuration’ : string name
          Nom de cet espace de nom.

      -- paramètre de ‘namespace-configuration’ : string type
          Type d’espace de nom : ‘private’, ‘shared’ ou ‘public’. La
          valeur par défaut est ‘"private"’.

      -- paramètre de ‘namespace-configuration’ : string separator
          Séparateur de hiérarchie à utiliser. Vous devriez utiliser le
          même séparateur pour tous les espaces de noms ou certains
          clients seront confus. ‘/’ est généralement une bonne valeur.
          La valeur par défaut dépend cependant du format de stockage
          sous-jacent. La valeur par défaut est ‘""’.

      -- paramètre de ‘namespace-configuration’ : string prefix
          Préfixe requis pour accéder à cet espace de nom. Ce paramètres
          doit être différent pour tous les espaces de noms. Par exemple
          ‘Public/’. La valeur par défaut est ‘""’.

      -- paramètre de ‘namespace-configuration’ : string location
          Emplacement physique de la boîte aux lettres. C’est le même
          format que mail_location, qui est aussi la valeur par défaut.
          La valeur par défaut est ‘""’.

      -- paramètre de ‘namespace-configuration’ : boolean inbox?
          Il ne peut y avoir qu’un INBOX, et ce paramètre définit
          l’espace de nom qui le possède. La valeur par défaut est ‘#f’.

      -- paramètre de ‘namespace-configuration’ : boolean hidden?
          Si l’espace de nom est caché, il n’est pas publié auprès des
          clients par l’extension NAMESPACE. Vous voudrez aussi sans
          doute indiquer ‘list? #f’. C’est surtout utile lors de la
          conversion depuis un autre serveur avec des espaces de noms
          différents que vous voulez rendre obsolètes sans les casser.
          Par exemple vous pouvez cacher les espaces de noms avec les
          préfixes ‘~/mail/’, ‘~%u/mail/’ et ‘mail/’. La valeur par
          défaut est ‘#f’.

      -- paramètre de ‘namespace-configuration’ : boolean list?
          Montre les boîtes aux lettres sons cet espace de nom avec la
          commande LIST. Cela rend l’espace de nom visible pour les
          clients qui ne supportent pas l’extension NAMESPACE. La valeur
          spéciale ‘children’ liste les boîtes aux lettres filles mais
          cache le préfixe de l’espace de nom. La valeur par défaut est
          ‘#t’.

      -- paramètre de ‘namespace-configuration’ : boolean subscriptions?
          Les espaces de noms gèrent leur propre souscription. Si la
          valeur est ‘#f’, l’espace de nom parent s’en charge. Le
          préfixe vide devrait toujours avoir cette valeur à ‘#t’. La
          valeur par défaut est ‘#t’.

      -- paramètre de ‘namespace-configuration’ :
               mailbox-configuration-list mailboxes
          Liste des boîtes aux lettres prédéfinies dans cet espace de
          nom. La valeur par défaut est ‘()’.

          Les champs de ‘mailbox-configuration’ disponibles sont :

           -- paramètre de ‘mailbox-configuration’ : string name
               Nom de cette boîte aux lettres.

           -- paramètre de ‘mailbox-configuration’ : string auto
               ‘create’ créera automatiquement cette boîte aux lettres.
               ‘subscribe’ créera et souscrira à la boîte aux lettres.
               La valeur par défaut est ‘"no"’.

           -- paramètre de ‘mailbox-configuration’ :
                    space-separated-string-list special-use
               Liste des attributs ‘SPECIAL-USE’ IMAP spécifiés par la
               RFC 6154. Les valeurs valides sont ‘\All’, ‘\Archive’,
               ‘\Drafts’, ‘\Flagged’, ‘\Junk’, ‘\Sent’ et ‘\Trash’. La
               valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : file-name base-dir
     Répertoire de base où stocker les données d’exécution. La valeur
     par défaut est ‘"/var/run/dovecot/"’.

 -- paramètre de ‘dovecot-configuration’ : string login-greeting
     Message d’accueil pour les clients. La valeur par défaut est
     ‘"Dovecot ready."’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          login-trusted-networks
     Liste des groupes d’adresses de confiance. Les connexions depuis
     ces IP sont autorisées à modifier leurs adresses IP et leurs ports
     (pour la connexion et la vérification d’authentification).
     ‘disable-plaintext-auth’ est aussi ignoré pour ces réseaux.
     Typiquement vous voudrez spécifier votre mandataire IMAP ici. La
     valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          login-access-sockets
     Liste des sockets de vérification d’accès de connexion (p. ex.
     tcpwrap). La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : boolean verbose-proctitle?
     Montre des titres de processus plus verbeux (dans ps).
     Actuellement, montre le nom d’utilisateur et l’adresse IP. Utile
     pour voir qui utilise en réalité les processus IMAP (p. ex. des
     boîtes aux lettres partagées ou si le même uid est utilisé pour
     plusieurs comptes). La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean shutdown-clients?
     Indique si les processus devraient toujours être tués lorsque le
     processus maître de Dovecot est éteint. La valeur ‘#f’ signifie que
     Dovecot peut être mis à jour sans forcer les connexions clientes
     existantes à se fermer (bien que cela puisse être un problème si la
     mise à jour est un correctif de sécurité par exemple). La valeur
     par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          doveadm-worker-count
     Si la valeur n’est pas zéro, lance les commandes de courriel via ce
     nombre de connexions au serveur doveadm au lieu de les lancer dans
     le même processus. La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : string doveadm-socket-path
     Socket UNIX ou hôte:port utilisé pour se connecter au serveur
     doveadm. La valeur par défaut est ‘"doveadm-server"’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          import-environment
     Liste des variables d’environnement qui sont préservées au
     démarrage de Dovecot et passées à tous ses processus fils. Vous
     pouvez aussi donner des paires clef=valeur pour toujours spécifier
     ce paramètre.

 -- paramètre de ‘dovecot-configuration’ : boolean
          disable-plaintext-auth?
     Désactive la commande LOGIN et toutes les autres authentifications
     en texte clair à moins que SSL/TLS ne soit utilisé (capacité
     LOGINDISABLED). Remarquez que si l’IP distante correspond à l’IP
     locale (c.-à-d. que vous vous connectez depuis le même ordinateur),
     la connexion est considérée comme sécurisée et l’authentification
     en texte clair est permise. Voir aussi le paramètre ssl=required.
     La valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          auth-cache-size
     Taille du cache d’authentification (p. ex. ‘#e10e6’). 0 signifie
     qu’il est désactivé. Remarquez que bsdauth, PAM et vpopmail ont
     besoin que ‘cache-key’ soit indiqué pour que le cache soit utilisé.
     La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : string auth-cache-ttl
     Durée de vie des données en cache. Après l’expiration du TTL
     l’enregistrement en cache n’est plus utilisé *sauf* si la requête à
     la base de données principale revoie une erreur interne. Nous
     essayons aussi de gérer les changements de mot de passe
     automatiquement : si l’authentification précédente de l’utilisateur
     était réussie mais pas celle-ci, le cache n’est pas utilisé. Pour
     l’instant cela fonctionne avec l’authentification en texte clair
     uniquement. La valeur par défaut est ‘"1 hour"’.

 -- paramètre de ‘dovecot-configuration’ : string
          auth-cache-negative-ttl
     TTL pour les résultats négatifs (l’utilisateur n’est pas trouvé ou
     le mot de passe ne correspond pas). 0 désactive la mise en cache
     complètement. La valeur par défaut est ‘"1 hour"’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          auth-realms
     Liste des domaines pour les mécanismes d’authentification SASL qui
     en ont besoin. Vous pouvez laisser ce paramètre vide si vous ne
     voulez pas utiliser plusieurs domaines. Beaucoup de clients
     utilisent le premier domaine listé ici, donc gardez celui par
     défaut en premier. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : string auth-default-realm
     Domaine par défaut à utiliser si aucun n’est spécifié. C’est
     utilisé pour les domaines SASL et pour ajouter @domaine au nom
     d’utilisateur dans les authentification en texte clair. La valeur
     par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string auth-username-chars
     Liste des caractères autorisés dans les noms d’utilisateur. Si le
     nom d’utilisateur donné par l’utilisateur contient un caractère qui
     n’est pas listé ici, la connexion échoue automatiquement. C’est
     juste une vérification supplémentaire pour s’assure que
     l’utilisateur ne puisse pas exploiter des vulnérabilités
     potentielles d’échappement de guillemets avec les bases de données
     SQL/LDAP. Si vous voulez autoriser tous les caractères, indiquez la
     liste vide.

 -- paramètre de ‘dovecot-configuration’ : string
          auth-username-translation
     Traduction de caractères dans les noms d’utilisateur avant qu’ils
     ne soient cherchés en base. La valeur contient une série de
     caractère de -> à. Par exemple ‘#@/@’ signifie que ‘#’ et ‘/’ sont
     traduits en ‘@’. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string auth-username-format
     Format des noms d’utilisateur avant qu’ils ne soient cherchés en
     base. Vous pouvez utiliser les variables standard ici, p. ex. %Lu
     est le nom d’utilisateur en minuscule, %n enlève le domaine s’il
     est donné ou ‘%n-AT-%d’ changerait le ‘@’ en ‘-AT-’. Cette
     traduction est faite après les changements de
     ‘auth-username-translation’. La valeur par défaut est ‘"%Lu"’.

 -- paramètre de ‘dovecot-configuration’ : string
          auth-master-user-separator
     Si vous voulez permettre aux utilisateurs maîtres de se connecter
     en spécifiant le nom d’utilisateur maître dans la chaîne de nom
     d’utilisateur normal (c.-à-d. sans utiliser le support du mécanisme
     SASL pour cela), vous pouvez spécifier le caractère de séparation
     ici. Le format est ensuite <nom d’utilisateur><séparateur><nom
     d’utilisateur maître>. UW-IMAP utilise ‘*’ comme séparateur, donc
     ça pourrait être un bon choix. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string
          auth-anonymous-username
     Nom d’utilisateur à utiliser pour les utilisateurs qui se
     connectent avec le mécanisme SASL ANONYMOUS. La valeur par défaut
     est ‘"anonymous"’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          auth-worker-max-count
     Nombre maximum de processus de travail dovecot-auth. Ils sont
     utilisés pour exécuter des requêtes passdb et userdb bloquantes (p.
     ex. MySQL et PAM). Ils sont créés automatiquement et détruits au
     besoin. La valeur par défaut est ‘30’.

 -- paramètre de ‘dovecot-configuration’ : string auth-gssapi-hostname
     Nom d’hôte à utiliser dans les noms GSSAPI principaux. La valeur
     par défaut est d’utiliser le nom renvoyé par gethostname().
     Utilisez ‘$ALL’ (avec des guillemets) pour permettre toutes les
     entrées keytab. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string auth-krb5-keytab
     Keytab Kerberos à utiliser pour le mécanisme GSSAPI. Utilisera la
     valeur par défaut du système (typiquement ‘/etc/krb5.keytab’) s’il
     n’est pas spécifié. Vous pourriez avoir besoin de faire en sorte
     que le service d’authentification tourne en root pour pouvoir lire
     ce fichier. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean auth-use-winbind?
     Effectue l’authentification NTLM et GSS-SPNEGO avec le démon
     winbind de Samba et l’utilitaire ‘ntlm-auth’.
     <doc/wiki/Authentication/Mechanisms/Winbind.txt>. La valeur par
     défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : file-name
          auth-winbind-helper-path
     Chemin du binaire ‘ntlm-auth’ de samba. La valeur par défaut est
     ‘"/usr/bin/ntlm_auth"’.

 -- paramètre de ‘dovecot-configuration’ : string auth-failure-delay
     Durée d’attente avant de répondre à des authentifications échouées.
     La valeur par défaut est ‘"2 secs"’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          auth-ssl-require-client-cert?
     Requiert un certification client SSL valide ou l’authentification
     échoue. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          auth-ssl-username-from-cert?
     Prend le nom d’utilisateur du certificat SSL client, avec
     ‘X509_NAME_get_text_by_NID()’ qui renvoie le CommonName du DN du
     sujet. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          auth-mechanisms
     Liste des mécanismes d’authentification souhaités. Les mécanismes
     supportés sont : ‘plain’, ‘login’, ‘digest-md5’, ‘cram-md5’,
     ‘ntlm’, ‘rpa’, ‘apop’, ‘anonymous’, ‘gssapi’, ‘otp’, ‘skey’ et
     ‘gss-spnego’. Remarquez : Voir aussi le paramètre
     ‘disable-plaintext-auth’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          director-servers
     Liste des IP ou des noms d’hôtes des serveurs directeurs, dont
     soi-même. Les ports peuvent être spécifiés avec ip:port. Le port
     par défaut est le même que le ‘inet-listener’ du service directeur.
     La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          director-mail-servers
     Liste des IP ou des noms d’hôtes de tous les serveurs de courriel
     de la grappe. Les intervalles sont aussi permis, comme
     10.0.0.10-10.0.0.30. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : string director-user-expire
     Combien de temps avant de rediriger les utilisateurs à un serveur
     spécifique après qu’il n’y a plus de connexion. La valeur par
     défaut est ‘"15 min"’.

 -- paramètre de ‘dovecot-configuration’ : string director-username-hash
     La manière de traduire le nom d’utilisateur avant de le hasher. Les
     valeurs utiles comprennent %Ln si l’utilisateur peut se connecter
     avec ou sans @domain, %Ld si les boîtes aux lettres sont partagées
     dans le domaine. La valeur par défaut est ‘"%Lu"’.

 -- paramètre de ‘dovecot-configuration’ : string log-path
     Fichier de journal à utiliser pour les messages d’erreur. ‘syslog’
     journalise vers syslog, ‘/dev/stderr’ vers la sortie d’erreur. La
     valeur par défaut est ‘"syslog"’.

 -- paramètre de ‘dovecot-configuration’ : string info-log-path
     Fichier de journal à utiliser pour les messages d’information. La
     valeur par défaut est ‘log-path’. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string debug-log-path
     Fichier de journal à utiliser pour les messages de débogage. La
     valeur par défaut est ‘info-log-path’. La valeur par défaut est
     ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string syslog-facility
     Dispositif syslog à utiliser si vous journalisez avec syslog.
     Normalement si vous ne voulez pas utiliser ‘mail’, vous voudrez
     utiliser local0..local7. D’autres dispositifs standard sont
     supportés. La valeur par défaut est ‘"mail"’.

 -- paramètre de ‘dovecot-configuration’ : boolean auth-verbose?
     Indique s’il faut enregistrer les tentatives de connexion échouées
     et la raison de leur échec. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string auth-verbose-passwords
     Dans le cas où le mot de passe n’était pas correct, indique s’il
     faut enregistrer le mauvais mot de passe. Les valeurs valides sont
     « no », « plain » et « sha1 ». Il peut être utile d’indiquer « sha1
     » pour discriminer des attaques par force brute d’utilisateurs qui
     réessayent encore et encore le même mot de passe. Vous pouvez aussi
     tronquer la valeur à n caractères en ajoutant « :n » (p. ex. «
     sha1:6 »). La valeur par défaut est ‘"no"’.

 -- paramètre de ‘dovecot-configuration’ : boolean auth-debug?
     Journaux encore plus verbeux pour le débogage. Cela montre par
     exemple les requêtes SQL effectuées. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean auth-debug-passwords?
     Dans le cas où le mot de passe était incorrect, indique s’il faut
     enregistrer les mots de passe et les schémas utilisés pour que le
     problème puisse être débogué. Activer cette option active aussi
     ‘auth-debug’. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean mail-debug?
     Indique s’il faut activer le débogage du traitement des courriels.
     Cela peut vous aider à comprendre pourquoi Dovecot ne trouve pas
     vos courriels. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean verbose-ssl?
     Indique s’il faut montrer les erreurs au niveau SSL. La valeur par
     défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string log-timestamp
     Préfixe à utiliser devant chaque ligne écrite dans le fichier
     journal. Les codes % sont au format strftime(3). La valeur par
     défaut est ‘"\"%b %d %H:%M:%S \""’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          login-log-format-elements
     Liste des éléments qu’il faut enregistrer. Les éléments qui ont une
     variable non vide sont agrégés pour former une chaîne de mots
     séparés par des virgules.

 -- paramètre de ‘dovecot-configuration’ : string login-log-format
     Format du journal de connexion. %s contient la chaîne
     ‘login-log-format-elements’, %$ contient la donnée à enregistrer.
     La valeur par défaut est ‘"%$: %s"’.

 -- paramètre de ‘dovecot-configuration’ : string mail-log-prefix
     Préfixe à utiliser devant chaque ligne du fichier de journal pour
     les processus traitant les courriels. Voir doc/wiki/Variables.txt
     pour trouver la liste des variables que vous pouvez utiliser. La
     valeur par défaut est ‘"\"%s(%u)<%{pid}><%{session}>: \""’.

 -- paramètre de ‘dovecot-configuration’ : string deliver-log-format
     Format à utiliser pour enregistrer les livraisons de courriels.
     Vous pouvez utiliser ces variables :
     ‘%$’
          Message de statut de la livraison (p. ex. ‘saved to INBOX’)
     ‘%m’
          Message-ID
     ‘%s’
          Objet
     ‘%f’
          Adresse « de »
     ‘%p’
          Taille physique
     ‘%w’
          Taille virtuelle.
     La valeur par défaut est ‘"msgid=%m: %$"’.

 -- paramètre de ‘dovecot-configuration’ : string mail-location
     Emplacement des boîtes à lettre des utilisateurs. La valeur par
     défaut est vide, ce qui signifie que Dovecot essaiera de trouver
     les boîte aux lettres automatiquement. Cela ne fonctionnera pas si
     l’utilisateur n’a aucun courriel, donc il vaut mieux indiquer
     explicitement le bon emplacement à Dovecot.

     Si vous utilisez mbox, il ne suffit pas de donner le chemin vers le
     fichier INBOX (p. ex. ‘/var/mail/%u’). Vous devrez aussi dire à
     Dovecot où les autres boîtes aux lettres se trouvent. Cela
     s’appelle le « répertoire racine des courriels » et il doit être le
     premier chemin donné à l’option ‘mail-location’.

     Il y a quelques variables spéciales que vous pouvez utiliser, p. ex
     :

     ‘%u’
          nom d’utilisateur
     ‘%n’
          la partie « utilisateur » dans « utilisateur@domaine », comme
          %u s’il n’y a pas de domaine
     ‘%d’
          la partie « domaine » dans « utilisateur@domaine », vide s’il
          n’y a pas de domaine
     ‘%h’
          répertoire personnel

     Voir doc/wiki/Variables.txt pour la liste complète. Quelques
     exemple :
     ‘maildir:~/Maildir’
     ‘mbox:~/mail:INBOX=/var/mail/%u’
     ‘mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%’
     La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-uid
     Utilisateur et groupe système utilisé pour accéder aux courriels.
     Si vous utilisez multiple, userdb peut remplacer ces valeurs en
     renvoyant les champs uid et gid. Vous pouvez utiliser soit des
     nombres, soit des noms. <doc/wiki/UserIds.txt>. La valeur par
     défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-gid

     La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-privileged-group
     Groupe à activer temporairement pour les opérations privilégiées.
     Actuellement cela est utilisé uniquement avec INBOX lors de sa
     création initiale et quand le verrouillage échoie. Typiquement,
     vous pouvez utiliser ‘"mail"’ pour donner accès à ‘/var/mail’. La
     valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string mail-access-groups
     Donne l’accès à ces groupes supplémentaires aux processus de
     courriel. Ils sont typiquement utilisés pour mettre en place
     l’accès à des boites aux lettres partagées. Remarquez qu’il peut
     être dangereux d’utiliser cette option si l’utilisateur peut créer
     des liens symboliques (p. ex. si le groupe ‘mail’ est utilisé ici,
     ‘ln -s /var/mail ~/mail/var’ peut permettre à un utilisateur de
     supprimer les boites aux lettres des autres, ou ‘ln -s
     /secret/shared/box ~/mail/mybox’ lui permettrait de la lire). La
     valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          mail-full-filesystem-access?
     Permet l’accès complet au système de fichiers pour les clients. Il
     n’y a pas de vérification d’accès autres que ce que le système
     d’exploitation fait avec les UID/GID. Cela fonctionne aussi bien
     avec maildir qu’avec mbox, ce qui vous permet de préfixer les noms
     des boites aux lettres avec p. ex. ‘/chemin/’ ou ‘~utilisateur/’.
     La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean mmap-disable?
     Ne pas du tout utiliser ‘mmap()’. Cela est requis si vous stockez
     les index dans des systèmes de fichiers partagés (NFS ou
     clusterfs). La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean dotlock-use-excl?
     S’appuyer sur ‘O_EXCL’ lors de la création de fichiers de
     verrouillage. NFS supporte ‘O_EXCL’ depuis la version 3, donc cette
     option est sûre de nos jours. La valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : string mail-fsync
     Quand utiliser les appels à fsync() ou fdatasync() :
     ‘optimized’
          Lorsque cela est nécessaire pour éviter de perdre des données
          importantes
     ‘always’
          Utile lorsque par exemple les ‘write()’ de NFS sont retardées
     ‘never’
          Ne l’utilisez pas (ça a de meilleures performances, mais les
          crashs font perdre toutes les données).
     La valeur par défaut est ‘"optimized"’.

 -- paramètre de ‘dovecot-configuration’ : boolean mail-nfs-storage?
     Le stockage des courriels se fait sur NFS. Utilisez cette option
     pour que Dovecot vide les caches NFS lorsque c’est nécessaire. Si
     vous utilisez seulement un simple serveur de courriel, ce n’est pas
     nécessaire. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean mail-nfs-index?
     Les fichiers d’index de courriels sont sur un système de fichiers
     NFS. Pour utiliser cette option, vous aurez besoin de
     ‘mmap-disable? #t’ et ‘fsync-disable? #f’. La valeur par défaut est
     ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string lock-method
     Méthode de verrouillage des fichiers d’index. Les alternatives sont
     fcntl, flock et dotlock. Le verrouillage-point (dotlocking) utilise
     des astuces qui peuvent créer plus d’utilisation du disque que les
     autres méthodes de verrouillage. Pour les utilisateurs de NFS,
     flock ne marche pas, et rappelez-vous de modifier ‘mmap-disable’.
     La valeur par défaut est ‘"fcntl"’.

 -- paramètre de ‘dovecot-configuration’ : file-name mail-temp-dir
     Le répertoire dans lequel LDA/LMTP stockent temporairement les
     courriels de plus de 128 Ko. La valeur par défaut est ‘"/tmp"’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          first-valid-uid
     L’intervalle d’UID valides pour les utilisateurs. Cette option est
     surtout utile pour s’assurer que les utilisateurs ne peuvent pas
     s’authentifier en tant que démon ou qu’un autre utilisateur
     système. Remarquez que la connexion en root est interdite en dur
     dans le binaire de dovecot et qu’on ne peut pas l’autoriser même si
     ‘first-valid-uid’ vaut 0. La valeur par défaut est ‘500’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          last-valid-uid

     La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          first-valid-gid
     Li’ntervalle de GID valides pour les utilisateurs. Les utilisateurs
     qui ont un GID non-valide comme numéro de groupe primaire ne
     peuvent pas se connecter. Si l’utilisateur appartient à un groupe
     avec un GID non valide, ce groupe n’est pas utilisable. La valeur
     par défaut est ‘1’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          last-valid-gid

     La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          mail-max-keyword-length
     Longueur maximale autorisée pour les mots-clefs. Elle n’est
     utilisée que lors de la création de nouveaux mots-clefs. La valeur
     par défaut est ‘50’.

 -- paramètre de ‘dovecot-configuration’ :
          colon-separated-file-name-list valid-chroot-dirs
     Liste des répertoires sous lesquels le chroot est permis pour les
     processus de traitement des courriels (c.-à-d. ‘/var/mail’
     permettra aussi de se chrooter dans ‘/var/mail/foo/bar’). Ce
     paramètre n’affecte pas ‘login-chroot’ ‘mail-chroot’ ou les
     paramètres de chroot de l’authentification. Si ce paramètre est
     vide, ‘/./’ dans les répertoires personnels sont ignorés. ATTENTION
     : n’ajoutez jamais de répertoires ici que les utilisateurs locaux
     peuvent modifier, puisque ça pourrait permettre d’escalader les
     privilèges. Normalement vous ne devriez le faire que si les
     utilisateurs n’ont pas d’accès shell. <doc/wiki/Chrooting.txt>. La
     valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : string mail-chroot
     Répertoire chroot par défaut pour les processus de traitement des
     courriels. Cela peut être modifié pour des utilisateurs
     particuliers dans la base de donnée en donnant ‘/./’ dans le
     répertoire personnel (p. ex. ‘/home/./utilisateur’ permet de se
     chrooter dans ‘/home’). Remarquez qu’il n’y a d’habitude pas besoin
     de se chrooter. Dovecot ne permet pas aux utilisateurs d’accéder
     aux fichiers en dehors de leur répertoire de courriels de toute
     façon. Si vos répertoires personnels sont préfixés par le
     répertoire de chroot, ajoutez ‘/.’ à ‘mail-chroot’.
     <doc/wiki/Chrooting.txt>. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : file-name auth-socket-path
     Chemin de socket UNIX vers le serveur d’authentification maître
     pour trouver les utilisateurs. C’est utilisé par imap (pour les
     utilisateurs partagés) et lda. La valeur par défaut est
     ‘"/var/run/dovecot/auth-userdb"’.

 -- paramètre de ‘dovecot-configuration’ : file-name mail-plugin-dir
     Répertoire où trouver les greffons. La valeur par défaut est
     ‘"/usr/lib/dovecot"’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          mail-plugins
     Liste des greffons à charger pour tous les services. Les greffons
     spécifiques à IMAP, LDA, etc. sont ajoutés à cette liste dans leur
     propre fichiers .conf. La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          mail-cache-min-mail-count
     Le nombre minimal de courriels dans une boîte aux lettres avant de
     mettre à jour le fichier de cache. Cela permet d’optimiser le
     comportement de Dovecot pour qu’il fasse moins d’écriture disque
     contre plus de lecture disque. La valeur par défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : string
          mailbox-idle-check-interval
     Lorsque la commande IDLE est lancée, la boîte aux lettres est
     vérifiée de temps en temps pour voir s’il y a de nouveaux messages
     ou d’autres changements. Ce paramètre défini le temps d’attente
     minimum entre deux vérifications. Dovecot peut aussi utilise
     dnotify, inotify et kqueue pour trouver immédiatement les
     changements. La valeur par défaut est ‘"30 secs"’.

 -- paramètre de ‘dovecot-configuration’ : boolean mail-save-crlf?
     Sauvegarder les courriels avec CR+LF plutôt que seulement LF. Cela
     permet de consommer moins de CPU en envoyant ces courriels, surtout
     avec l’appel système sendfile() de Linux et FreeBSD. Mais cela crée
     un peu plus d’utilisation du disque, ce qui peut aussi le ralentir.
     Remarquez aussi que si d’autres logiciels lisent les mbox/maildirs,
     ils peuvent se tromper dans leur traitement de ces CR
     supplémentaires et causer des problèmes. La valeur par défaut est
     ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean maildir-stat-dirs?
     Par défaut la commande LIST renvoie toutes les entrées du maildir
     qui commencent par un point. Activer cette option permet à Dovecot
     de renvoyer uniquement les entrées qui sont des répertoires. Cela
     se fait avec stat() sur chaque entrée, ce qui cause plus
     d’utilisation du disque. For systems setting struct
     ‘dirent->d_type’ this check is free and it’s done always regardless
     of this setting). La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          maildir-copy-with-hardlinks?
     Lors de la copie d’un message, le faire avec des liens en dur si
     possible. Cela améliore un peu la performance et n’a que peu de
     chance d’avoir des effets secondaires.

 -- paramètre de ‘dovecot-configuration’ : boolean
          maildir-very-dirty-syncs?
     Suppose que Dovecot est le seul MUA qui accède à Maildir : scanne
     le répertoire cur/ seulement lorsque son mtime change de manière
     inattendue ou lorsqu’il ne peut pas trouver le courriel autrement.
     La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          mbox-read-locks
     La méthode de verrouillage à utiliser pour verrouiller le boîtes
     aux lettres mbox. Il y en a quatre :

     ‘dotlock’
          Crée un fichier <mailbox>.lock. C’est la solution la plus
          ancienne et la plus sûr pour NFS. Si vous voulez utiliser
          /var/mail/, les utilisateurs auront besoin de l’accès en
          écriture à ce répertoire.
     ‘dotlock-try’
          Comme pour dotlock, mais si elle échoue à cause d’un problème
          de permission ou parce qu’il n’y a pas assez d’espace disque,
          l’ignore.
     ‘fcntl’
          Utilisez cette méthode si possible. Elle fonctionne aussi avec
          NFS si vous utilisez lockd.
     ‘flock’
          Peut ne pas exister sur tous les systèmes. Ne fonctionne pas
          avec NFS.
     ‘lockf’
          Peut ne pas exister sur tous les systèmes. Ne fonctionne pas
          avec NFS.

     Vous pouvez utiliser plusieurs méthodes de verrouillage ; dans ce
     cas l’ordre dans lequel elles sont déclarées est important pour
     éviter des interblocages si d’autres MTA/MUA utilisent aussi
     plusieurs méthodes. Certains systèmes d’exploitation ne permettent
     pas d’utiliser certaines méthodes en même temps.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          mbox-write-locks

 -- paramètre de ‘dovecot-configuration’ : string mbox-lock-timeout
     Temps d’attente maximal pour un verrou (tous les verrous) avant
     d’abandonner. La valeur par défaut est ‘"5 mins"’.

 -- paramètre de ‘dovecot-configuration’ : string
          mbox-dotlock-change-timeout
     Si le fichier dotlock existe mais que la boîte aux lettres n’est
     pas modifiée, remplacer le fichier de verrouillage après ce temps
     d’attente. La valeur par défaut est ‘"2 mins"’.

 -- paramètre de ‘dovecot-configuration’ : boolean mbox-dirty-syncs?
     Lorsqu’un mbox change ne manière inattendue, il faut le lire en
     entier pour savoir ce qui a changé. Si le mbox est assez grand cela
     peut prendre beaucoup de temps. Comme le changement est
     habituellement un simple courriel supplémentaire, il serait plus
     rapide de lire le nouveaux courriels. Si ce paramètre est activé,
     Dovecot fait cela mais revient toujours à relire le fichier mbox
     complet si le fichier n’est pas comme attendu. Le seul réel
     inconvénient à ce paramètre est que certains MUA changent les
     drapeaux des messages, et dans ce cas Dovecot ne s’en rend pas
     immédiatement compte. Remarquez qu’une synchronisation complète est
     effectuée avec les commandes SELECT, EXAMINE, EXPUNGE et CHECK. La
     valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          mbox-very-dirty-syncs?
     Comme ‘mbox-dirty-syncs’, mais ne synchronise pas complètement même
     avec les commandes SELECT, EXAMINE, EXPUNGE ou CHECK. Si l’option
     n’est pas activée, ‘mbox-dirty-syncs’ est ignorée. La valeur par
     défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean mbox-lazy-writes?
     Attendre avant d’écrire les en-têtes mbox jusqu’à la prochaine
     synchronisation des écritures (les commandes EXPUNGE et CHECK et
     quand on ferme la boîte aux lettres). C’est surtout utile pour POP3
     où les clients suppriment souvent tous les courriels.
     L’inconvénient c’est que vos changements ne sont pas immédiatement
     visibles pour les autres MUA. La valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          mbox-min-index-size
     Si la taille du fichier mbox est plus petite que cela (p. ex.
     100k), ne pas écrire de fichier d’index. Si un fichier d’index
     existe déjà il est toujours lu, mais pas mis à jour. La valeur par
     défaut est ‘0’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          mdbox-rotate-size
     Taille du fichier dbox maximale avant rotation. La valeur par
     défaut est ‘10000000’.

 -- paramètre de ‘dovecot-configuration’ : string mdbox-rotate-interval
     Âge maximum du fichier dbox avant rotation. Typiquement en jours.
     Les jours commencent à minuit, donc 1d signifie aujourd’hui, 2d
     pour hier, etc. 0 pour désactiver la vérification. La valeur par
     défaut est ‘"1d"’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          mdbox-preallocate-space?
     Lors de la création des fichiers mdbox, préallouer immédiatement
     leur taille à ‘mdbox-rotate-size’. Ce paramètre ne fonctionne
     actuellement que dans Linux avec certains systèmes de fichiers
     (ext4, xfs). La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string mail-attachment-dir
     sdbox et mdbox supportent la sauvegarde des pièces-jointes dans des
     fichiers externes, ce qui permet de les stocker une seule fois. Les
     autres moteurs ne le supportent pas pour le moment.

     ATTENTION : Cette fonctionnalité n’a pas été beaucoup testée.
     Utilisez-la à vos risques et périls.

     Racine du répertoire où stocker les pièces-jointes. Désactivé si
     vide. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          mail-attachment-min-size
     Les pièces-jointes plus petites que cela ne sont pas enregistrées à
     part. Il est aussi possible d’écrire un greffon pour désactiver
     l’enregistrement externe de certaines pièces-jointes spécifiques.
     La valeur par défaut est ‘128000’.

 -- paramètre de ‘dovecot-configuration’ : string mail-attachment-fs
     Moteur du système de fichier à utiliser pour sauvegarder les
     pièces-jointes :
     ‘posix’
          Pas de SiS (single instance storage) par Dovecot (mais cela
          peut aider la déduplication du système de fichier)
     ‘sis posix’
          SiS avec comparaison bit-à-bit immédiate pendant la sauvegarde
     ‘sis-queue posix’
          SiS avec déduplication et comparaison différées.
     La valeur par défaut est ‘"sis posix"’.

 -- paramètre de ‘dovecot-configuration’ : string mail-attachment-hash
     Format de hash à utiliser dans les noms de fichiers des
     pièces-jointes. Vous pouvez ajouter n’importe quel texte ou
     variable : ‘%{md4}’, ‘%{md5}’, ‘%{sha1}’, ‘%{sha256}’, ‘%{sha512}’,
     ‘%{size}’. Les variables peuvent être tronquées, p. ex.
     ‘%{sha256:80}’ renvoie seulement les 80 premiers bits. La valeur
     par défaut est ‘"%{sha1}"’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          default-process-limit

     La valeur par défaut est ‘100’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          default-client-limit

     La valeur par défaut est ‘1000’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          default-vsz-limit
     Limite VSZ (taille mémoire virtuelle) par défaut pour les processus
     de service. C’est surtout pour attraper et tuer les processus qui
     font fuiter la mémoire avant qu’ils ne l’utilisent en entier. La
     valeur par défaut est ‘256000000’.

 -- paramètre de ‘dovecot-configuration’ : string default-login-user
     Utilisateur de connexion utilisé en interne par les processus de
     connexion. C’est l’utilisateur avec la confiance minimale pour
     Dovecot. Il ne devrait avoir accès à rien du tout. La valeur par
     défaut est ‘"dovenull"’.

 -- paramètre de ‘dovecot-configuration’ : string default-internal-user
     Utilisateur utilisé en interne par les processus non privilégiés.
     Il devrait être différent de l’utilisateur de connexion, pour que
     les processus de connexion ne puissent pas perturber les autres
     processus. La valeur par défaut est ‘"dovecot"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl?
     Support SSL/TLS : yes, no, required. <doc/wiki/SSL.txt>. La valeur
     par défaut est ‘"required"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-cert
     Certificat SSL/TLS X.509 encodé en PEM (clef publique). La valeur
     par défaut est ‘"</etc/dovecot/default.pem"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-key
     Clef privée SSL/TLS encodée en PEM. La clef est ouverte avant
     l’abandon des privilèges root, donc laissez-la non-lisible pour les
     utilisateurs. La valeur par défaut est
     ‘"</etc/dovecot/private/default.pem"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-key-password
     Si le fichier de clef est protégé par un mot de passe, donnez-le
     ici. Autrement, donnez-le en démarrant dovecot avec le paramètre
     -p. Comme ce fichier est souvent lisible pour tout le monde, vous
     pourriez vouloir placer ce paramètre dans un autre fichier. La
     valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-ca
     Certificat de l’autorité de confiance encodé en PEM. Indiquez cette
     valeur si vous voulez utiliser ‘ssl-verify-client-cert? #t’. Le
     fichier devrait contenir les certificats de CA suivi par les CRL
     correspondants (p. ex. ‘ssl-ca </etc/ssl/certs/ca.pem’). La valeur
     par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean ssl-require-crl?
     Indique si les certificats clients doivent réussir la vérification
     du CRL. La valeur par défaut est ‘#t’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          ssl-verify-client-cert?
     Demande aux clients d’envoyer un certificat. Si vous voulez aussi
     le requérir, indiquez ‘auth-ssl-require-client-cert? #t’ dans la
     section auth. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : string
          ssl-cert-username-field
     Le champ du certificat à utiliser pour le nom d’utilisateur. Les
     choix habituels sont commonName et X500UniqueIdentifier. Vous
     devrez aussi indiquer ‘auth-ssl-username-from-cert? #t’. La valeur
     par défaut est ‘"commonName"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-min-protocol
     Version minimale de SSL à accepter. La valeur par défaut est
     ‘"TLSv1"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-cipher-list
     Méthodes de chiffrement à utiliser. La valeur par défaut est
     ‘"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH"’.

 -- paramètre de ‘dovecot-configuration’ : string ssl-crypto-device
     Moteur cryptographique SSL à utiliser. Pour les valeur valides,
     lancez « openssl engine ». La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string postmaster-address
     Adresse à utiliser pour envoyer les courriels de rejet. %d
     correspond au domaine du destinataire. La valeur par défaut est
     ‘"postmaster@%d"’.

 -- paramètre de ‘dovecot-configuration’ : string hostname
     Nom d’hôte à utiliser dans diverses parties des courriels envoyés
     (p. ex. dans Message-Id) et dans les réponses LMTP. La valeur par
     défaut est le nomdhôte@domaine réel du système. La valeur par
     défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean quota-full-tempfail?
     Si l’utilisateur dépasse le quota, renvoie un échec temporaire au
     lieu de rejeter le courriel. La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : file-name sendmail-path
     Binaire à utiliser pour envoyer des courriels. La valeur par défaut
     est ‘"/usr/sbin/sendmail"’.

 -- paramètre de ‘dovecot-configuration’ : string submission-host
     Si la valeur est non vide, envoyer les courriels à ce serveur SMTP
     hôte[:port] au lieu de sendmail. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string rejection-subject
     En-tête d’objet à utiliser pour les courriels de rejet. Vous pouvez
     utiliser les mêmes variables que pour ‘rejection-reason’
     ci-dessous. La valeur par défaut est ‘"Rejected: %s"’.

 -- paramètre de ‘dovecot-configuration’ : string rejection-reason
     Message d’erreur pour les humains dans les courriels de rejet. Vous
     pouvez utiliser ces variables :

     ‘%n’
          CRLF
     ‘%r’
          raison
     ‘%s’
          objet du courriel de départ
     ‘%t’
          destinataire
     La valeur par défaut est ‘"Your message to <%t> was automatically
     rejected:%n%r"’.

 -- paramètre de ‘dovecot-configuration’ : string recipient-delimiter
     Caractère de délimitation entre la partie locale et le détail des
     adresses de courriel. La valeur par défaut est ‘"+"’.

 -- paramètre de ‘dovecot-configuration’ : string
          lda-original-recipient-header
     En-tête où l’adresse du destinataire d’origine (l’adresse RCPT TO
     de SMTP) est récupérée si elle n’est pas disponible ailleurs. Le
     paramètre -a de dovecot-lda le remplace. L’en-tête couramment
     utilisée pour cela est X-Original-To. La valeur par défaut est
     ‘""’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          lda-mailbox-autocreate?
     Sauvegarder un courriel dans un fichier qui n’existe pas devrait-il
     le créer ? La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : boolean
          lda-mailbox-autosubscribe?
     Devrait-on aussi se souscrire aux boîtes aux lettres nouvellement
     créées ? La valeur par défaut est ‘#f’.

 -- paramètre de ‘dovecot-configuration’ : non-negative-integer
          imap-max-line-length
     Longueur maximale de la ligne de commande IMAP. Certains clients
     génèrent des lignes de commandes très longues avec des boîtes aux
     lettres énormes, donc vous pourriez avoir besoin d’augmenter cette
     limite si vous obtenez les erreurs « Too long argument » ou « IMAP
     command line too large ». La valeur par défaut est ‘64000’.

 -- paramètre de ‘dovecot-configuration’ : string imap-logout-format
     Format de la chaîne de déconnexion IMAP :
     ‘%i’
          nombre d’octets lus par le client
     ‘%o’
          nombre total d’octets envoyés au client.
     Voir ‘doc/wiki/Variables.txt’ pour une liste de toutes les
     variables utilisables. La valeur par défaut est ‘"in=%i out=%o
     deleted=%{deleted} expunged=%{expunged} trashed=%{trashed}
     hdr_count=%{fetch_hdr_count} hdr_bytes=%{fetch_hdr_bytes}
     body_count=%{fetch_body_count} body_bytes=%{fetch_body_bytes}"’.

 -- paramètre de ‘dovecot-configuration’ : string imap-capability
     Remplace la réponse CAPABILITY d’IMAP. Si la valeur commence par «
     + », ajoute les capacités données en haut des valeur par défaut (p.
     ex. +XFOO XBAR). La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string
          imap-idle-notify-interval
     Temps d’attente entre les notifications « OK Still here » lorsque
     le client est en IDLE. La valeur par défaut est ‘"2 mins"’.

 -- paramètre de ‘dovecot-configuration’ : string imap-id-send
     Noms des champs ID et de leur valeur à envoyer aux clients. « * »
     signifie la valeur par défaut. Les champs suivants ont actuellement
     des valeurs par défaut : name, version, os, os-version,
     support-url, support-email. La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : string imap-id-log
     Champs ID envoyés par le client à enregistrer. « * » signifie tout.
     La valeur par défaut est ‘""’.

 -- paramètre de ‘dovecot-configuration’ : space-separated-string-list
          imap-client-workarounds
     Contournements pour divers bogues de certains client :

     ‘delay-newmail’
          Envoi des notifications de nouveau message EXISTS/RECENT
          seulement en réponse aux commandes NOOP et CHECK. Certains
          clients les ignorent autrement, par exemple OSX Mail (< v2.1).
          Outlook Express est encore plus cassé, sans cela il peut
          montrer des erreurs de type « Le message n’est plus sur le
          serveur ». Remarquez que OE6 est toujours cassé même avec ce
          contournement si la synchronisation est à « En-têtes seulement
          ».

     ‘tb-extra-mailbox-sep’
          Thunderbird se mélange les pinceaux avec LAYOUT=fs (mbox et
          dbox) et ajoute un suffixe ‘/’ supplémentaire sur les noms des
          boîtes aux lettres. Cette option fait que dovecot ignore le
          ‘/’ supplémentaire au lieu de le traiter comme un nom de boîte
          aux lettres invalide.

     ‘tb-lsub-flags’
          Montre les drapeaux \Noselect pour les réponses LSUB avec
          LAYOUT=fs (p. ex. mbox). Cela fait que Thunderbird réalise
          qu’ils ne sont pas sélectionnables et les montre en grisé, au
          lieu de montrer un popup « non sélectionnable » après coup.
     La valeur par défaut est ‘()’.

 -- paramètre de ‘dovecot-configuration’ : string imap-urlauth-host
     Hôte autorisé dans les URL URLAUTH envoyés par les clients. « * »
     les autorise tous. La valeur par défaut est ‘""’.

   Ouf ! Tant d’options de configuration. La bonne nouvelle, c’est que
Guix a une interface complète avec le langage de configuration de
Dovecot. Cela permet non seulement de déclarer la configuration de
manière agréable, mais aussi d’offrir des capacités de réflexion : les
utilisateurs peuvent écrire du code pour inspecter et transformer les
configuration depuis Scheme.

   Cependant, vous pourriez avoir un fichier ‘dovecot.conf’ déjà tout
prêt. Dans ce cas, vous pouvez passer un objet
‘opaque-dovecot-configuration’ comme paramètre ‘#:config’ à
‘dovecot-service’. Comme son nom l’indique, une configuration opaque n’a
pas les capacités de réflexions.

   Les champs de ‘opaque-dovecot-configuration’ disponibles sont :

 -- paramètre de ‘opaque-dovecot-configuration’ : package dovecot
     Le paquet dovecot.

 -- paramètre de ‘opaque-dovecot-configuration’ : string string
     Le contenu de ‘dovecot.conf’, en tant que chaîne de caractères.

   Par exemple, si votre ‘dovecot.conf’ est simplement la chaîne vide,
vous pouvez instancier un service dovecot comme cela :

     (dovecot-service #:config
                      (opaque-dovecot-configuration
                       (string "")))

Service OpenSMTPD
.................

 -- Variable Scheme : opensmtpd-service-type
     C’est le type de service de OpenSMTPD (https://www.opensmtpd.org),
     dont la valeur devrait être un objet ‘opensmtpd-configuration’
     comme dans cet exemple :

          (service opensmtpd-service-type
                   (opensmtpd-configuration
                     (config-file (local-file "./my-smtpd.conf"))))

 -- Type de données : opensmtpd-configuration
     Type de données représentant la configuration de opensmtpd.

     ‘package’ (par défaut : OPENSMTPD)
          Objet de paquet du serveur SMTP OpenSMTPD.

     ‘config-file’ (par défaut : ‘%default-opensmtpd-file’)
          Objet simili-fichier du fichier de configuration de OpenSMTPD
          à utiliser. Par défaut il écoute sur l’interface de boucle
          locale et accepte les courriels des utilisateurs et des démons
          de la machine locale, et autorise l’envoi de courriels à des
          serveurs distants. Lancez ‘man smtpd.conf’ pour plus
          d’information.

Service Exim
............

 -- Variable Scheme : exim-service-type
     C’est le type de l’agent de transfert de courriel (MTA) Exim
     (https://exim.org), dont la valeur devrait être un objet
     ‘exim-configuration’ comme dans cet exemple :

          (service exim-service-type
                   (exim-configuration
                     (config-file (local-file "./my-exim.conf"))))

   Pour utilise le service ‘exim-service-type’ vous devez aussi avoir un
service ‘mail-aliases-service-type’ dans votre ‘operating-system’ (même
sans alias).

 -- Type de données : exim-configuration
     Type de données représentant la configuration d’exim.

     ‘package’ (par défaut : EXIM)
          Objet de paquet du serveur Exim.

     ‘config-file’ (par défaut : ‘#f’)
          Objet simili-fichier du fichier de configuration d’Exim à
          utiliser. Si sa valeur est ‘#f’ alors le service utilisera la
          configuration par défaut du paquet fournit dans ‘package’. Le
          fichier de configuration qui en résulte est chargé après avoir
          mis en place les variables de configuration ‘exim_user’ et
          ‘exim_group’.

Service Getmail
...............

 -- Variable Scheme : getmail-service-type
     C’est le type du service de récupération de courriels Getmail
     (http://pyropus.ca/software/getmail/), dont la valeur devrait être
     un objet ‘getmail-configuration’.

   Les champs de ‘getmail-configuration’ disponibles sont :

 -- paramètre de ‘getmail-configuration’ : symbol name
     Un symbole pour identifier le service getmail.

     La valeur par défaut est ‘"unset"’.

 -- paramètre de ‘getmail-configuration’ : package package
     Le paquet getmail à utiliser.

 -- paramètre de ‘getmail-configuration’ : string user
     L’utilisateur qui lance getmail.

     La valeur par défaut est ‘"getmail"’.

 -- paramètre de ‘getmail-configuration’ : string group
     Le groupe qui lance getmail.

     La valeur par défaut est ‘"getmail"’.

 -- paramètre de ‘getmail-configuration’ : string directory
     Le répertoire getmail à utiliser.

     La valeur par défaut est ‘"/var/lib/getmail/default"’.

 -- paramètre de ‘getmail-configuration’ : getmail-configuration-file
          rcfile
     Le fichier de configuration de getmail à utiliser.

     Les champs de ‘getmail-configuration-file’ disponibles sont :

      -- paramètre de ‘getmail-configuration-file’ :
               getmail-retriever-configuration retriever
          Le compte de courriel duquel récupérer les courriel, et comme
          accéder à ce compte.

          Les champs de ‘getmail-retriever-configuration’ disponibles
          sont :

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    type
               Le type de récupérateur de courriel à utiliser. Des
               valeurs valides sont ‘passwd’ et ‘static’.

               La valeur par défaut est ‘"SimpleIMAPSSLRetriever"’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    server
               Utilisateur avec lequel se connecter au serveur de
               courriel.

               La valeur par défaut est ‘unset’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    username
               Utilisateur avec lequel se connecter au serveur de
               courriel.

               La valeur par défaut est ‘unset’.

           -- paramètre de ‘getmail-retriever-configuration’ :
                    non-negative-integer port
               Numéro de port sur lequel se connecter.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    password
               Remplace des champs de passwd.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-retriever-configuration’ : list
                    password-command
               Remplace des champs de passwd.

               La valeur par défaut est ‘()’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    keyfile
               Fichier de clés au format PEM pour la négociation TLS.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    certfile
               Fichier de certificat au format PEM à utiliser pour la
               négociation TLS.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-retriever-configuration’ : string
                    ca-certs
               Certificats d’autorité à utiliser.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-retriever-configuration’ :
                    parameter-alist extra-parameters
               Paramètres supplémentaires pour le récupérateur.

               La valeur par défaut est ‘()’.

      -- paramètre de ‘getmail-configuration-file’ :
               getmail-destination-configuration destination
          Que faire avec les message récupérés.

          Les champs de ‘getmail-destination-configuration’ disponibles
          sont :

           -- paramètre de ‘getmail-destination-configuration’ : string
                    type
               Le type de destination des courriels. Des valeurs valides
               sont ‘Mailldir’, ‘Mboxrd’ et ‘MDA external’.

               La valeur par défaut est ‘unset’.

           -- paramètre de ‘getmail-destination-configuration’ :
                    string-or-filelike path
               L’option de chemin pour la destination du courriel. Le
               comportement dépend du type choisi.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-destination-configuration’ :
                    parameter-alist extra-parameters
               Paramètres supplémentaires pour la destination

               La valeur par défaut est ‘()’.

      -- paramètre de ‘getmail-destination-configuration’ :
               getmail-options-configuration options
          Configurer getmail.

          Les champs de ‘getmail-options-configuration’ disponibles sont
          :

           -- paramètre de ‘getmail-options-configuration’ :
                    non-negative-integer verbose
               Si la valeur est ‘0’, getmail n’affichera que les
               avertissements et les erreurs. Une valeur de ‘1’ signifie
               que des messages à propos de la récupération et de la
               suppression de messages seront affichés. Si la valeur est
               ‘2’, getmail affichera des messages pour chacune de ses
               actions.

               La valeur par défaut est ‘1’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    read-all
               Si la valeur est vraie, getmail récupérera tous les
               messages disponibles. Sinon, il récupérera les message
               qu’il n’a pas déjà vu.

               La valeur par défaut est ‘#t’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    delete
               Si la valeur est vraie, les messages seront supprimées du
               serveur après les avoir récupérés et les avoir livrés
               correctement. Sinon, les messages seront laissés sur le
               serveur.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘getmail-options-configuration’ :
                    non-negative-integer delete-after
               Getmail supprimera les messages après un certain nombre
               de jours après les avoir vu, s’ils ont été livrés. Cela
               signifie que les messages resteront sur le serveur
               quelques jours après qu’ils ont été livrés. Une valeur de
               ‘0’ désactive cette fonctionnalité.

               La valeur par défaut est ‘0’.

           -- paramètre de ‘getmail-options-configuration’ :
                    non-negative-integer delete-bigger-than
               Supprime les messages plus grands que cette quantité
               d’octets après les avoir récupérés, même si les options
               delete et delete-after sont désactivées. La valeur ‘0’
               permet de désactiver cette fonctionnalité.

               La valeur par défaut est ‘0’.

           -- paramètre de ‘getmail-options-configuration’ :
                    non-negative-integer max-bytes-per-session
               Récupère les message jusqu’à ce nombre d’octets avant de
               fermer la session avec le serveur. La valeur ‘0’
               désactive cette fonctionnalité.

               La valeur par défaut est ‘0’.

           -- paramètre de ‘getmail-options-configuration’ :
                    non-negative-integer max-message-size
               Ne récupère pas les messages plus grands que cette valeur
               en octets. La valeur ‘0’ désactive cette fonctionnalité.

               La valeur par défaut est ‘0’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    delivered-to
               Si la valeur est vraie, getmail ajoutera un en-tête
               Delivered-To aux messages.

               La valeur par défaut est ‘#t’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    received
               Si la valeur est indiquée, getmail ajoute un en-tête
               Received aux messages.

               La valeur par défaut est ‘#t’.

           -- paramètre de ‘getmail-options-configuration’ : string
                    message-log
               Getmail enregistrera un journal de ses actions dans le
               fichier ainsi nommé. La valeur ‘""’ désactive la
               fonctionnalité.

               La valeur par défaut est ‘""’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    message-log-syslog
               Si la valeur est vraie, getmail enregistrera un journal
               de ses actions en utilisant le démon de journalisation du
               système.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘getmail-options-configuration’ : boolean
                    message-log-verbose
               Si la valeur est vraie, getmail enregistrera un journal
               de ses action à propos des messages non-récupérés et la
               raison pour laquelle ils n’ont pas été récupérés, en plus
               de lignes d’informations sur le début et la fin des
               opérations.

               La valeur par défaut est ‘#f’.

           -- paramètre de ‘getmail-options-configuration’ :
                    parameter-alist extra-parameters
               Options supplémentaires à inclure.

               La valeur par défaut est ‘()’.

 -- paramètre de ‘getmail-options-configuration’ : list idle
     Une liste de boites de courriels pour lesquels getmail devrait
     attendre une notification de nouveaux messages sur le serveur. Cela
     demande que le serveur prenne en charge l’extension IDLE.

     La valeur par défaut est ‘()’.

 -- paramètre de ‘getmail-configuration’ : list environment-variables
     Une liste de variables d’environnement à définir pour getmail.

     La valeur par défaut est ‘()’.

Service d’alias de courriel
...........................

 -- Variable Scheme : mail-aliases-service-type
     C’est le type de service qui fournit ‘/etc/aliases’ et qui spécifie
     comment délivrer les courriels aux utilisateurs du système.

          (service mail-aliases-service-type
                   '(("postmaster" "bob")
                     ("bob" "bob@example.com" "bob@example2.com")))

   La configuration pour un service ‘mail-aliases-service-type’ est une
liste associative qui dénote comment délivrer les courriels qui arrivent
au système. Chaque entrée est de la forme ‘(alias adresses ...)’ avec
‘alias’ qui spécifie l’alias local et ‘adresses’ qui spécifie où
délivrer les courriels de cet utilisateur.

   Les alias n’ont pas besoin de correspondre à des utilisateurs locaux
du système. Dans l’exemple au-dessus, il n’y a pas besoin d’une entrée
‘postmaster’ dans la liste ‘user-accounts’ du ‘operating-system’ pour
délivrer les courriels à destination de ‘postmaster’ à ‘bob’ (qui
ensuite délivrerait le courriel à ‘bob@example.com’ et
‘bob@example2.com’).

Démon IMAP4 GNU Mailutils
.........................

 -- Variable Scheme : imap4d-service-type
     C’est le type du démon IMAP4 GNU Mailutils, dont la valeur devrait
     être un objet ‘imap4d-configuration’ comme dans cet exemple :

          (service imap4d-service-type
                   (imap4d-configuration
                     (config-file (local-file "imap4d.conf"))))

 -- Type de données : imap4d-configuration
     Type de données représentant la configuration de ‘imap4d’.

     ‘package’ (par défaut : ‘mailutils’)
          Le paquet qui fournit ‘imap4d’.

     ‘config-file’ (par défaut : ‘%default-imap4d-config-file’)
          Objet simili-fichier du fichier de configuration à utiliser.
          Par défaut, la configuration fera écouter sur le port TCP 143
          sur ‘localhost’. *Note (mailutils)Conf-imap4d::, pour les
          détails.

Service Radicale
................

 -- Variable Scheme : radicale-service-type
     C’est le type du service de récupération de courriels Radicale
     (https://radicale.org), dont la valeur devrait être un objet
     ‘radicale-configuration’.

 -- Type de données : radicale-configuration
     Type de données représentant la configuration de ‘radicale’.

     ‘package’ (par défaut : ‘radicale’)
          Le paquet qui fournit ‘radicale’.

     ‘config-file’ (par défaut : ‘%default-radicale-config-file’)
          Objet simili-fichier du fichier de configuration à utiliser.
          Par défaut, la configuration fera écouter sur le port TCP 5232
          sur ‘localhost’ et utiliser le fichier ‘htpasswd’ dans
          ‘/var/lib/radicale/users’ sans chiffrement (‘plain’).


File: guix.fr.info,  Node: Services de messagerie,  Next: Services de téléphonie,  Prev: Services de courriels,  Up: Services

10.8.12 Services de messagerie
------------------------------

Le module ‘(gnu services messaging)’ fournit des définitions de services
Guix pour les services de messageries instantanées. Actuellement il
fournit les services suivants :

Service Prosody
...............

 -- Variable Scheme : prosody-service-type
     C’est le type pour le le serveur de communication XMPP Prosody
     (https://prosody.im). Sa valeur doit être un enregistrement
     ‘prosody-configuration’ comme dans cet exemple :

          (service prosody-service-type
                   (prosody-configuration
                    (modules-enabled (cons* "groups" "mam" %default-modules-enabled))
                    (int-components
                     (list
                      (int-component-configuration
                       (hostname "conference.example.net")
                       (plugin "muc")
                       (mod-muc (mod-muc-configuration)))))
                    (virtualhosts
                     (list
                      (virtualhost-configuration
                       (domain "example.net"))))))

     Voir plus bas pour des détails sur ‘prosody-configuration’.

   Par défaut, Prosody n’a pas besoin de beaucoup de configuration. Seul
un champ ‘virtualhosts’ est requis : il spécifie le domaine que vous
voulez voir Prosody servir.

   Vous pouvez effectuer plusieurs vérifications de la configuration
générée avec la commande ‘prosodyctl check’.

   Prosodyctl vous aidera aussi à importer des certificats du répertoire
‘letsencrypt’ pour que l’utilisateur ‘prosody’ puisse y accéder. Voir
<https://prosody.im/doc/letsencrypt>.

     prosodyctl --root cert import /etc/letsencrypt/live

   Les paramètres de configuration disponibles sont les suivants. Chaque
définition des paramètres est précédé par son type ; par exemple,
‘string-list foo’ indique que le paramètre ‘foo’ devrait être spécifié
comme une liste de chaînes de caractères. Les types précédés de ‘maybe-’
signifient que le paramètre n’apparaîtra pas dans ‘prosody.cfg.lua’
lorsque sa valeur est ‘'disabled’.

   Il y a aussi une manière de spécifier la configuration en tant que
chaîne de caractères si vous avez un vieux fichier ‘prosody.cfg.lua’ que
vous voulez porter depuis un autre système ; voir la fin pour plus de
détails.

   Le type ‘file-object’ désigne soit un objet simili-fichier (*note
file-like objects: G-Expressions.), soit un nom de fichier.

   Les champs de ‘prosody-configuration’ disponibles sont :

 -- paramètre de ‘prosody-configuration’ : package prosody
     Le paquet Prosody.

 -- paramètre de ‘prosody-configuration’ : file-name data-path
     Emplacement du répertoire de stockage des données de Prosody. Voir
     <https://prosody.im/doc/configure>. La valeur par défaut est
     ‘"/var/lib/prosody"’.

 -- paramètre de ‘prosody-configuration’ : file-object-list plugin-paths
     Répertoires de greffons supplémentaires. Ils sont analysés dans
     l’ordre spécifié. Voir <https://prosody.im/doc/plugins_directory>.
     La valeur par défaut est ‘()’.

 -- paramètre de ‘prosody-configuration’ : file-name certificates
     Chaque hôte virtuel et composant a besoin d’un certificat pour que
     les clients et les serveurs puissent vérifier son identité. Prosody
     chargera automatiquement les clefs et les certificats dans le
     répertoire spécifié ici. La valeur par défaut est
     ‘"/etc/prosody/certs"’.

 -- paramètre de ‘prosody-configuration’ : string-list admins
     C’est une liste des comptes administrateurs de ce serveur.
     Remarquez que vous devez créer les comptes séparément. Voir
     <https://prosody.im/doc/admins> et
     <https://prosody.im/doc/creating_accounts>. Par exemple : ‘(admins
     '("user1@example.com" "user2@example.net"))’. La valeur par défaut
     est ‘()’.

 -- paramètre de ‘prosody-configuration’ : boolean use-libevent?
     Active l’utilisation de libevent pour de meilleures performances
     sous une forte charge. Voir <https://prosody.im/doc/libevent>. La
     valeur par défaut est ‘#f’.

 -- paramètre de ‘prosody-configuration’ : module-list modules-enabled
     C’est la liste des modules que Prosody chargera au démarrage. Il
     cherchera ‘mod_modulename.lua’ dans le répertoire des greffons,
     donc assurez-vous qu’il existe aussi. La documentation des modules
     se trouve sur <https://prosody.im/doc/modules>. La valeur par
     défaut est ‘("roster" "saslauth" "tls" "dialback" "disco" "carbons"
     "private" "blocklist" "vcard" "version" "uptime" "time" "ping"
     "pep" "register" "admin_adhoc")’.

 -- paramètre de ‘prosody-configuration’ : string-list modules-disabled
     ‘"offline"’,‘"c2s"’ et ‘"s2s"’ sont chargés automatiquement, mais
     si vous voulez les désactiver, ajoutez-les à cette liste. La valeur
     par défaut est ‘()’.

 -- paramètre de ‘prosody-configuration’ : file-object groups-file
     Chemin vers un fichier texte où les groupes partagés sont définis.
     Si ce chemin est vide alors ‘mod_groups’ ne fait rien. Voir
     <https://prosody.im/doc/modules/mod_groups>. La valeur par défaut
     est ‘"/var/lib/prosody/sharedgroups.txt"’.

 -- paramètre de ‘prosody-configuration’ : boolean allow-registration?
     Désactive la création de compte par défaut, pour la sécurité. Voir
     <https://prosody.im/doc/creating_accounts>. La valeur par défaut
     est ‘#f’.

 -- paramètre de ‘prosody-configuration’ : maybe-ssl-configuration ssl
     Ce sont les paramètres liés à SSL/TLS. La plupart sont désactivés
     pour pouvoir utiliser les paramètres par défaut de Prosody. Si vous
     ne comprenez pas complètement ces options, ne les ajoutez pas à
     votre configuration, il est aisé de diminuer la sécurité de votre
     serveur en les modifiant. Voir
     <https://prosody.im/doc/advanced_ssl_config>.

     Les champs de ‘ssl-configuration’ disponibles sont :

      -- paramètre de ‘ssl-configuration’ : maybe-string protocol
          Cela détermine la poignée de main à utiliser.

      -- paramètre de ‘ssl-configuration’ : maybe-file-name key
          Chemin vers votre fichier de clef privée.

      -- paramètre de ‘ssl-configuration’ : maybe-file-name certificate
          Chemin vers votre fichier de certificat.

      -- paramètre de ‘ssl-configuration’ : file-object capath
          Chemin vers le répertoire contenant les certificats racines
          que vous voulez voir Prosody utiliser lors de la vérification
          des certificats des serveurs distants. La valeur par défaut
          est ‘"/etc/ssl/certs"’.

      -- paramètre de ‘ssl-configuration’ : maybe-file-object cafile
          Chemin vers un fichier contenant les certificats racines
          auxquels Prosody devra faire confiance. Comme ‘capath’ mais
          avec les certificats concaténés ensemble.

      -- paramètre de ‘ssl-configuration’ : maybe-string-list verify
          Une liste d’options de vérification (qui correspondent
          globalement aux drapeaux ‘set_verify()’ d’OpenSSL).

      -- paramètre de ‘ssl-configuration’ : maybe-string-list options
          Une liste d’options générales liées à SSL/TLS. Elles
          correspondent globalement à ‘set_options()’ d’OpenSSL. Pour
          une liste complète des options disponibles dans LuaSec, voir
          les sources de LuaSec.

      -- paramètre de ‘ssl-configuration’ : maybe-non-negative-integer
               depth
          Longueur maximale d’une chaîne d’autorités de certifications
          avant la racine.

      -- paramètre de ‘ssl-configuration’ : maybe-string ciphers
          Une chaîne de méthodes de chiffrement OpenSSL. Cela choisi les
          méthodes de chiffrement que Prosody offrira aux clients, et
          dans quel ordre de préférence.

      -- paramètre de ‘ssl-configuration’ : maybe-file-name dhparam
          Un chemin vers un fichier contenant les paramètres pour
          l’échange de clef Diffie-Hellman. Vous pouvez créer un tel
          fichier avec : ‘openssl dhparam -out
          /etc/prosody/certs/dh-2048.pem 2048’

      -- paramètre de ‘ssl-configuration’ : maybe-string curve
          Courbe pour Diffie-Hellman sur courbe elliptique. La valeur
          par défaut de Prosody est ‘"secp384r1"’.

      -- paramètre de ‘ssl-configuration’ : maybe-string-list verifyext
          Une liste d’options de vérification « supplémentaires ».

      -- paramètre de ‘ssl-configuration’ : maybe-string password
          Mot de passe pour les clefs privées chiffrées.

 -- paramètre de ‘prosody-configuration’ : boolean
          c2s-require-encryption?
     S’il faut forcer toutes les connexions client-serveur à être
     chiffrées ou non. Voir <https://prosody.im/doc/modules/mod_tls>. La
     valeur par défaut est ‘#f’.

 -- paramètre de ‘prosody-configuration’ : string-list
          disable-sasl-mechanisms
     Ensemble de mécanismes qui ne seront jamais offerts. Voir
     <https://prosody.im/doc/modules/mod_saslauth>. La valeur par défaut
     est ‘("DIGEST-MD5")’.

 -- paramètre de ‘prosody-configuration’ : boolean
          s2s-require-encryption?
     S’il faut forcer toutes les connexion serveur-serveur à être
     chiffrées ou non. Voir <https://prosody.im/doc/modules/mod_tls>. La
     valeur par défaut est ‘#f’.

 -- paramètre de ‘prosody-configuration’ : boolean s2s-secure-auth?
     S’il faut requérir le chiffrement et l’authentification du
     certificat. Cela fournit une sécurité idéale, mais demande que les
     serveurs avec lesquels vous communiquez supportent le chiffrement
     ET présentent un certificat valide et de confiance. Voir
     <https://prosody.im/doc/s2s#security>. La valeur par défaut est
     ‘#f’.

 -- paramètre de ‘prosody-configuration’ : string-list
          s2s-insecure-domains
     Beaucoup de serveurs ne supportent pas le chiffrement ou ont un
     certificat invalide ou auto-signé. Vous pouvez lister les domaines
     ici qui n’ont pas besoin de s’authentifier avec des certificats.
     Ils seront authentifiés par DNS. Voir
     <https://prosody.im/doc/s2s#security>. La valeur par défaut est
     ‘()’.

 -- paramètre de ‘prosody-configuration’ : string-list
          s2s-secure-domains
     Même si vous laissez ‘s2s-secure-auth?’ désactivé, vous pouvez
     toujours demander un certificat valide pour certains domaine en
     spécifiant la liste ici. Voir
     <https://prosody.im/doc/s2s#security>. La valeur par défaut est
     ‘()’.

 -- paramètre de ‘prosody-configuration’ : string authentication
     Choisi le moteur d’authentification à utiliser. Le moteur par
     défaut stocke les mots de passes en texte clair et utilise la
     configuration de stockage des données de Prosody pour stocker les
     données authentifiées. Si vous n’avez pas confiance dans le
     serveur, lisez
     <https://prosody.im/doc/modules/mod_auth_internal_hashed> pour plus
     d’information sur l’utilisation du moteur hashed. Voir aussi
     <https://prosody.im/doc/authentication>. La valeur par défaut est
     ‘"internal_plain"’.

 -- paramètre de ‘prosody-configuration’ : maybe-string log
     Indique les options de journalisation. La configuration avancée des
     journaux n’est pas encore supportée par le service Prosody. Voir
     <https://prosody.im/doc/logging>. La valeur par défaut est
     ‘"*syslog"’.

 -- paramètre de ‘prosody-configuration’ : file-name pidfile
     Fichier où écrire le PID. Voir
     <https://prosody.im/doc/modules/mod_posix>. La valeur par défaut
     est ‘"/var/run/prosody/prosody.pid"’.

 -- paramètre de ‘prosody-configuration’ : maybe-non-negative-integer
          http-max-content-size
     Taille maximum autorisée pour le corps HTTP (en octets).

 -- paramètre de ‘prosody-configuration’ : maybe-string
          http-external-url
     Certains modules exposent leur propre URL de diverses manières.
     Cette URL est construite à partir du protocole, de l’hôte et du
     port utilisé. Si Prosody se trouve derrière un proxy, l’URL
     publique sera ‘http-external-url’ à la place. Voir
     <https://prosody.im/doc/http#external_url>.

 -- paramètre de ‘prosody-configuration’ :
          virtualhost-configuration-list virtualhosts
     Un hôte dans Prosody est un domaine sur lequel les comptes
     utilisateurs sont créés. Par exemple si vous voulez que vos
     utilisateurs aient une adresse comme ‘"john.smith@example.com"’
     vous devrez ajouter un hôte ‘"example.com"’. Toutes les options de
     cette liste seront appliquées uniquement à cet hôte.

     Remarque : le nom d’hôte _virtuel_ est utilisé dans la
     configuration pour éviter de le confondre avec le nom d’hôte
     physique réel de la machine qui héberge Prosody. Une seule instance
     de Prosody peut servir plusieurs domaines, chacun défini comme une
     entrée VirtualHost dans la configuration de Prosody. Ainsi, un
     serveur qui n’héberge qu’un seul domaine n’aura qu’une entrée
     VirtualHost.

     Voir <https://prosody.im/doc/configure#virtual_host_settings>.

     Les champs de ‘virtualhost-configuration’ disponibles sont :

     tous ces champs de ‘prosody-configuration’ : ‘admins’,
     ‘use-libevent?’, ‘modules-enabled’, ‘modules-disabled’,
     ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘s2s-require-encryption?’, ‘s2s-secure-auth?’,
     ‘s2s-insecure-domains’, ‘s2s-secure-domains’, ‘authentication’,
     ‘log’, ‘http-max-content-size’, ‘http-external-url’, ‘raw-content’,
     plus :
      -- paramètre de ‘virtualhost-configuration’ : string domain
          Domaine que vous souhaitez que Prosody serve.

 -- paramètre de ‘prosody-configuration’ :
          int-component-configuration-list int-components
     Les composant sont des services supplémentaires qui sont
     disponibles pour les clients, habituellement sur un sous-domaine du
     serveur principal (comme ‘"mycomponent.example.com"’). Des exemples
     de composants sont des serveurs de chatroom, des répertoires
     utilisateurs ou des passerelles vers d’autres protocoles.

     Les composants internes sont implémentés dans des greffons
     spécifiques à Prosody. Pour ajouter un composant interne, vous
     n’avez qu’à remplir le champ de nom d’hôte et le greffon que vous
     voulez utiliser pour le composant.

     Voir <https://prosody.im/doc/components>. La valeur par défaut est
     ‘()’.

     Les champs de ‘int-component-configuration’ disponibles sont :

     tous ces champs de ‘prosody-configuration’ : ‘admins’,
     ‘use-libevent?’, ‘modules-enabled’, ‘modules-disabled’,
     ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘s2s-require-encryption?’, ‘s2s-secure-auth?’,
     ‘s2s-insecure-domains’, ‘s2s-secure-domains’, ‘authentication’,
     ‘log’, ‘http-max-content-size’, ‘http-external-url’, ‘raw-content’,
     plus :
      -- paramètre de ‘int-component-configuration’ : string hostname
          Nom d’hôte du composant.

      -- paramètre de ‘int-component-configuration’ : string plugin
          Greffon que vous voulez utiliser pour ce composant.

      -- paramètre de ‘int-component-configuration’ :
               maybe-mod-muc-configuration mod-muc
          Le chat multi-utilisateur (MUC) est le modules de Prosody qui
          vous permet de créer des chatrooms/conférences pour les
          utilisateurs XMPP.

          Des informations générales sur la configuration des salons de
          discussion multiutilisateurs se trouvent dans la documentation
          sur les salons (<https://prosody.im/doc/chatrooms>), que vous
          devriez lire si vous découvrez les salons XMPP.

          Voir aussi <https://prosody.im/doc/modules/mod_muc>.

          Les champs de ‘mod-muc-configuration’ disponibles sont :

           -- paramètre de ‘mod-muc-configuration’ : string name
               Le nom à renvoyer dans les réponses de découverte de
               services. La valeur par défaut est ‘"Prosody Chatrooms"’.

           -- paramètre de ‘mod-muc-configuration’ : string-or-boolean
                    restrict-room-creation
               Si la valeur est ‘#t’, cela permettra uniquement aux
               admins de créer de nouveaux salons. Sinon n’importe qui
               peut créer un salon. La valeur ‘"local"’ restreint la
               création aux utilisateurs du domaine parent du service.
               P. ex. ‘user@example.com’ peut créer des salons sur
               ‘rooms.example.com’. La valeur ‘"admin"’ restreint ce
               service aux administrateurs. La valeur par défaut est
               ‘#f’.

           -- paramètre de ‘mod-muc-configuration’ :
                    non-negative-integer max-history-messages
               Nombre maximum de messages d’historique qui seront
               envoyés aux membres qui viennent de rejoindre le salon.
               La valeur par défaut est ‘20’.

 -- paramètre de ‘prosody-configuration’ :
          ext-component-configuration-list ext-components
     Les composants externes utilisent XEP-0114, que la plupart des
     composants supportent. Pour ajouter un composant externe, vous
     remplissez simplement le champ de nom d’hôte. Voir
     <https://prosody.im/doc/components>. La valeur par défaut est ‘()’.

     Les champs de ‘ext-component-configuration’ disponibles sont :

     tous ces champs de ‘prosody-configuration’ : ‘admins’,
     ‘use-libevent?’, ‘modules-enabled’, ‘modules-disabled’,
     ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘s2s-require-encryption?’, ‘s2s-secure-auth?’,
     ‘s2s-insecure-domains’, ‘s2s-secure-domains’, ‘authentication’,
     ‘log’, ‘http-max-content-size’, ‘http-external-url’, ‘raw-content’,
     plus :
      -- paramètre de ‘ext-component-configuration’ : string
               component-secret
          Mot de passe que le composant utilisera pour s’authentifier.

      -- paramètre de ‘ext-component-configuration’ : string hostname
          Nom d’hôte du composant.

 -- paramètre de ‘prosody-configuration’ : non-negative-integer-list
          component-ports
     Ports sur lesquels Prosody écoutera les connexions des composants.
     La valeur par défaut est ‘(5347)’.

 -- paramètre de ‘prosody-configuration’ : string component-interface
     Interface sur laquelle Prosody écoutera les connexions des
     composants. La valeur par défaut est ‘"127.0.0.1"’.

 -- paramètre de ‘prosody-configuration’ : maybe-raw-content raw-content
     Contenu brut qui sera ajouté au fichier de configuration.

   Il se peut que vous ayez juste envie de lancer un fichier
‘prosody.cfg.lua’ directement. Dans ce cas, vous pouvez passer un
enregistrement ‘opaque-prosody-configuration’ comme valeur à
‘prosody-service-type’. Comme son nom l’indique, une configuration
opaque n’a pas de capacités de réflexion simples. Les champs disponibles
de ‘opaque-prosody-configuration’ sont :

 -- paramètre de ‘opaque-prosody-configuration’ : package prosody
     Le paquet prosody.

 -- paramètre de ‘opaque-prosody-configuration’ : string prosody.cfg.lua
     Le contenu de ‘prosody.cfg.lua’ à utiliser.

   Par exemple, si votre ‘prosody.cfg.lua’ est juste la chaîne vide,
vous pouvez instancier un service prosody comme ceci :

     (service prosody-service-type
              (opaque-prosody-configuration
               (prosody.cfg.lua "")))

Service BitlBee
...............

BitlBee (https://bitlbee.org) est une passerelle qui fournit une
interface IRC vers une variété de protocoles de messagerie instantanée
comme XMPP.

 -- Variable Scheme : bitlbee-service-type
     C’est le type de service pour le démon de passerelle IRC BitlBee
     (https://bitlbee.org). Sa valeur est un ‘bitlbee-configuration’
     (voir plus bas).

     Pour que BitlBee écoute sur le port 6667 sur localhost, ajoutez
     cette ligne à vos services :

          (service bitlbee-service-type)

 -- Type de données : bitlbee-configuration
     C’est la configuration de BitlBee, avec les champs suivants :

     ‘interface’ (par défaut : ‘"127.0.0.1"’)
     ‘port’ (par défaut : ‘6667’)
          Écoute sur l’interface réseau correspondant à l’adresse IP
          dans INTERFACE, sur PORT.

          Lorsque INTERFACE vaut ‘127.0.0.1’, seuls les clients locaux
          peuvent se connecter ; lorsqu’elle vaut ‘0.0.0.0’, les
          connexions peuvent venir de n’importe quelle interface réseau.

     ‘bitlbee’ (par défaut : ‘bitlbee’)
          Le paquet BitlBee à utiliser.

     ‘plugins’ (par défaut : ‘'()’)
          Liste des paquets de greffons à utiliser — p. ex.
          ‘bitlbee-discord’.

     ‘extra-settings’ (par défaut : ‘""’)
          Partie de configuration ajoutée telle-quelle au fichier de
          configuration de BitlBee.

Service Quassel
...............

Quassel (https://quassel-irc.org/) est un client IRC distribué, ce qui
signifie qu’un client ou plus peuvent s’attacher et se détacher du cœur
central.

 -- Variable Scheme : quassel-service-type
     C’est le type de service pour le démon IRC Quassel
     (https://quassel-irc.org/). Sa valeur est un
     ‘quassel-configuration’ (voir plus bas).

 -- Type de données : quassel-configuration
     C’est la configuration de Quassel, avec les champs suivants :

     ‘quassel’ (par défaut : ‘quassel’)
          Le paquet Quassel à utiliser.

     ‘interface’ (par défaut : ‘"::,0.0.0.0"’)
     ‘port’ (par défaut : ‘4242’)
          Écoute sur les interfaces réseau correspondant à l’adresse
          IPv4 ou IPv6 des interfaces spécifiées dans INTERFACE, une
          liste de chaînes délimitées par des virgules, sur PORT.

     ‘loglevel’ (par défaut : ‘"info"’)
          Le niveau de journalisation souhaité. Les valeurs acceptées
          sont « Debug », « Info », « Warning » et « Error ».


File: guix.fr.info,  Node: Services de téléphonie,  Next: Services de partage de fichiers,  Prev: Services de messagerie,  Up: Services

10.8.13 Services de téléphonie
------------------------------

Cette section décrit comment configurer et lancer un serveur Murmur.
Murmur est le serveur de la suite de voix-sur-IP (VoIP) Mumble
(https://mumble.info).

 -- Type de données : murmur-configuration
     Le type de service pour le serveur Murmur. Voici un exemple de
     configuration :

          (service murmur-service-type
                   (murmur-configuration
                    (welcome-text
                      "Bienvenue sur ce serveur Mumble qui tourne sur Guix !")
                    (cert-required? #t) ;désactive les connections par mot de passe
                    (ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem")
                    (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem")))

     Après avoir reconfiguré votre système, vous pouvez manuellement
     indiquer le mot de passe ‘SuperUser’ de murmur avec la commande qui
     s’affiche pendant la phase d’activation.

     Il est recommandé d’enregistrer un compte utilisateur Mumble normal
     et de lui donner les droits admin ou modérateur. Vous pouvez
     utiliser le client ‘mumble’ pour vous connecter en tant que nouvel
     utilisateur normal, vous enregistrer et vous déconnecter. Pour
     l’étape suivante, connectez-vous avec le nom ‘SuperUser’ en
     utilisant le mot de passe ‘SuperUser’ que vous avez indiqué
     précédemment et accordez les droits administrateur ou modérateur à
     vous utilisateur mumble nouvellement enregistré et créez quelques
     salons.

     Les champs de ‘murmur-configuration’ disponibles sont :

     ‘package’ (par défaut : ‘mumble’)
          Paquet qui contient ‘bin/murmurd’.

     ‘user’ (par défaut : ‘"murmur"’)
          Utilisateur qui lancera le serveur Murmur.

     ‘group’ (par défaut : ‘"murmur"’)
          Groupe de l’utilisateur qui lancera le serveur Murmur.

     ‘port’ (par défaut : ‘64738’)
          Port sur lequel le serveur écoutera.

     ‘welcome-text’ (par défaut : ‘""’)
          Texte de bienvenue envoyé aux clients lors de leur connexion.

     ‘server-password’ (par défaut : ‘""’)
          Mot de passe que les clients devront entrer pour se connecter.

     ‘max-users’ (par défaut : ‘100’)
          Nombre maximum d’utilisateurs qui peuvent se connecter à ce
          serveur en même temps.

     ‘max-user-bandwidth’ (par défaut : ‘#f’)
          Trafic de voix maximum qu’un utilisateur peut envoyer par
          seconde.

     ‘database-file’ (par défaut : ‘"/var/lib/murmur/db.sqlite"’)
          Nom de fichier de la base de données sqlite. L’utilisateur du
          service deviendra propriétaire du répertoire.

     ‘log-file’ (par défaut : ‘"/var/log/murmur/murmur.log"’)
          Nom du fichier de journal. L’utilisateur du service deviendra
          propriétaire du répertoire.

     ‘autoban-attempts’ (par défaut : ‘10’)
          Nombre maximum de connexions qu’un utilisateur peut faire
          pendant ‘autoban-timeframe’ sans être banni automatiquement
          pour ‘autoban-time’.

     ‘autoban-timeframe’ (par défaut : ‘120’)
          Durée du temps pendant lequel le nombre de connexions est
          compté.

     ‘autoban-time’ (par défaut : ‘300’)
          Durée du bannissement automatique en secondes.

     ‘opus-threshold’ (par défaut : ‘100’)
          Pourcentage des clients qui doivent supporter opus avant de
          passer sur le codec audio opus.

     ‘channel-nesting-limit’ (par défaut : ‘10’)
          Profondeur maximum des canaux.

     ‘channelname-regex’ (par défaut : ‘#f’)
          Une chaîne de la forme d’une expression régulière Qt que les
          noms de canaux doivent respecter.

     ‘username-regex’ (par défaut : ‘#f’)
          Une chaîne de la forme d’une expression régulière Qt que les
          noms d’utilisateurs doivent respecter.

     ‘text-message-length’ (par défaut : ‘5000’)
          Taille maximum en octets qu’un utilisateur peut envoyer en un
          seul message textuel.

     ‘image-message-length’ (par défaut : ‘(* 128 1024)’)
          Taille maximum en octets qu’un utilisateur peut envoyer en une
          seule image.

     ‘cert-required?’ (par défaut : ‘#f’)
          Si la valeur est ‘#t’ les clients utilisant une
          authentification par mot de passe faible ne seront pas
          acceptés. Les utilisateurs doivent compléter l’assistant de
          configuration des certificats pour rejoindre le serveur.

     ‘remember-channel?’ (paramètre de : ‘#f’)
          Indique si murmur devrait se rappeler du dernier canal dans
          lequel étaient les utilisateurs au moment de leur déconnexion
          et les y remettre lorsqu’ils se reconnectent.

     ‘allow-html?’ (par défaut : ‘#f’)
          Indique si le html est autorisé dans les messages textuels,
          les commentaires utilisateurs et les descriptions des canaux.

     ‘allow-ping?’ (par défaut : ‘#f’)
          Mettre à vrai expose le nombre d’utilisateurs, le nombre
          d’utilisateurs maximum et la bande passante maximale du
          serveur par client aux utilisateurs non connectés. Dans le
          client Mumble, cette information est affichée dans la boîte de
          dialogue de connexion.

          Désactiver ce paramètre empêchera le serveur d’être
          publiquement listé.

     ‘bonjour?’ (par défaut : ‘#f’)
          Indique si le serveur se présente sur le réseau local à
          travers le protocole bonjour.

     ‘send-version?’ (par défaut : ‘#f’)
          Indique si la version du serveur murmur doit être exposée dans
          les requêtes ping.

     ‘log-days’ (par défaut : ‘31’)
          Murmur stocke aussi les journaux en base de données, qui sont
          accessible via RPC. La valeur par défaut est 31 jours, mais
          vous pouvez le mettre à 0 pour les garder pour toujours ou à
          -1 pour désactiver la journalisation dans la base de données.

     ‘obfuscate-ips?’ (par défaut : ‘#t’)
          Indique si les IP enregistrées doivent être cachées pour
          protéger la vie privée des utilisateurs.

     ‘ssl-cert’ (par défaut : ‘#f’)
          Nom de fichier du certificat SSL/TLS utilisé pour les
          connexions chiffrées.

               (ssl-cert "/etc/letsencrypt/live/example.com/fullchain.pem")
     ‘ssl-key’ (par défaut : ‘#f’)
          Chemin de fichier vers la clef privée ssl pour les connexions
          chiffrées.
               (ssl-key "/etc/letsencrypt/live/example.com/privkey.pem")

     ‘ssl-dh-params’ (par défaut : ‘#f’)
          Nom de fichier d’un fichier encodé en PEM avec les paramètres
          Diffie-Hellman pour le chiffrement SSL/TLS. Autrement vous
          pouvez indiquer ‘"@ffdhe2048"’, ‘"@ffdhe3072"’,
          ‘"@ffdhe4096"’, ‘"@ffdhe6144"’ ou ‘"@ffdhe8192"’ pour utiliser
          les paramètres inclus de la RFC 7919.

     ‘ssl-ciphers’ (par défaut : ‘#f’)
          L’option ‘ssl-ciphers’ permet de choisir les suites de
          chiffrement disponibles pour SSL/TLS.

          Cette option est spécifiée en utilisant l’OpenSSL cipher list
          notation
          (https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT).

          Nous vous recommandons d’essayer votre chaîne de suites de
          chiffrements avec « openssl ciphers <chaîne> » avant de
          l’indiquer ici, pour avoir une idée des suites de chiffrement
          que vous aurez. Après avoir indiqué cette option, nous vous
          recommandons d’inspecter les journaux de Murmur pour vous
          assurer que Murmur utilise les suites de chiffrements
          auxquelles vous vous attendez.

          Remarque : modifier cette option peut impacter la
          rétrocompatibilité de votre serveur Murmur, et peut empêcher
          que des clients Mumble anciens se connectent.

     ‘public-registration’ (par défaut : ‘#f’)
          Doit être un enregistrement
          ‘<murmur-public-registration-configuration>’ ou ‘#f’.

          Vous pouvez aussi enregistrer votre serveur dans la liste des
          serveurs publiques que le client ‘mumble’ affiche au
          démarrage. Vous ne pouvez pas enregistrer votre serveur si
          vous avez un ‘server-password’ ou ‘allow-ping’ à ‘#f’.

          Cela peut prendre quelques heures avant d’arriver sur la liste
          publique.

     ‘file’ (par défaut : ‘#f’)
          Version alternative de cette configuration : si vous indiquez
          quelque chose, le reste est ignoré.

 -- Type de données : murmur-public-registration-configuration
     Configuration pour l’enregistrement public du service murmur.

     ‘name’
          C’est le nom d’affichage de votre serveur. Ne pas le confondre
          avec le nom d’hôte.

     ‘password’
          Un mot de passe pour identifier votre enregistrement. Les
          mises à jours suivantes devront utiliser le même mot de passe.
          Ne le perdez pas.

     ‘url’
          Cela devrait être le lien ‘http://’ ou ‘https://’ vers votre
          site web.

     ‘hostname’ (par défaut : ‘#f’)
          Par défaut votre serveur sera listé par son adresse IP. Si
          cette option est indiquée votre serveur sera listé par son nom
          d’hôte.


File: guix.fr.info,  Node: Services de partage de fichiers,  Next: Services de surveillance,  Prev: Services de téléphonie,  Up: Services

10.8.14 Services de partage de fichiers
---------------------------------------

Le module ‘(gnu services file-sharing)’ fournit des services qui aident
au transfert de fichiers sur des réseaux de partage en pair-à-pair.

Service du démon Transmission
.............................

Transmission (https://transmissionbt.com/) est un client BitTorrent
flexibe qui propose un éventail d’interfaces graphiques et en ligne de
commande. Un service ‘transmission-daemon-service-type’ fournit la
variante sans interface de Transmission, ‘transmission-daemon’, en tant
que service du système, ce qui permet aux utilisateurs de partager des
fichiers via BitTorrent même lorsqu’ils ne sont pas connectés.

 -- Variable Scheme : transmission-daemon-service-type
     Le type de service pour le démon du client BitTorrent Transmission.
     Sa valeur doit être un enregistrement
     ‘trasnmission-daemon-configuration’ comme dans cet exemple :

          (service transmission-daemon-service-type
                   (transmission-daemon-configuration
                    ;; Restreint l'accès à l'interface RPC ("control")
                    (rpc-authentication-required? #t)
                    (rpc-username "transmission")
                    (rpc-password
                     (transmission-password-hash
                      "transmission" ; mot de passe souhaité
                      "uKd1uMs9"))   ; valeur de sel arbitraire

                    ;; Accepte les requêtes de cet hôte et d'autres sur le
                    ;; réseau local
                    (rpc-whitelist-enabled? #t)
                    (rpc-whitelist '("::1" "127.0.0.1" "192.168.0.*"))

                    ;; Limite la bande passant utilisée pendant les heures de bureau
                    (alt-speed-down (* 1024 2)) ;   2 Mo/s
                    (alt-speed-up 512)          ; 512 ko/s

                    (alt-speed-time-enabled? #t)
                    (alt-speed-time-day 'weekdays)
                    (alt-speed-time-begin
                     (+ (* 60 8) 30))           ; 8:30
                    (alt-speed-time-end
                     (+ (* 60 (+ 12 5)) 30))))  ; 17:30

   Une fois le service démarré, vous pouvez interagir avec le démon à
travers son interface web (sur ‘https://localhost:9091’ ou en utilisant
la ligne de commande ‘transmission-remote’, disponible dans le paquet
‘transmission’. (les utilisateurs d’Emacs peuvent aussi regarder le
paquet ‘emacs-transmission’). Les deux communiquent avec le démon à
travers son interface d’appel de procédure distante (RPC), qui est
disponible par défaut pour tous les utilisateurs du système ; vous
voudrez peut-être changer cela en indiquant des valeurs dans les
paramètres ‘rpc-authentication-required?’, ‘rpc-username’ et
‘rpc-password’, comme cela est montré et documenté plus bas.

   La valeur de ‘rpc-password’ doit toujours être un hash de mot de
passe du type généré et utilisé par les clients Transmission. Il peut
être copié directement d’un fichier ‘settings.json’ existant, si au
autre client Transmission est déjà utilisé. Sinon, les procédures
‘transmission-password-hash’ et ‘transmission-random-salt’ fournies par
ce module peuvent être utilisées pour obtenir un hash convenable.

 -- Procédure Scheme : transmission-password-hash PASSWORD SALT
     Renvoie une chaîne contenant le résultat du hash de PASSWORD avec
     SALT, au format reconnu par les clients Transmission pour leur
     paramètre ‘rpc-password’.

     SALT doit être une chaîne de huit caractères. La procédure
     ‘transmission-random-salt’ est utile pour générer une valeur
     correcte au hasard.

 -- Procédure Scheme : transmission-random-salt
     Renvoie une chaîne contenant une valeur de sel à huit caractères
     aléatoires du type généré et utilisé par les clients de
     Transmission, utilisable avec la procédure
     ‘transmission-password-hash’.

   Ces procédures sont disponibles dans la REPL Guile démarrée avec
‘guix repl’ (*note Invoquer guix repl::). C’est utile pour obtenir une
valeur de sel aléatoire à donner au second paramètres de
‘transmission-password-hash’ comme dans cet exemple de session :

     $ guix repl
     scheme@(guix-user)> ,use (gnu services file-sharing)
     scheme@(guix-user)> (transmission-random-salt)
     $1 = "uKd1uMs9"

   Autrement, vous pouvez générer un hash de mot de passe complet en une
seule étape :

     scheme@(guix-user)> (transmission-password-hash "transmission"
     (transmission-random-salt))
     $2 = "{c8bbc6d1740cd8dc819a6e25563b67812c1c19c9VtFPfdsX"

   La chaîne qui en résulte peut être utilisée telle quelle comme valeur
de ‘rpc-password’, ce qui permet de garder les mots de passes cachés
même dans la configuration du système d’exploitation.

   Les fichiers torrent téléchargés par le démon ne sont directement
accessibles qu’aux utilisateurs dans le groupe « transmission », qui
reçoivent l’accès en lecture seule au répertoire spécifié dans le
paramètre ‘download-dir’ (et aussi le répertoire spécifié par
‘incomplete-dir’ si ‘incomplete-dir-enabled?’ vaut ‘#t’). Les fichiers
téléchargés peuvent être déplacés vers un autre répertoire ou supprimés
complètement avec ‘transmission-remote’ avec les options ‘--move’ et
‘--remove-and-delete’.

   Si le paramètre ‘watch-dir-enabled?’ vaut ‘#t’, les utilisateurs du
groupe « transmission » peuvent aussi placer des fichiers ‘.torrent’
dans le répertoire spécifié par ‘watch-dir’ pour que les torrents
correspondants soient ajoutés par le démon. Le paramètre
‘trash-original-torrent-files?’ indique si le démon doit supprimer ces
fichiers après les avoir traités.

   Certains paramètres de configuration du démon peuvent être changés
temporairement par ‘transmission-remote’ et des outils similaires. Pour
annuler ces changements, utiliser l’action ‘reload’ du service pour que
le démon recharge ses paramètres sur disque :

     # herd reload transmission-daemon

   La liste complète des paramètres disponibles est définie par le type
de données ‘transmission-daemon-configuration’.

 -- Type de données : transmission-daemon-configuration
     Le type de données représentant les paramètres de configuration du
     démon Transmission. Ils correspondent directement aux paramètres
     reconnus par les clients Transmission dans le fichier
     ‘settings.json’.

   Les champs de ‘transmission-daemon-configuration’ disponibles sont :

 -- paramètre de ‘transmission-daemon-configuration’ : package
          transmission
     Le paquet Transmission à utiliser.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer stop-wait-period
     Le temps d’attente à l’arrêt du service avant que
     ‘transmission-daemon’ ne termine et tue ses processus. Cela permet
     au démon de tout mettre en ordre et d’envoyer une dernière mise à
     jour aux trackers avant de s’arrêter. Vous devrez peut-être
     augmenter cette valeur pour les hôtes lents, ou les hôtes avec une
     connexion réseau lente.

     La valeur par défaut est ‘10’.

 -- paramètre de ‘transmission-daemon-configuration’ : string
          download-dir
     Le répertoire dans lequel les fichiers torrent sont téléchargés.

     La valeur par défaut est
     ‘"/var/lib/transmission-daemon/downloads"’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          incomplete-dir-enabled?
     Si la valeur est ‘#t’, les fichiers seront gardés dans
     ‘incomplete-dir’ tant que leur torrent est en cours de
     téléchargement, puis déplacés vers ‘download-dir’ une fois le
     torrent terminé. Sinon, les fichiers pour tous les torrents (dont
     ceux qui sont toujours en cours) seront placés dans ‘download-dir’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : maybe-string
          incomplete-dir
     Le répertoire dans lequel les fichiers des torrents incomplets
     seront gardé si ‘incomplete-dir-enabled?’ vaut ‘#t’.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘transmission-daemon-configuration’ : umask umask
     Le masque de droits d’accès à la création des fichiers téléchargés.
     voir la page de manuel de ‘umask’ pour plus d’informations.

     La valeur par défaut est ‘18’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          name-partial-files?
     Lorsque la valeur est ‘#t’, « .part » est ajouté à la fin du nom
     des fichiers partiellement téléchargés.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          preallocation-mode preallocation
     Le mode de préallocation d’espace pour les fichiers téléchargés,
     parmi ‘none’, ‘fast’ (ou ‘sparse’) ou ‘full’. Spécifiez ‘full’ pour
     minimiser la fragmentation du disque en sacrifiant un peu de
     vitesse de création du fichier.

     La valeur par défaut est ‘fast’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          watch-dir-enabled?
     Si la valeur est ‘#t’, le répertoire spécifié par ‘watch-dir’ sera
     surveillé en attendant de nouveaux fichiers ‘.torrent’ et les
     torrents qu’ils décrivent seront ajoutés automatiquement (et le
     fichier d’origine supprimé, si ‘trash-original-torrent-files?’ vaut
     ‘#t’).

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : maybe-string
          watch-dir
     Le répertoire à surveiller pour les fichiers ‘.torrent’ indiquant
     de nouveaux torrents à ajouter, lorsque ‘watch-dir-enabled’ vaut
     ‘#t’.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          transh-original-torrent-files?
     Lorsque la valeur est ‘#t’, les fichiers ‘.torrent’ seront
     supprimés du répertoire de surveillance une fois leur torrent
     ajouté (voir ‘watch-directory-enabled?’).

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          speed-limit-down-enabled?
     Lorsque la valeur est ‘#t’, la vitesse de téléchargement du démon
     sera limitée par la vitesse spécifiée par ‘speed-limit-down’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer speed-limit-down
     La vitesse de téléchargement par défaut maximale, en kilooctets par
     seconde.

     La valeur par défaut est ‘100’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          speed-limit-up-enabled?
     Lorsque la valeur est ‘#t’, la vitesse de téléversement du démon
     sera limitée par la vitesse spécifiée par ‘speed-limit-up’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer speed-limit-up
     La vitesse globale de téléversement maximale par défaut, en
     kilooctets par seconde.

     La valeur par défaut est ‘100’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          alt-speed-enabled?
     Lorsque la valeur est ‘#t’, les limites de vitesse alternatives
     ‘alt-speed-down’ et ‘alt-speed-up’ sont utilisée (au lieu de
     ‘speed-limit-down’ et ‘speed-limit-up’, si elles sont activées)
     pour contraindre l’utilisation de la bande passante par le démon.
     Elles peuvent être programmées automatiquement à certains moment de
     la semaine ; voir ‘alt-speed-time-enabled?’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer alt-speed-down
     La vitesse de téléchargement globale alternative maximale, en
     kilooctets par seconde.

     La valeur par défaut est ‘50’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer alt-speed-up
     La vitesse de téléversement globale alternative maximale, en
     kilooctets par seconde.

     La valeur par défaut est ‘50’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          alt-speed-time-enabled?
     Lorsque la valeur est ‘#t’, les limites de vitesses alternatives
     ‘alt-speed-down’ et ‘alt-speed-up’ seront activées automatiquement
     aux périodes spécifiées par ‘alt-speed-time-day’,
     ‘alt-speed-time-begin’ et ‘alt-time-speed-end’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : day-list
          alt-speed-time-day
     Les jours de la semaine pendant lesquels le programme de vitesse
     alternative devrait être utilisé, spécifié soit comme une liste de
     jours (‘sunday’, ‘monday’, etc), soit en utilisant les symboles
     ‘weekdays’, ‘weekends’ ou ‘all’.

     La valeur par défaut est ‘all’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer alt-speed-time-begin
     Le moment de la journée auquel activer les limites de vitesse
     alternatives, en nombre de minutes à partir de minuit.

     La valeur par défaut est ‘540’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer alt-speed-time-end
     Le moment de la journée auquel désactiver les limites de vitesses
     alternatives, en nombre de minutes à partir de minuit.

     La valeur par défaut est ‘1020’.

 -- paramètre de ‘transmission-daemon-configuration’ : string
          bind-address-ipv4
     L’IP sur laquelle écouter les connexions de pairs, ou « 0.0.0.0 »
     pour écouter sur toutes les interfaces réseaux.

     La valeur par défaut est ‘"0.0.0.0"’.

 -- paramètre de ‘transmission-daemon-configuration’ : string
          bind-address-ipv6
     L’adresse IPv6 sur laquelle écouter les connexions de pairs, ou «
     :: » pour écouter sur toutes les interfaces réseaux.

     La valeur par défaut est ‘"::"’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          peer-port-random-on-start?
     Si la valeur est ‘#t’, lorsque le démon démarre il choisira un port
     au hasard sur lequel écouter les connexions des pairs, à partir
     d’un intervalle spécifié (inclusivement) par ‘peer-port-random-low’
     et ‘peer-port-random-high’. Sinon, il écoutera sur le port spécifié
     par ‘peer-port’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : port-number
          peer-port-random-low
     Le plus petit numéro de port possible lorsque
     ‘peer-port-random-on-start?’ vaut ‘#t’.

     La valeur par défaut est ‘49152’.

 -- paramètre de ‘transmission-daemon-configuration’ : port-number
          peer-port-random-high
     Le plus grand numéro de port possible lorsque
     ‘peer-port-random-on-start’ vaut ‘#t’.

     La valeur par défaut est ‘65535’.

 -- paramètre de ‘transmission-daemon-configuration’ : port-number
          peer-port
     Le port sur lequel écouter pour les connexions des pairs lorsque
     ‘peer-port-random-on-start?’ vaut ‘#f’.

     La valeur par défaut est ‘51413’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          port-forwarding-enabled?
     Si la valeur est ‘#t’, le démon essayera de configurer le renvoie
     de port vers une passerelle amont automatiquement avec UPnP et
     NAT-PMP.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ : encryption-mode
          encryption
     Vos préférences de chiffrement pour les connexions avec les pairs,
     parmi ‘prefer-unencrypted-connections’,
     ‘prefer-encrypted-connections’ et ‘require-encrypted-connections’.

     La valeur par défaut est ‘prefer-encrypted-connections’.

 -- paramètre de ‘transmission-daemon-configuration’ : maybe-string
          peer-congestion-algorithm
     L’algorithme de contrôle de congestion TCP à utiliser pour les
     connexions avec les pairs, spécifié avec une chaîne reconnue par le
     système d’exploitation dans les appels à ‘setsockopt’ (ou
     ‘disabled’, auquel cas le système d’exploitation utilise la valeur
     par défaut).

     Remarquez que sur les systèmes GNU/Linux, le noyau doit être
     configuré pour permettre aux processus d’utiliser un algorithme de
     contrôle de congestion qui n’est pas dans l’ensemble par défaut ;
     sinon, il refusera les demande avec « Opération non autorisée ».
     Pour voir les algorithmes disponibles sur votre système et ceux qui
     sont actuellement autorisés, regardez le contenu des fichiers
     ‘tcp_available_congestion_control’ et
     ‘tcp_allowed_congestion_control’ dans le répertoire
     ‘/proc/sys/net/ipv4’.

     Par exemple, pour que le démon Transmission utilise l’algorithme de
     contrôle de congestion TCP de basse priorité
     (http://www-ece.rice.edu/networks/TCP-LP/), vous devrez modifier la
     configuration de votre noyau pour construire la prise en charge de
     cet algorithme, puis mettre à jour votre configuration de système
     d’exploitation pour permettre son utilisation en ajoutant un
     service ‘sysctl-service-type’ (ou en mettant à jour la
     configuration de ce service s’il existe déjà) avec les lignes
     suivantes :

          (service sysctl-service-type
                   (sysctl-configuration
                    (settings
                     ("net.ipv4.tcp_allowed_congestion_control" .
                      "reno cubic lp"))))

     La configuration de démon Transmission peut être mise à jour avec

          (peer-congestion-algorithm "lp")

     et le système peut être reconfiguré pour que les changements
     prennent effet.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          tcp-type-of-service peer-soket-tos
     Le type de service à demander pour les paquets TCP sortants, entre
     ‘default’, ‘low-cost’, ‘throughput’, ‘low-delay’ et ‘reliability’.

     La valeur par défaut est ‘default’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer peer-limit-global
     La limite globale pour le nombre de pairs connectés.

     La valeur par défaut est ‘200’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer peer-limit-per-torrent
     La limite par torrent de pairs connectés.

     La valeur par défaut est ‘50’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer upload-slots-per-torrent
     Le nombre maximum de pairs auxquels le démon enverra des données en
     même temps pour chaque torrent.

     La valeur par défaut est ‘14’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer peer-id-ttl-hours
     La durée maximum, en heures, de l’identifiant de pair associé à
     chaque torrent public avant qu’il ne soit régénéré.

     La valeur par défaut est ‘6’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          blocklist-enabled?
     Lorsque la valeur est ‘#t’, le démon ignorera les pairs mentionnés
     dans la dernière liste de blocage téléchargée depuis
     ‘blocklist-url’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : maybe-string
          blocklist-url
     L’URL d’une liste de blocage de pairs (au format P2P-plaintext ou
     eMule ‘.dat’) périodiquement téléchargés et appliqués lorsque
     ‘blocklist-enabled?’ vaut ‘#t’.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          download-queue-enabled?
     Si la valeur est ‘#t’, le démon sera limité à téléchargé au plus
     ‘download-queue-size’ torrents non bloqués en même temps.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer download-queue-size
     La taille de la queue de téléchargement du démon, qui limite le
     nombre de torrents non bloqués qu’il télécharge en même temps
     lorsque ‘download-queue-enabled?’ vaut ‘#t’.

     La valeur par défaut est ‘5’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          seed-queue-enabled?
     Si la valeur est ‘#t’, le démon sera limité à envoyer au plus
     ‘seed-queue-size’ torrents non bloqués en même temps.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer seed-queue-size
     La taille de la queue d’envoi du démon, qui limite le nombre de
     torrents non bloqué qu’il enverra en même temps lorsque
     ‘seed-queue-enabled?’ vaut ‘#t’.

     La valeur par défaut est ‘10’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          queue-stalled-enabled?
     Lorsque la valeur est ‘#t’, le démon considère les torrents pour
     lesquels il n’a pas partagé de données dans les dernières
     ‘queue-stalled-minutes’ comme bloqué et ne les contera pas dans les
     limites ‘download-queue-size’ et ‘seed-queue-size’.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer queue-stalled-minutes
     La période maximale, en minutes, pendant laquelle un torrent peut
     être inactif avant d’être considéré comme bloqué, lorsque
     ‘queue-stalled-enabled?’ vaut ‘#t’.

     La valeur par défaut est ‘30’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          ratio-limit-enabled?
     Lorsque la valeur est ‘#t’, un torrent téléchargé sera
     automatiquement mis en pause une fois qu’il atteint le ratio
     spécifié par ‘ratio-limit’.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-rational ratio-limit
     Le ratio auquel un torrent téléchargé sera mis en pause, lorsque
     ‘ratio-limit-enabled?’ vaut ‘#t’.

     La valeur par défaut est ‘2.0’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          idle-seeding-limit-enabled?
     Lorsque la valeur est ‘#t’, un torrent téléchargé sera
     automatiquement mis en pause s’il est inactif depuis
     ‘idle-seeding-limit’ minutes.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer idle-seeding-limit
     La durée maximum, en minutes, pendant laquelle un torrent
     téléchargé peut être inactif avant d’être mis en pause, quand
     ‘idle-seeding-limit-enabled?’ vaut ‘#t’.

     La valeur par défaut est ‘30’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          dht-enabled?
     Active le protocole de table de hash (DHT) distribuée
     (http://bittorrent.org/beps/bep_0005.html), qui prend en charge les
     torrents sans tracker.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          lpd-enabled?
     Active la découverte de pairs locaux
     (https://en.wikipedia.org/wiki/Local_Peer_Discovery) (LPD), qui
     permet de découvrir des pairs sur le réseau local et peut réduire
     la quantité de données envoyées sur Internet.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          pex-enabled?
     Active l’échange de pairs
     (https://en.wikipedia.org/wiki/Peer_exchange) (PEX), qui réduit la
     dépendance du démon aux trackers externes et peut améliorer les
     performances.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          utp-enabled?
     Active le protocole de micro transport
     (http://bittorrent.org/beps/bep_0029.html) (uTP), qui cherche à
     réduire l’impact du trafic BitTorrent sur les autres utilisateurs
     du réseau local tout en utilisant toute la bande passante
     disponible.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          rpc-enabled?
     Si la valeur est ‘#t’, active l’interface d’appel de procédures
     distantes (RPC), qui permet de contrôler le démon à distance via
     son interface web, le client ‘transmission-remote’ en ligne de
     commande et des outils similaires.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ : string
          rpc-bind-address
     L’adresse IP sur laquelle écouter les connexions RPC, ou « 0.0.0.0
     » pour écouter sur toutes les adresses IP.

     La valeur par défaut est ‘"0.0.0.0"’.

 -- paramètre de ‘transmission-daemon-configuration’ : port-number
          rpc-port
     Le port sur lequel écouter les connexions RPC entrantes.

     La valeur par défaut est ‘9091’.

 -- paramètre de ‘transmission-daemon-configuration’ : string rpc-url
     Le préfixe de chemin à utiliser dans l’URL du point d’accès RPC.

     La valeur par défaut est ‘"/transmission/"’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          rpc-authentication-required?
     Lorsque la valeur est ‘#t’, les clients doivent s’authentifier
     (voir ‘rpc-username’ et ‘rpc-password’) quand ils utilisent
     l’interface RPC. Remarquez que cela a pour effet de bord de
     désactiver la liste d’hôtes (voir ‘rpc-host-whitelist-enabled?’).

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : maybe-string
          rpc-username
     Le nom d’utilisateur requis par les clients pour accéder à
     l’interface RPC lorsque ‘rpc-authentication-required?’ vaut ‘#t’.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          maybe-transmission-password-hash rpc-password
     Le mot de passe requis pour permettre aux clients d’accéder à
     l’interface RPC lorsque ‘rpc-authentication-required?’ vaut ‘#t’.
     Il doit être spécifié avec un hash de mot de passe au format
     reconnu par les clients de Transmission, soit copié d’un fichier
     ‘settings.json’ existant, soit généré avec la procédure
     ‘transmission-password-hash’.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          rpc-whitelist-enabled?
     Lorsque la valeur est ‘#t’, les requêtes de RPC seront acceptées
     seulement si elles proviennent d’une adresse spécifiée dans
     ‘rpc-whitelist’.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ : string-list
          rpc-whitelist
     La liste des adresse IP et IPv6 pour lesquelles les requêtes RPC
     sont acceptées lorsque ‘rpc-whitelist-enabled?’ vaut ‘#t’. Vous
     pouvez spécifier des jokers avec ‘*’.

     La valeur par défaut est ‘("127.0.0.1" "::1")’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          rpc-host-whitelist-enabled?
     Lorsque la valeur est ‘#t’, les requêtes RPC seront acceptée
     lorsqu’elles sont adressées à un hôte nommé dans
     ‘rpc-host-whitelist’. Remarquez que les requêtes adressées à «
     localhost » ou « localhost. » ou à une adresse numérique, sont
     toujours acceptées indépendamment de ce paramètre.

     Remarquez aussi que cette fonctionnalité est désactivée lorsque
     ‘rpc-authentication-required?’ vaut ‘#t’.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ : string-list
          rpc-host-whitelist
     La liste des noms d’hôte reconnus par le serveur RPC lorsque
     ‘rpc-host-whitelist-enabled?’ vaut ‘#t’.

     La valeur par défaut est ‘()’.

 -- paramètre de ‘transmission-daemon-configuration’ : message-level
          message-level
     Le niveau de sévérité minimum des messages à enregistrer dans les
     journaux (dans ‘/var/log/transmission.log’) par le démon, entre
     ‘none’ (par de journalisation), ‘error’, ‘info’ et ‘debug’.

     La valeur par défaut est ‘info’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          start-added-torrents?
     Lorsque la valeur est ‘#t’, les torrents sont démarrés dès qu’ils
     sont ajoutés ; sinon ils sont ajouté et mis en pause.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          script-torrent-done-enabled?
     Lorsque la valeur est ‘#t’, le script spécifié par
     ‘script-torrent-done-filename’ sera invoqué à chaque fois qu’un
     torrent termine.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘transmission-daemon-configuration’ : maybe-file-object
          script-torrent-done-filename
     Un nom de fichier ou un simili-fichier spécifiant un script à
     lancer à chaque fois qu’un torrent termine, lorsque
     ‘script-torrent-done-enabled?’ est ‘#t’.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          scrape-paused-torrents-enabled?
     Lorsque la valeur est ‘#t’, le démon contactera les trackers pour
     le torrent même si le torrent est en pause.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘transmission-daemon-configuration’ :
          non-negative-integer cache-size-mb
     La quantité de mémoire, en mégaoctets, à allouer pour le cache
     mémoire du démon. Une grande valeur peut améliorer les performances
     en réduisant le fréquence des entrées-sorties sur le disque.

     La valeur par défaut est ‘4’.

 -- paramètre de ‘transmission-daemon-configuration’ : boolean
          prefetch-enabled?
     Lorsque la valeur est ‘#t’, le démon essaiera d’améliorer les
     performances des entrées-sorties en disant au système quelles
     données seront probablement bientôt lues pour satisfaire les
     requêtes des pairs.

     La valeur par défaut est ‘#t’.


File: guix.fr.info,  Node: Services de surveillance,  Next: Services Kerberos,  Prev: Services de partage de fichiers,  Up: Services

10.8.15 Services de surveillance
--------------------------------

Service Tailon
..............

Tailon (https://tailon.readthedocs.io/) est une application web pour
visualiser et chercher des fichiers de journaux.

   L’exemple suivant configurera le service avec les valeurs par défaut.
Par défaut, on peut accéder à Tailon sur le pour 8080
(‘http://localhost:8080’).

     (service tailon-service-type)

   L’exemple suivant personnalise un peu plus la configuration de
Tailon, en ajoutant ‘sed’ à la liste des commandes autorisées.

     (service tailon-service-type
              (tailon-configuration
                (config-file
                  (tailon-configuration-file
                    (allowed-commands '("tail" "grep" "awk" "sed"))))))

 -- Type de données : tailon-configuration
     Type de données représentant la configuration de Tailon. Ce type a
     les paramètres suivants :

     ‘config-file’ (par défaut : ‘(tailon-configuration-file)’)
          Le fichier de configuration à utiliser pour Tailon. Ce champ
          peut contenir un enregistrement “tailon-configuration-file” ou
          n’importe quelle gexp (*note G-Expressions::).

          Par exemple, pour utiliser un fichier local à la place, on
          peut utiliser la fonction ‘local-file’ :

               (service tailon-service-type
                        (tailon-configuration
                          (config-file (local-file "./my-tailon.conf"))))

     ‘package’ (par défaut : ‘tailon’)
          Le paquet tailon à utiliser.

 -- Type de données : tailon-configuration-file
     Type de données représentant les options de configuration de
     Tailon. Ce type a les paramètres suivants :

     ‘files’ (par défaut : ‘(list "/var/log")’)
          Liste des fichiers à afficher. La liste peut inclure des
          chaînes pour des fichiers simple ou des répertoires, ou une
          liste, où le premier élément est le nom d’un sous-section et
          le reste des fichiers ou des répertoires de cette
          sous-section.

     ‘bind’ (par défaut : ‘"localhost:8080"’)
          Adresse et port sur lesquels Tailon écoute.

     ‘relative-root’ (par défaut : ‘#f’)
          Chemin de l’URL à utiliser pour Tailon, ou ‘#f’ pour ne pas
          utiliser de chemin.

     ‘allow-transfers?’ (par défaut : ‘#t’)
          Permet de télécharger les journaux dans l’interface web.

     ‘follow-names?’ (par défaut : ‘#t’)
          Permet de surveiller des fichiers qui n’existent pas encore.

     ‘tail-lines’ (par défaut : ‘200’)
          Nombre de lignes à lire initialement dans chaque fichier.

     ‘allowed-commands’ (par défaut : ‘(list "tail" "grep" "awk")’)
          Commandes autorisées. Par défaut, ‘sed’ est désactivé.

     ‘debug?’ (par défaut : ‘#f’)
          Configurez ‘debug?’ à ‘#t’ pour montrer les messages de
          débogage.

     ‘wrap-lines’ (par défaut : ‘#t’)
          État initial du retour à la ligne dans l’interface web.
          Configurez l’option à ‘#t’ pour retourner à la ligne (par
          défaut) ou à ‘#f’ pour ne pas retourner à la ligne au début.

     ‘http-auth’ (par défaut : ‘#f’)
          Type d’authentification HTTP à utiliser. Indiquez ‘#f’ pour
          désactiver l’authentification (par défaut). Les valeur
          supportées sont ‘"digest"’ et ‘"basic"’.

     ‘users’ (par défaut : ‘#f’)
          Si l’authentification HTTP est activée (voir ‘http-auth’),
          l’accès sera restreint aux identifiants fournis ici. Pour
          configurer des utilisateurs, utilisez une liste de paires, où
          le premier élément de la paire est le nom d’utilisateur et le
          second élément est le mot de passe.

               (tailon-configuration-file
                 (http-auth "basic")
                 (users     '(("user1" . "password1")
                              ("user2" . "password2"))))

Service Darkstat
................

Darkstat est un « renifleur de paquets » qui capture le trafic réseau,
calcul des statistiques sur l’utilisation et sert des rapport sur HTTP.

 -- Variable : Variable Scheme darkstat-service-type
     C’est le type de service pour le service darkstat
     (https://unix4lyfe.org/darkstat/), sa valeur doit être un
     enregistrement ‘darkstat-configuration’ comme dans cet exemple :

          (service darkstat-service-type
                   (darkstat-configuration
                     (interface "eno1")))

 -- Type de données : darkstat-configuration
     Type de données représentant la configuration de ‘darkstat’.

     ‘package’ (par défaut : ‘darkstat’)
          Le paquet darkstat à utiliser.

     ‘interface’
          Capture le trafic sur l’interface réseau spécifiée.

     ‘port’ (par défaut : ‘"667"’)
          Lie l’interface web sur le port spécifié.

     ‘bind-address’ (par défaut : ‘"127.0.0.1"’)
          Lie l’interface web sur l’adresse spécifiée.

     ‘base’ (par défaut : ‘"/"’)
          Spécifie le chemin de base des URL. C’est utile si on accède à
          ‘darkstat’ à travers un proxy inverse.

Service d’export de nœud de Prometheus
......................................

L’exportateur de nœuds de Prometheus rend disponible les statistiques
sur le matériel et le système d’exploitation fournies par le noyau Linux
pour le système de surveillance Prometheus. Ce service devrait être
déployé sur tous les nœuds physiques et les machines virtuelles, où vous
voulez surveiller ces statistiques.

 -- Variable : Variable Scheme prometheus-node-exporter-service-type
     C’est le type de service pour le service prometheus-node-exporter
     (https://github.com/prometheus/node_exporter/), sa valeur doit être
     un enregistrement ‘prometheus-node-exporter-configuration’.

          (service prometheus-node-exporter-service-type)

 -- Type de données : prometheus-node-exporter-configuration
     Type de données représentant la configuration de ‘node_exporter’.

     ‘package’ (par défaut : ‘go-github-com-prometheus-node-exporter’)
          Le paquet prometheus-node-exporter à utiliser.

     ‘web-listen-address’ (par défaut : ‘":9100"’)
          Lie l’interface web sur l’adresse spécifiée.

     ‘textfile-directory’ (par défaut : ‘"/var/lib/prometheus/node-exporter"’)
          Ce répertoire est utilisable pour exporter des métriques
          spécifiques à cette machine. Les fichiers contenant les
          métriques au format texte, dont le nom de fichier termine par
          ‘.prom’ devraient être placés dans ce répertoire.

     ‘extra-options’ (par défaut : ‘'()’)
          Options supplémentaires à passer au lancement de l’exportateur
          de nœuds de Prometheus.

Server zabbix
.............

Zabbix fournit des métriques de suivi entre autres de l’utilisation du
réseau, de la charge CPU et de l’espace disque :

   • Haute performance, haute capacité (il est capable de surveiller des
     centaines de milliers d’appareils).
   • Découverte automatique des serveurs, des appareils et leurs
     interfaces réseaux.
   • Découverte bas-niveau, qui permet de commencer automatiquement à
     surveiller de nouveaux éléments, des systèmes de fichiers ou des
     interfaces réseaux entre autres.
   • Surveillance distribuée avec une administration web centralisée.
   • Agents natifs haute-performance.
   • Métriques SLA et ITIL KPI dans les rapports.
   • Vue haut-niveau (businness) des ressources surveillées à travers
     des écrans de consoles visuelles définie par l’utilisateur et des
     panneaux de commande.
   • Exécution à distance à travers les mandataires Zabbix.

   Les champs de ‘zabbix-server-configuration’ disponibles sont :

 -- paramètre de ‘zabbix-server-configuration’ : package zabbix-server
     Le paquet zabbix-server.

 -- paramètre de ‘zabbix-server-configuration’ : string user
     Utilisateur qui lancera le serveur Zabbix.

     La valeur par défaut est ‘"zabbix"’.

 -- paramètre de ‘zabbix-server-configuration’ : group group
     Groupe qui lancera le serveur Zabbix.

     La valeur par défaut est ‘"zabbix"’.

 -- paramètre de ‘zabbix-server-configuration’ : string db-host
     Le nom d’hôte de la base de données.

     La valeur par défaut est ‘"127.0.0.1"’.

 -- paramètre de ‘zabbix-server-configuration’ : string db-name
     Nom de la base de données.

     La valeur par défaut est ‘"zabbix"’.

 -- paramètre de ‘zabbix-server-configuration’ : string db-user
     Utilisateur de la base de données.

     La valeur par défaut est ‘"zabbix"’.

 -- paramètre de ‘zabbix-server-configuration’ : string db-password
     Mot de passe de la base de données. Utilisez plutôt ‘include-files’
     avec ‘DBPassword=SECRET’ dans le fichier spécifié à la place.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘zabbix-server-configuration’ : number db-port
     Port de la base de données.

     La valeur par défaut est ‘5432’.

 -- paramètre de ‘zabbix-server-configuration’ : string log-type
     Spécifie où les messages de journalisation seront écrits :

        • ‘system’ - syslog.

        • ‘file’ - fichier spécifié par le paramètre ‘log-file’.

        • ‘console’ - sortie standard.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘zabbix-server-configuration’ : string log-file
     Nom du fichier de journal lorsque le paramètre ‘log-type’ vaut
     ‘file’.

     La valeur par défaut est ‘"/var/log/zabbix/server.log"’.

 -- paramètre de ‘zabbix-server-configuration’ : string pid-file
     Nom du fichier de PID.

     La valeur par défaut est ‘"/var/run/zabbix/zabbix_server.pid"’.

 -- paramètre de ‘zabbix-server-configuration’ : string ssl-ca-location
     Emplacement des fichiers d’autorités de certification (AC) pour la
     vérification des certificats SSL du serveur.

     La valeur par défaut est ‘"/etc/ssl/certs/ca-certificates.crt"’.

 -- paramètre de ‘zabbix-server-configuration’ : string
          ssl-cert-location
     Emplacement des certificats SSL des clients.

     La valeur par défaut est ‘"/etc/ssl/certs"’.

 -- paramètre de ‘zabbix-server-configuration’ : string extra-options
     Options supplémentaires ajoutées à la fin du fichier de
     configuration du serveur Zabbix.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘zabbix-server-configuration’ : include-files
          include-files
     Vous pouvez inclure des fichiers individuels ou tous les fichiers
     d’un répertoire dans le fichier de configuration.

     La valeur par défaut est ‘()’.

Agent zabbix
............

L’agent Zabbix récupère des informations pour le serveur Zabbix.

   Les champs de ‘zabbix-agent-configuration’ disponibles sont :

 -- paramètre de ‘zabbix-agent-configuration’ : package zabbix-agent
     Le paquet zabbix-agent.

 -- paramètre de ‘zabbix-agent-configuration’ : string user
     Utilisateur qui lancera l’agent Zabbix.

     La valeur par défaut est ‘"zabbix"’.

 -- paramètre de ‘zabbix-agent-configuration’ : group group
     Groupe qui lancera l’agent Zabbix.

     La valeur par défaut est ‘"zabbix"’.

 -- paramètre de ‘zabbix-agent-configuration’ : string hostname
     Noms d’hôte unique et sensible à la casse requis pour les
     vérifications actives et qui doit correspondre au nom d’hôte
     configuré sur le serveur.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘zabbix-agent-configuration’ : string log-type
     Spécifie où les messages de journalisation seront écrits :

        • ‘system’ - syslog.

        • ‘file’ - fichier spécifié par le paramètre ‘log-file’.

        • ‘console’ - sortie standard.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘zabbix-agent-configuration’ : string log-file
     Nom du fichier de journal lorsque le paramètre ‘log-type’ vaut
     ‘file’.

     La valeur par défaut est ‘"/var/log/zabbix/agent.log"’.

 -- paramètre de ‘zabbix-agent-configuration’ : string pid-file
     Nom du fichier de PID.

     La valeur par défaut est ‘"/var/run/zabbix/zabbix_agent.pid"’.

 -- paramètre de ‘zabbix-agent-configuration’ : list server
     Liste d’adresses IP, éventuellement en notation CIDR ou de noms
     d’hôtes de serveurs Zabbix et de mandataires Zabbix. Les connexions
     entrantes ne seront acceptées que si elles viennent des hôtes
     listés ici.

     La valeur par défaut est ‘("127.0.0.1")’.

 -- paramètre de ‘zabbix-agent-configuration’ : list server-active
     Liste de paires d’IP:port (ou nom d’hôte:port) de serveurs Zabbix
     et de mandataires Zabbix pour les vérifications actives. Si le port
     n’est pas spécifié, le port par défaut est utilisé. Si ce paramètre
     n’est pas spécifié, les vérifications actives sont désactivées.

     La valeur par défaut est ‘("127.0.0.1")’.

 -- paramètre de ‘zabbix-agent-configuration’ : string extra-options
     Options supplémentaires ajoutées à la fin du fichier de
     configuration du serveur Zabbix.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘zabbix-agent-configuration’ : include-files
          include-files
     Vous pouvez inclure des fichiers individuels ou tous les fichiers
     d’un répertoire dans le fichier de configuration.

     La valeur par défaut est ‘()’.

Interface utilisateur Zabbix
............................

Ce service fournit une interface WEB au serveur Zabbix.

   Les champs de ‘zabbix-front-end-configuration’ disponibles sont :

 -- paramètre de ‘zabbix-front-end-configuration’ :
          nginx-server-configuration-list nginx
     Configuration Nginx.

 -- paramètre de ‘zabbix-front-end-configuration’ : string db-host
     Le nom d’hôte de la base de données.

     La valeur par défaut est ‘"localhost"’.

 -- paramètre de ‘zabbix-front-end-configuration’ : number db-port
     Port de la base de données.

     La valeur par défaut est ‘5432’.

 -- paramètre de ‘zabbix-front-end-configuration’ : string db-name
     Nom de la base de données.

     La valeur par défaut est ‘"zabbix"’.

 -- paramètre de ‘zabbix-front-end-configuration’ : string db-user
     Utilisateur de la base de données.

     La valeur par défaut est ‘"zabbix"’.

 -- paramètre de ‘zabbix-front-end-configuration’ : string db-password
     Mot de passe de la base de données. Utilisez plutôt
     ‘db-secret-file’.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘zabbix-front-end-configuration’ : string
          db-secret-file
     Fichier secret contenant les identifiants pour l’interface de
     Zabbix. La valeur doit être un nom de fichier local, pas une
     G-expression. Vous devez créer ce fichier manuellement. Sont
     contenu sera recopié dans ‘zabbix.conf.php’ en tant que valeur de
     ‘$DB['PASSWORD']’.

     La valeur par défaut est ‘""’.

 -- paramètre de ‘zabbix-front-end-configuration’ : string zabbix-host
     Nom d’hôte du serveur Zabbix.

     La valeur par défaut est ‘"localhost"’.

 -- paramètre de ‘zabbix-front-end-configuration’ : number zabbix-port
     Port du serveur Zabbix.

     La valeur par défaut est ‘10051’.


File: guix.fr.info,  Node: Services Kerberos,  Next: Services LDAP,  Prev: Services de surveillance,  Up: Services

10.8.16 Services Kerberos
-------------------------

Le module ‘(gnu services kerberos)’ fournit des services liés au
protocole d’authentification “Kerberos”.

Service Krb5
............

Les programmes qui utilisent une bibliothèque cliente Kerberos
s’attendent à trouver un fichier de configuration dans ‘/etc/krb5.conf’.
Ce service génère un tel fichier à partir d’une définition fournie par
la déclaration de système d’exploitation. Il ne démarre aucun démon.

   Aucun fichier « keytab » n’est fourni par ce service — vous devez les
créer explicitement. Ce service est connu pour fonctionner avec la
bibliothèque cliente MIT, ‘mit-krb5’. Les autres implémentations n’ont
pas été testées.

 -- Variable Scheme : krb5-service-type
     Un type de service pour les clients Kerberos 5.

Voici un exemple d’utilisation :
     (service krb5-service-type
              (krb5-configuration
               (default-realm "EXAMPLE.COM")
               (allow-weak-crypto? #t)
               (realms (list
                        (krb5-realm
                         (name "EXAMPLE.COM")
                         (admin-server "groucho.example.com")
                         (kdc "karl.example.com"))
                        (krb5-realm
                         (name "ARGRX.EDU")
                         (admin-server "kerb-admin.argrx.edu")
                         (kdc "keys.argrx.edu"))))))

Cet exemple fournit une configuration cliente Kerberos 5 qui :
   • Reconnais deux domaines : « EXAMPLE.COM » et « ARGREX.EDU », tous
     deux aillant des serveurs d’administration et des centres de
     distribution de clefs distincts ;
   • Utilisera le domaine « EXAMPLE.COM » pr défaut si le domaine n’est
     pas spécifié explicitement par les clients ;
   • Acceptera les services qui ne supportent que des types de
     chiffrements connus pour être faibles.

   Les types ‘krb5-realm’ et ‘krb5-configuration’ ont de nombreux
champs. Seuls les plus communs sont décrits ici. Pour une liste
complète, et plus de détails sur chacun d’entre eux, voir la
documentation de MIT krb5.conf.

 -- Type de données : krb5-realm
     ‘name’
          Ce champ est une chaîne identifiant le nom d’un domaine. Une
          convention courante est d’utiliser le nom pleinement qualifié
          de votre organisation, converti en majuscule.

     ‘admin-server’
          Ce champ est une chaîne identifiant l’hôte où le serveur
          d’administration tourne.

     ‘kdc’
          Ce champ est une chaîne identifiant le centre de distribution
          de clefs pour ce domaine.

 -- Type de données : krb5-configuration

     ‘allow-weak-crypto?’ (par défaut : ‘#f’)
          Si ce drapeau est ‘#t’ les services qui n’offrent que des
          algorithmes de chiffrement faibles seront acceptés.

     ‘default-realm’ (par défaut : ‘#f’)
          Ce champ devrait être une chaîne identifiant le domaine
          Kerberos par défaut pour le client. Vous devriez mettre le nom
          de votre domaine Kerberos dans ce champ. Si cette valeur est
          ‘#f’ alors un domaine doit être spécifié pour chaque principal
          Kerberos à l’invocation des programmes comme ‘kinit’.

     ‘realms’
          Cela doit être une liste non-vide d’objets ‘krb5-realm’,
          auxquels les clients peuvent accéder. Normalement, l’un
          d’entre eux aura un champ ‘name’ qui correspond au champ
          ‘default-realm’.

Service PAM krb5
................

Le service ‘pam-krb5’ permet la connexion et la gestion des mots de
passe par Kerberos. Vous aurez besoin de ce service si vous voulez que
les applications qui utilisent PAM puissent authentifier automatiquement
les utilisateurs avec Kerberos.

 -- Variable Scheme : pam-krb5-service-type
     Un type de service pour le module PAM Kerberos 5.

 -- Type de données : pam-krb5-configuration
     Type de données représentant la configuration du module PAM
     Kerberos 5. Ce type a les paramètres suivants :
     ‘pam-krb5’ (par défaut : ‘pam-krb5’)
          Le paquet pam-krb5 à utiliser.

     ‘minimum-uid’ (par défaut : ‘1000’)
          Le plus petite ID utilisateur pour lequel les
          authentifications Kerberos devraient être tentées. Les comptes
          locaux avec une valeur plus petite échoueront silencieusement
          leur authentification Kerberos.


File: guix.fr.info,  Node: Services LDAP,  Next: Services web,  Prev: Services Kerberos,  Up: Services

10.8.17 Services LDAP
---------------------

Le module ‘(gnu services authentication)’ fournit le type de service
‘nslcd-service-type’, qui peut être utilisé pour l’authentification par
LDAP. En plus de configurer le service lui-même, vous pouvez ajouter
‘ldap’ comme service de noms au Name Service Switch. *Note Name Service
Switch:: pour des informations détaillées.

   Voici une déclaration de système d’exploitation simple avec une
configuration par défaut pour ‘nslcd-service-type’ et une configuration
du Name Service Switch qui consulte le service de noms ‘ldap’ en dernier
:

     (use-service-modules authentication)
     (use-modules (gnu system nss))
     ...
     (operating-system
       ...
       (services
         (cons*
           (service nslcd-service-type)
           (service dhcp-client-service-type)
           %base-services))
       (name-service-switch
        (let ((services (list (name-service (name "db"))
                              (name-service (name "files"))
                              (name-service (name "ldap")))))
          (name-service-switch
           (inherit %mdns-host-lookup-nss)
           (password services)
           (shadow   services)
           (group    services)
           (netgroup services)
           (gshadow  services)))))

   Les champs de ‘nslcd-configuration’ disponibles sont :

 -- paramètre de ‘nslcd-configuration’ : package nss-pam-ldapd
     Le paquet ‘nss-pam-ldapd’ à utiliser.

 -- paramètre de ‘nslcd-configuration’ : maybe-number threads
     Le nombre de threads à démarrer qui peuvent gérer les requête et
     effectuer des requêtes LDAP. Chaque thread ouvre une connexion
     séparée au serveur LDAP. La valeur par défaut est de 5 threads.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : string uid
     Cela spécifie l’id de l’utilisateur sous lequel le démon devrait
     tourner.

     La valeur par défaut est ‘"nslcd"’.

 -- paramètre de ‘nslcd-configuration’ : string gid
     Cela spécifie l’id du groupe sous lequel le démon devrait tourner.

     La valeur par défaut est ‘"nslcd"’.

 -- paramètre de ‘nslcd-configuration’ : log-option log
     Cette option contrôle la journalisation via une liste contenant le
     schéma et le niveau. Le schéma peut être soit un symbole ‘none’,
     ‘syslog’, soit un nom de fichier absolu. Le niveau est facultatif
     et spécifie le niveau de journalisation. Le niveau de
     journalisation peut être l’un des symboles suivants :‘crit’,
     ‘error’, ‘warning’, ‘notice’, ‘info’ ou ‘debug’. Tous les messages
     avec le niveau spécifié ou supérieurs sont enregistrés.

     La valeur par défaut est ‘("/var/log/nslcd" info)’.

 -- paramètre de ‘nslcd-configuration’ : list uri
     La liste des URI des serveurs LDAP. Normalement, seul le premier
     serveur sera utilisé avec les serveurs suivants comme secours.

     La valeur par défaut est ‘("ldap://localhost:389/")’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string ldap-version
     La version du protocole LDAP à utiliser. La valeur par défaut est
     d’utiliser la version maximum supportée par la bibliothèque LDAP.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string binddn
     Spécifie le nom distingué avec lequel se lier au serveur de
     répertoire pour les recherches. La valeur par défaut est de se lier
     anonymement.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string bindpw
     Spécifie le mot de passe avec lequel se lier. Cette option n’est
     valable que lorsqu’elle est utilisée avec binddn.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string rootpwmoddn
     Spécifie le nom distingué à utiliser lorsque l’utilisateur root
     essaye de modifier le mot de passe d’un utilisateur avec le module
     PAM.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string rootpwmodpw
     Spécifie le mot de passe à utiliser pour se lier si l’utilisateur
     root essaye de modifier un mot de passe utilisateur. Cette option
     n’est valable que si elle est utilisée avec rootpwmoddn

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string sasl-mech
     Spécifie le mécanisme SASL à utiliser lors de l’authentification
     SASL.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string sasl-realm
     Spécifie le royaume SASL à utiliser pour effectuer une
     authentification SASL.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string sasl-authcid
     Spécifie l’identité d’authentification à utiliser pour effectuer
     une authentification SASL.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string sasl-authzid
     Spécifie l’identité d’autorisation à utiliser lors d’une
     authentification SASL.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-boolean
          sasl-canonicalize?
     Détermine si le nom d’hôte du serveur LDAP devrait être canonalisé.
     Si c’est activé la bibliothèque LDAP effectuera une recherche de
     nom d’hôte inversée. Par défaut, il est laissé à la bibliothèque
     LDAP le soin de savoir si la vérification doit être effectuée ou
     non.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string krb5-ccname
     Indique le nom du cache d’informations de connexion de GSS-API
     Kerberos.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : string base
     La base de recherche de répertoires.

     La valeur par défaut est ‘"dc=example,dc=com"’.

 -- paramètre de ‘nslcd-configuration’ : scope-option scope
     Spécifie la portée de la recherche (subtree, onelevel, base ou
     children). La portée par défaut est subtree ; la portée base n’est
     presque jamais utile pour les recherches de service de noms ; la
     portée children n’est pas prise en charge par tous les serveurs.

     La valeur par défaut est ‘(subtree)’.

 -- paramètre de ‘nslcd-configuration’ : maybe-deref-option deref
     Spécifie la politique de déréférencement des alias. La politique
     par défaut est de ne jamais déréférencer d’alias.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-boolean referrals
     Spécifie s’il faut activer le suivi de référence. Le comportement
     par défaut est de suivre les références.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : list-of-map-entries maps
     Cette option permet d’ajouter des attributs personnalisés à
     rechercher à la place des attributs par défaut de la RFC 2307.
     C’est une liste de correspondances, consistant chacune en un nom,
     en l’attribut RFC 2307 à utiliser et l’expression de la requête
     pour l’attribut tel qu’il sera disponible dans le répertoire.

     La valeur par défaut est ‘()’.

 -- paramètre de ‘nslcd-configuration’ : list-of-filter-entries filters
     Une liste de filtres consistant en le nom d’une correspondance à
     laquelle applique le filtre et en une expression de filtre de
     recherche LDAP.

     La valeur par défaut est ‘()’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number bind-timelimit
     Spécifie la limite de temps en seconds à utiliser lors de la
     connexion au serveur de répertoire. La valeur par défaut est de 10
     secondes.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number timelimit
     Spécifie la limite de temps (en secondes) à attendre une réponse
     d’un serveur LDAP. La valeur de zéro, par défaut, permet d’attendre
     indéfiniment la fin des recherches.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number idle-timelimit
     Spécifie la période d’inactivité (en seconde) après laquelle la
     connexion au serveur LDAP sera fermée. La valeur par défaut est de
     ne jamais la fermer.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number
          reconnect-sleeptime
     Spécifie le nombre de secondes pendant laquelle attendre lorsque la
     connexion à tous les serveurs LDAP a échouée. Par défaut, il y a
     une seconde d’attente entre le premier échec et la tentative
     suivante.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number
          reconnect-retrytime
     Spécifie la durée après laquelle le serveur LDAP est considéré
     comme définitivement inatteignable. Une fois cette durée atteinte,
     les tentatives de connexions n’auront plus lieu qu’une fois par cet
     intervalle de temps. La valeur par défaut est de 10 secondes.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-ssl-option ssl
     Spécifie s’il faut utiliser SSL/TLS ou non (la valeur par défaut
     est non). Si ’start-tls est spécifié alors StartTLS est utilisé à
     la place de LDAP sur SSL.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-tls-reqcert-option
          tls-reqcert
     Spécifie quelles vérifications effectuer sur les certificats donnés
     par les serveurs. La signification des valeurs est décrite dans la
     page de manuel de ldap.conf(5).

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string tls-cacertdir
     Spécifie le répertoire contenant les certificats X.509 pour
     l’authentification des pairs. Ce paramètre est ignoré quand il est
     utilisé avec GnuTLS.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string tls-cacertfile
     Spécifie le chemin des certificats X.509 pour l’authentification
     des pairs.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string tls-randfile
     Spécifie le chemin d’une source d’entropie. Ce paramètre est ignoré
     quand il est utilisé avec GnuTLS.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string tls-ciphers
     Spécifie les suites de chiffrements à utiliser pour TLS en tant que
     chaîne de caractères.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string tls-cert
     Spécifie le chemin vers le fichier contenant le certificat local
     pour l’authentification TLS du client.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string tls-key
     Spécifie le chemin du fichier contenant la clef privée pour
     l’authentification TLS du client.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number pagesize
     Indiquez un nombre plus grand que 0 pour demander des résultats
     paginés au serveur LDAP en accord avec la RFC 2696. La valeur par
     défaut (0) est de ne pas demander de pagination des résultats.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-ignore-users-option
          nss-initgroups-ignoreusers
     Cette option évite les recherches d’appartenance au groupe à
     travers le LDAP pour les utilisateurs spécifiés. Autrement, la
     valeur ’all-local peut être utilisée. Avec cette valeur nslcd
     construit une liste complète des utilisateurs non-LDAP au
     démarrage.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number nss-min-uid
     Cette option s’assure que les utilisateurs LDAP avec un id
     utilisateur numérique plus petit que la valeur spécifiée sont
     ignorés.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number nss-uid-offset
     Cette option spécifie un décalage à ajouter à tous les id
     utilisateurs numériques LDAP. Cela peut être utile pour éviter des
     collisions d’id utilisateurs avec des utilisateurs locaux.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-number nss-gid-offset
     Cette option spécifie un décalage à ajouter à tous les id de groupe
     numériques LDAP. Cela peut être utile pour éviter des collisions
     d’id utilisateurs avec des groupes locaux.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-boolean nss-nested-groups
     Si cette option est indiquée, l’attribut de membre de groupe peut
     pointer vers un autre groupe. Les membres de groupes imbriqués sont
     aussi renvoyés dans le groupe de haut-niveau et les groupes parents
     sont renvoyés lorsqu’on recherche un utilisateur spécifique. La
     valeur par défaut est de ne pas effectuer de recherche
     supplémentaire sur les groupes imbriqués.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-boolean
          nss-getgrent-skipmembers
     Si cette option est indiqée, la liste de membres du groupe n’est
     pas récupérée lorsqu’on cherche un groupe. Les recherches pour
     trouver les groupes auxquels un utilisateur appartient resteront
     fonctionnelles donc l’utilisateur obtiendra probablement les bons
     groupes à la connexion.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-boolean
          nss-disable-enumeration
     Si cette option est indiquée, les fonctions qui causent le
     chargement de toutes les entrées d’utilisateur et de groupe depuis
     le répertoire ne pourront pas le faire. Cela peut grandement
     diminuer la charge du serveur LDAP dans des situations où il y a
     beaucoup d’utilisateurs et de groupes. Cette option n’est pas
     recommandées pour la plupart des configurations.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string validnames
     Cette option peut être utilisée pour spécifier comment les noms
     d’utilisateurs et de groupes sont vérifiés sur le système. Ce motif
     est utilisé pour vérifier tous les noms d’utilisateurs et de
     groupes qui sont demandés et renvoyés par le LDAP.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-boolean ignorecase
     Cela spécifie s’il faut ou non effectuer des recherches avec une
     correspondance sensible à la casse. Activer cela pourrait mener à
     des vulnérabilités de type contournement d’authentification sur le
     système et introduire des vulnérabilité d’empoisonnement de cache
     nscd qui permettent un déni de service.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-boolean pam-authc-ppolicy
     Cette option spécifie si des contrôles de la politique de mots de
     passe sont demandés et gérés par le serveur LDAP à
     l’authentification de l’utilisateur.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string pam-authc-search
     Par défaut nslcd effectue une recherche LDAP avec le mot de passe
     de l’utilisateur après BIND (authentification) pour s’assurer que
     l’opération BIND a bien réussi. La recherche par défaut est une
     simple vérification que le DN de l’utilisateur existe. Un filtre de
     recherche peut être spécifié pour l’utiliser à la place. Il devrait
     renvoyer au moins une entrée.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string pam-authz-search
     Cette option permet la configuration fine et flexible de la
     vérification d’autorisation qui devrait être effectuée. Le filtre
     de recherche est exécuté et si une entrée correspond, l’accès est
     autorisé, sinon il est refusé.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : maybe-string
          pam-password-prohibit-message
     Si cette option est indiquée, la modification de mot de passe par
     pam_ldap sera refusée et le message spécifié sera présenté à
     l’utilisateur à la place. Le message peut être utilisé pour
     rediriger les utilisateurs vers une autre méthode pour changer leur
     mot de passe.

     La valeur par défaut est ‘disabled’.

 -- paramètre de ‘nslcd-configuration’ : list pam-services
     Liste de noms de service pam pour lesquels l’authentification LDAP
     devrait suffire.

     La valeur par défaut est ‘()’.


File: guix.fr.info,  Node: Services web,  Next: Services de certificats,  Prev: Services LDAP,  Up: Services

10.8.18 Services web
--------------------

Le module ‘(gnu services web)’ fournit le serveur Apache HTTP, le
serveur web nginx et aussi un démon fastcgi.

Serveur Apache HTTP
...................

 -- Variable Scheme : httpd-service-type
     Type de service pour le serveur Apache HTTP
     (https://httpd.apache.org/) (“httpd”). La valeur de ce type de
     service est un enregistrement ‘httpd-configuration’.

     Un exemple de configuration simple est donné ci-dessous.

          (service httpd-service-type
                   (httpd-configuration
                     (config
                       (httpd-config-file
                         (server-name "www.example.com")
                         (document-root "/srv/http/www.example.com")))))

     D’autres services peuvent aussi étendre ‘httpd-service-type’ pour
     être ajouté à la configuration.

          (simple-service 'www.example.com-server httpd-service-type
                          (list
                            (httpd-virtualhost
                              "*:80"
                              (list (string-join '("ServerName www.example.com"
                                                    "DocumentRoot /srv/http/www.example.com")
                                                 "\n")))))

   Les détails des types d’enregistrement ‘httpd-configuration’,
‘httpd-module’, ‘httpd-config-file’ et ‘httpd-virtualhost’ sont donnés
plus bas.

 -- Type de données : httpd-configuration
     Ce type de données représente la configuration du service httpd.

     ‘package’ (par défaut : ‘httpd’)
          Le paquet httpd à utiliser.

     ‘pid-file’ (par défaut : ‘"/var/run/httpd"’)
          Le fichier de pid utilisé par le service shepherd.

     ‘config’ (par défaut : ‘(httpd-config-file)’)
          Le fichier de configuration à utiliser avec le service httpd.
          La valeur par défaut est un enregistrement ‘httpd-config-file’
          mais cela peut aussi être un G-expression qui génère un
          fichier, par exemple un ‘plain-file’. Un fichier en dehors du
          dépôt peut aussi être spécifié avec une chaîne de caractères.

 -- Type de données : httpd-module
     Ce type de données représente un module pour le service httpd.

     ‘name’
          Le nom du module.

     ‘file’
          Le fichier pour le module. Cela peut être relatif au paquet
          httpd utilisé, l’emplacement absolu d’un fichier ou une
          G-expression pour un fichier dans le dépôt, par exemple
          ‘(file-append mod-wsgi "/modules/mod_wsgi.so")’.

 -- Variable Scheme : %default-httpd-modules
     Une liste par défaut des objets ‘httpd-module’.

 -- Type de données : httpd-config-file
     Ce type de données représente un fichier de configuration pour le
     service httpd.

     ‘modules’ (par défaut : ‘%default-httpd-modules’)
          Les modules à charger. Les modules supplémentaires peuvent
          être ajoutés ici ou chargés par des configuration
          supplémentaires.

          Par exemple, pour gérer les requêtes pour des fichiers PHP,
          vous pouvez utiliser le module ‘mod_proxy_fcgi’ d’Apache avec
          ‘php-fpm-service-type’ :

               (service httpd-service-type
                        (httpd-configuration
                         (config
                          (httpd-config-file
                           (modules (cons*
                                     (httpd-module
                                      (name "proxy_module")
                                      (file "modules/mod_proxy.so"))
                                     (httpd-module
                                      (name "proxy_fcgi_module")
                                      (file "modules/mod_proxy_fcgi.so"))
                                     %default-httpd-modules))
                           (extra-config (list "\
               <FilesMatch \\.php$>
                   SetHandler \"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\"
               </FilesMatch>"))))))
               (service php-fpm-service-type
                        (php-fpm-configuration
                         (socket "/var/run/php-fpm.sock")
                         (socket-group "httpd")))

     ‘server-root’ (par défaut : ‘httpd’)
          Le ‘ServerRoot’ dans le fichier de configuration, par défaut
          le paquet httpd. Les directives comme ‘Include’ et
          ‘LoadModule’ sont prises relativement à la racine du serveur.

     ‘server-name’ (par défaut : ‘#f’)
          Le ‘ServerName’ dans le fichier de configuration, utilisé pour
          spécifier le schéma de requête, le nom d’hôte et le port que
          le serveur utilise pour s’identifier.

          Cela n’a pas besoin d’être dans la configuration du serveur,
          et peut être spécifié dans les hôtes virtuels. La valeur par
          défaut est ‘#f’ pour ne pas spécifier de ‘ServerName’.

     ‘document-root’ (par défaut : ‘"/srv/http"’)
          Le ‘DocumentRoot’ depuis lequel les fichiers seront servis.

     ‘listen’ (par défaut : ‘'("80")’)
          La liste des valeurs pour les directives ‘Listen’ dans le
          fichier de configuration. La valeur devrait être une liste de
          chaînes, où chacune spécifie le port sur lequel écouter et
          éventuellement une adresse IP et un protocole à utiliser.

     ‘pid-file’ (par défaut : ‘"/var/run/httpd"’)
          Le ‘PidFile’ à utiliser. Cela devrait correspondre à
          ‘pid-file’ indiqué dans ‘httpd-configuration’ pour que le
          service Shepherd soit correctement configuré.

     ‘error-log’ (par défaut : ‘"/var/log/httpd/error_log"’)
          Le ‘ErrorLog’ où le serveur écrit les journaux d’erreurs.

     ‘user’ (par défaut : ‘"httpd"’)
          Le ‘User’ en tant que lequel le serveur répondra aux requêtes.

     ‘group’ (par défaut : ‘"httpd"’)
          Le ‘Group’ que le serveur utilisera pour répondre aux
          requêtes.

     ‘extra-config’ (par défaut : ‘(list "TypesConfig etc/httpd/mime.types")’)
          Une liste plate de chaînes et de G-expressions qui seront
          ajoutées à la fin du fichier de configuration.

          N’importe quelle valeur avec laquelle le service est étendu
          sera ajouté à cette liste.

 -- Type de données : httpd-virtualhost
     Ce type de données représente la configuration d’un hôte virtuel
     pour le service httpd.

     Ils devraient être ajoutés à extra-config dans httpd-service.

          (simple-service 'www.example.com-server httpd-service-type
                          (list
                            (httpd-virtualhost
                              "*:80"
                              (list (string-join '("ServerName www.example.com"
                                                    "DocumentRoot /srv/http/www.example.com")
                                                 "\n")))))

     ‘addresses-and-ports’
          L’adresse et le port pour la directive ‘VirtualHost’.

     ‘contents’
          Le contenu de la directive ‘VirtualHost’, cela devrait être
          une liste de chaîne et de G-expressions.

NGINX
.....

 -- Variable Scheme : nginx-service-type
     Type de service pour le serveur web NGinx (https://nginx.org/). La
     valeur de ce service est un enregistrement ‘<nginx-configuration>’.

     Un exemple de configuration simple est donné ci-dessous.

          (service nginx-service-type
                   (nginx-configuration
                     (server-blocks
                       (list (nginx-server-configuration
                               (server-name '("www.example.com"))
                               (root "/srv/http/www.example.com"))))))

     En plus d’ajouter des blocs de serveurs dans la configuration du
     service directement, ce service peut être étendu par d’autres
     services pour ajouter des blocs de serveurs, comme dans cet exemple
     :

          (simple-service 'my-extra-server nginx-service-type
                          (list (nginx-server-configuration
                                  (root "/srv/http/extra-website")
                                  (try-files (list "$uri" "$uri/index.html")))))

   Au démarrage, ‘nginx’ n’a pas encore lu son fichier de configuration,
donc il utilise les fichiers par défaut pour les messages d’erreur. S’il
échoue à charger sa configuration, c’est là où les messages seront
enregistrés. Après la lecture du fichier de configuration, le fichier de
journal d’erreur par défaut change en fonction de celle-ci. Dans notre
cas, les messages d’erreur au démarrage se trouvent dans
‘/var/run/nginx/logs/error.log’ et après la configuration dans
‘/var/log/nginx/error.log’. Ce second emplacement peut être modifié avec
l’option de configuration LOG-DIRECTORY.

 -- Type de données : nginx-configuration
     Ce type de données représente la configuration de NGinx. Certaines
     configurations peuvent se faire ici et d’autres fournissent des
     types d’enregistrement ou éventuellement, on peut fournir un
     fichier de configuration.

     ‘nginx’ (par défaut : ‘nginx’)
          Le paquet nginx à utiliser.

     ‘log-directory’ (par défaut : ‘"/var/log/nginx"’)
          Le répertoire dans lequel NGinx écrira ses fichiers journaux.

     ‘run-directory’ (par défaut : ‘"/var/run/nginx"’)
          Le répertoire dans lequel NGinx créera un fichier de pid et
          écrira des fichiers temporaires.

     ‘server-blocks’ (par défaut : ‘'()’)
          Une liste de “blocs serveur” à créer dans le fichier de
          configuration généré, dont les éléments sont de type
          ‘<nginx-server-configuration>’.

          L’exemple suivant paramètre NGinx pour servir
          ‘www.example.com’ depuis le répertoire
          ‘/srv/http/www.example.com’ sans utiliser HTTPS.
               (service nginx-service-type
                        (nginx-configuration
                          (server-blocks
                            (list (nginx-server-configuration
                                    (server-name '("www.example.com"))
                                    (root "/srv/http/www.example.com"))))))

     ‘upstream-blocks’ (par défaut : ‘'()’)
          Une liste de “blocs amont” à créer dans le fichier de
          configuration généré, dont les éléments sont de type
          ‘<nginx-upstream-configuration>’.

          Configurer les serveurs amont à travers les ‘upstream-blocks’
          peut être utile en combinaison avec ‘locations’ dans les
          enregistrements ‘<nginx-server-configuration>’. L’exemple
          suivant crée une configuration de serveur avec une
          configuration « location » qui sera mandataire pour une
          configuration amont, qui gérera les requêtes avec deux
          serveurs.

               (service
                 nginx-service-type
                 (nginx-configuration
                   (server-blocks
                     (list (nginx-server-configuration
                             (server-name '("www.example.com"))
                             (root "/srv/http/www.example.com")
                             (locations
                               (list
                                 (nginx-location-configuration
                                 (uri "/path1")
                                 (body '("proxy_pass http://server-proxy;"))))))))
                   (upstream-blocks
                     (list (nginx-upstream-configuration
                             (name "server-proxy")
                             (servers (list "server1.example.com"
                                            "server2.example.com")))))))

     ‘file’ (par défaut : ‘#f’)
          Si un fichier de configuration FILE est fourni, il sera
          utilisé au lieu de générer un fichier de configuration à
          partir des ‘log-directory’, ‘run-directory’, ‘server-blocks’
          et ‘upstream-blocks’ fournis. Pour un bon fonctionnement, ces
          arguments devraient correspondre à ce qui se trouve dans FILE
          pour s’assurer que les répertoires sont créé lorsque le
          service est activé.

          Cela peut être utile si vous avez déjà un fichier de
          configuration existant ou s’il n’est pas possible de faire ce
          dont vous avez besoin avec les autres parties de
          l’enregistrement nginx-configuration.

     ‘server-names-hash-bucket-size’ (par défaut : ‘#f’)
          Taille du seau pour les tables de hashage des noms de
          serveurs, par dauft ‘#f’ pour utilise la taille des lignes de
          cache du processeur.

     ‘server-names-hash-bucket-max-size’ (par défaut : ‘#f’)
          Taille maximum des seaux pour les tables de hashage des
          serveurs de noms.

     ‘modules’ (par défaut : ‘'()’)
          Liste de modules dynamiques de nginx à charger. Cela devrait
          être une liste de noms de fichiers de modules chargeables,
          comme dans cet exemple :

               (modules
                (list
                 (file-append nginx-accept-language-module "\
               /etc/nginx/modules/ngx_http_accept_language_module.so")
                 (file-append nginx-lua-module "\
               /etc/nginx/modules/ngx_http_lua_module.so")))

     ‘lua-package-path’ (par défaut : ‘'()’)
          Liste des paquets lua à charger. Cela devrait être une liste
          de noms de paquets de modules lua chargeables, comme dans cet
          exemple :

               (lua-package-path (list lua-resty-core
                                       lua-resty-lrucache
                                       lua-resty-signal
                                       lua-tablepool
                                       lua-resty-shell))

     ‘lua-package-cpath’ (par défaut : ‘'()’)
          Liste de paquets lua C à charger. cela devrait être une liste
          de noms de paquets de modules lua C, comme dans cet exemple :

               (lua-package-cpath (list lua-resty-signal))

     ‘global-directives’ (par défaut : ‘'((events . ()))’)
          Liste d’association des directives globales pour le plus haut
          niveau de la configuration de nginx. Les valeurs peuvent
          elles-mêmes être des listes d’association.

               (global-directives
                `((worker_processes . 16)
                  (pcre_jit . on)
                  (events . ((worker_connections . 1024)))))

     ‘extra-content’ (par défaut : ‘""’)
          Contenu supplémentaire du bloc ‘http’. Cela devrait être une
          chaîne ou un G-expression.

 -- Type de données : nginx-server-configuration
     Type de données représentant la configuration d’un bloc serveur de
     nginx. Ce type a les paramètres suivants :

     ‘listen’ (par défaut : ‘'("80" "443 ssl")’)
          Chaque directive ‘listen’ indique l’adresse et le port pour le
          protocole IP ou le chemin d’un socket UNIX-domain sur lequel
          le serveur acceptera les connexions. On peut spécifier
          l’adresse et le port, ou juste l’adresse ou juste le port. Une
          adresse peut aussi être un nom d’hôte, par exemple :

               '("127.0.0.1:8000" "127.0.0.1" "8000" "*:8000" "localhost:8000")

     ‘server-name’ (par défaut : ‘(list 'default)’)
          Une liste de noms de serveurs que ce serveur représente.
          ‘'default’ représente le serveur par défaut pour les
          connexions qui ne correspondent à aucun autre serveur.

     ‘root’ (par défaut : ‘"/srv/http"’)
          Racine du site web que sert nginx.

     ‘locations’ (par défaut : ‘'()’)
          Une liste d’enregistrements “nginx-location-configuration” ou
          “nginx-named-location-configuration” à utiliser dans ce bloc
          serveur.

     ‘index’ (par défaut : ‘(list "index.html")’)
          Fichiers d’index à chercher lorsque les clients demandent un
          répertoire. S’il ne peut pas être trouvé, Nginx enverra la
          liste des fichiers dans le répertoire.

     ‘try-files’ (par défaut : ‘'()’)
          Une liste de fichiers dont l’existence doit être vérifiée dans
          l’ordre spécifié. ‘nginx’ utilisera le premier fichier trouvé
          pour satisfaire la requête.

     ‘ssl-certificate’ (par défaut : ‘#f’)
          Où trouver les certificats pour les connexions sécurisées.
          Indiquez ‘#f’ si vous n’avez pas de certificats et que vous ne
          voulez pas utiliser HTTPS.

     ‘ssl-certificate-key’ (par défaut : ‘#f’)
          Où trouver la clef privée pour les connexions sécurisées.
          Indiquez ‘#f’ si vous n’avez pas de clef et que vous ne voulez
          pas utiliser HTTPS.

     ‘server-tokens?’ (par défaut : ‘#f’)
          Indique si le serveur devrait ajouter sa configuration dans
          les réponses.

     ‘raw-content’ (par défaut : ‘'()’)
          Une liste de lignes brutes à ajouter dans le bloc serveur.

 -- Type de données : nginx-upstream-configuration
     Type de données représentant la configuration d’un bloc ‘upstream’
     nginx. Ce type a les paramètres suivants :

     ‘name’
          Nome de ces groupe de serveurs.

     ‘serveurs’
          Spécifie les adresses des serveurs dans le groupe. L’adresse
          peut être spécifié avec une adresse IP (p. ex. ‘127.0.0.1’),
          un nom de domaine (p. ex. ‘backend1.example.com’) ou un chemin
          vers un socket UNIX avec le préfixe ‘unix:’. Pour les adresse
          utilisant une adresse IP ou un nom de domaine, le port par
          défaut est 80 et un port différent peut être spécifié
          explicitement.

 -- Type de données : nginx-location-configuration
     Type de données représentant la configuration d’un bloc ‘location’
     nginx. Ce type a les paramètres suivants :

     ‘uri’
          URI qui correspond à ce bloc.

     ‘body’
          Corps du block location, spécifié comme une liste de chaînes
          de caractères. Cela peut contenir de nombreuses directives de
          configuration. Par exemple, pour passer des requêtes à un
          groupe de serveurs amont définis dans un bloc
          ‘nginx-upstream-configuration’, la directive suivante peut
          être spécifiée dans le corps : ‘(list "proxy_pass
          http://upstream-name;")’.

 -- Type de données : nginx-named-location-configuration
     Type de données représentant la configuration d’un bloc location
     nginx nommé. Les blocs location nommés sont utilisé les
     redirections de requêtes et pas pour le traitement des requêtes
     normales. Ce type a les paramètres suivants :

     ‘name’
          Nom pour identifier ce bloc location.

     ‘body’
          *Note nginx-location-configuration body::, comme le corps d’un
          bloc location nommé peut être utilisé de la même manière que
          ‘nginx-location-configuration body’. Une restriction est que
          le corps d’un bloc location nommé ne peut pas contenir de bloc
          location.

Cache Varnish
.............

Varnish est un serveur de cache rapide qui se trouve entre les
applications web et les utilisateurs. Il sert de serveur mandataire pour
les requêtes des clients et met les URL accédées en cache pour que
plusieurs requêtes à la même ressource ne crée qu’une requête au moteur.

 -- Variable Scheme : varnish-service-type
     Type de service pour le démon Varnish.

 -- Type de données : varnish-configuration
     Type de données représentant la configuration du service ‘varnish’.
     Ce type a les paramètres suivants :

     ‘package’ (par défaut : ‘varnish’)
          Le paquet Varnish à utiliser.

     ‘name’ (par défaut : ‘"default"’)
          Un nom pour cet instance de Varnish. Varnish va créer un
          répertoire dans ‘/var/varnish/’ avec ce nom et gardera des
          fichiers temporaires à cet endroit. Si le nom commence par une
          barre oblique, il est interprété comme un nom de répertoire
          absolu.

          Passez l’argument ‘-n’ aux autres programmes Varnish pour vous
          connecter à l’instance nommée, p. ex. ‘varnishncsa -n
          default’.

     ‘backend’ (par défaut : ‘"localhost:8080"’)
          Le moteur à utiliser. Cette option n’a pas d’effet si ‘vcl’
          est vrai.

     ‘vcl’ (par défaut : #f)
          Le programme “VCL” (Varnish Configuration Language) à lancer.
          Si la valeur est ‘#f’, Varnsh servira de mandataire pour
          ‘backend’ avec la configuration par défaut. Sinon, ce doit
          être un objet simili-fichier avec une syntaxe VCL valide.

          Par exemple, pour créer un miroir de www.gnu.org
          (https://www.gnu.org) avec VCL vous pouvez faire quelque chose
          comme cela :

               (define %gnu-mirror
                 (plain-file "gnu.vcl"
                             "vcl 4.1;
               backend gnu { .host = \"www.gnu.org\"; }"))

               (operating-system
                 ;; ...
                 (services (cons (service varnish-service-type
                                          (varnish-configuration
                                           (listen '(":80"))
                                           (vcl %gnu-mirror)))
                                 %base-services)))

          On peut inspecter la configuration d’une instance Varnish
          actuellement lancée en utilisant le programme ‘varnishadm’.

          Consultez le guide utilisateur de varnish
          (https://varnish-cache.org/docs/) et le livre varnish
          (https://book.varnish-software.com/4.0/) pour une
          documentation complète sur Varnish et son langage de
          configuration.

     ‘listen’ (par défaut : ‘'("localhost:80")’)
          Liste des adresses sur lesquelles écoute Varnish.

     ‘storage’ (par défaut : ‘'("malloc,128m")’)
          Liste de moteurs de stockage qui seront disponibles en VCL.

     ‘parameters’ (par défaut : ‘'()’)
          Liste des paramètres à l’exécution de la forme ‘'(("parameter"
          . "value"))’.

     ‘extra-options’ (par défaut : ‘'()’)
          Arguments supplémentaires à passer au processus ‘varnishd’.

Patchwork
.........

Patchwork est un système de suivi de correctifs. Il peut récupérer des
correctifs envoyés à une liste de diffusion, et les afficher sur une
interface web.

 -- Variable Scheme : patchwork-service-type
     Type de service pour Patchwork.

   L’exemple suivant est un exemple de service Patchwork minimal, pour
le domaine ‘patchwork.example.com’.

     (service patchwork-service-type
              (patchwork-configuration
               (domain "patchwork.example.com")
               (settings-module
                (patchwork-settings-module
                 (allowed-hosts (list domain))
                 (default-from-email "patchwork@patchwork.example.com")))
               (getmail-retriever-config
                (getmail-retriever-configuration
                 (type "SimpleIMAPSSLRetriever")
                 (server "imap.example.com")
                 (port 993)
                 (username "patchwork")
                 (password-command
                  (list (file-append coreutils "/bin/cat")
                        "/etc/getmail-patchwork-imap-password"))
                 (extra-parameters
                 '((mailboxes . ("Patches"))))))))


   Il y a trois enregistrements pour configurer le service Patchwork. Le
‘<patchwork-configuration>’ correspond à la configuration de Patchwork
dans le service HTTPD.

   Le champ ‘settings-module’ dans l’enregistrement
‘<patchwork-configuration>’ peut être rempli avec l’enregistrement
‘<patchwork-settings-modules>’, qui décrit un module de paramètres
généré dans le dépôt de Guix.

   Pour le champ ‘database-configuration’ dans
‘<patchwork-settings-module>’, il faut utiliser un
‘<patchwork-dataase-configuration>’.

 -- Type de données : patchwork-configuration
     Type de données représentant la configuration du service Patchwork.
     Ce type a les paramètres suivants :

     ‘patchwork’ (par défaut : ‘patchwork’)
          Le paquet Patchwork à utiliser.

     ‘domain’
          Le domaine à utiliser pour Patchwork, utilisé comme hôte
          virtuel dans le service HTTPD.

     ‘settings-module’
          Le module de paramètres à utiliser pour Patchwork. En tant
          qu’application Django, Patchwork est configuré avec un module
          Python contenant les paramètres. Il peut s’agir d’une instance
          de l’enregistrement ‘<patchwork-settings-module>’, de
          n’importe quel enregistrement qui représente les paramètres
          dans le dépôt, ou un répertoire en dehors du dépôt.

     ‘static-path’ (par défaut : ‘"/static/"’)
          Le chemin dans lequel le service HTTPD devrait servir les
          fichiers statiques.

     ‘getmail-retriever-config’
          La valeur d’enregistrement getmail-retriever-configuration à
          utiliser avec Patchwork. getmail sera configuré avec cette
          valeur, les messages seront livrés à Patchwork.

 -- Type de données : patchwork-settings-module
     Type de données représentant le module de paramètres de Patchwork.
     Certains de ces paramètres sont liés à Patchwork, mais d’autres
     sont liés à Django, le cadriciel web utilisé par Patchwork, ou la
     bibliothèque Django Rest Framework. Ce type a les paramètres
     suivants :

     ‘database-configuration’ (par défaut : ‘(patchwork-database-configuration)’)
          Les paramètres de connexion à la base de données à utiliser
          pour Patchwork. Voir le type d’enregistrement
          ‘<patchwork-database-configuration>’ pour plus d’information.

     ‘secret-key-file’ (par défaut : ‘"/etc/patchwork/django-secret-key"’)
          Patchwork, en tant qu’application web Django, utilise une clé
          secrète pour signer des valeurs avec de la cryptographie. Ce
          fichier devrait contenir une valeur unique imprévisible.

          Si ce fichier n’existe pas, il sera créé avec une valeur
          aléatoire par le service patchwork-setup.

          Ce paramètre est lié à Django.

     ‘allowed-hosts’
          Une liste des hôtes valides pour ce service Patchwork. Cela
          doit au minimum inclure le domaine spécifié dans
          l’enregistrement ‘<patchwork-configuration>’.

          C’est un paramètre pour Django.

     ‘default-from-email’
          L’adresse de courriel sur laquelle Patchwork devrait envoyer
          les courriels par défaut.

          C’est un paramètre de Patchwork.

     ‘static-url’ (par défaut : ‘#f’)
          L’URL à utiliser pour servir les ressources statiques. Cela
          peut être un bout d’URL ou une URL complète, mais doit finir
          par ‘/’.

          Si la valeur par défaut est utilisée, la valeur ‘static-path’
          de ‘<patchwork-configuration>’ sera utilisée.

          C’est un paramètre pour Django.

     ‘admins’ (par défaut : ‘'()’)
          Adresses de courriel auxquelles envoyer le détails des erreurs
          s’il y en a. Chaque valeur de la liste contient deux éléments,
          le nom et l’adresse de courriel.

          C’est un paramètre pour Django.

     ‘debug?’ (par défaut : ‘#f’)
          Indique s’il faut lancer Patchwork en mode de débogage. Si la
          valeur est ‘#t’, les messages d’erreur détaillés seront
          affichés.

          C’est un paramètre pour Django.

     ‘enable-rest-api?’ (par défaut : ‘#t’)
          Indique s’il faut activer l’API REST de Patchwork.

          C’est un paramètre de Patchwork.

     ‘enable-xmlrpc?’ (par défaut : ‘#t’)
          Indique s’il faut active l’API RPC en XML.

          C’est un paramètre de Patchwork.

     ‘force-https-links?’ (par défaut : ‘#t’)
          Indique s’il faut utiliser des liens HTTPS sur les pages de
          Patchwork.

          C’est un paramètre de Patchwork.

     ‘extra-settings’ (par défaut : ‘""’)
          Code supplémentaire à placer à la fin du module de paramètres
          de Patchwork.

 -- Type de données : patchwork-database-configuration
     Type de données représentant la configuration de la base de données
     de Patchwork.

     ‘engine’ (par défaut : ‘"django.db.backends.postgresql_psycopg2"’)
          Le moteur de base de données à utiliser.

     ‘name’ (par défaut : ‘"patchwork"’)
          Le nom de la base de données à utiliser.

     ‘user’ (par défaut : ‘"httpd"’)
          L’utilisateur à utiliser pour se connecter à la base de
          données.

     ‘password’ (par défaut : ‘""’)
          Le mot de passe à utiliser lors de la connexion à la base de
          données.

     ‘host’ (par défaut : ‘""’)
          L’hôte sur lequel se connecter à la base de données.

     ‘port’ (par défaut : ‘""’)
          Le port sur lequel se connecter à la base de données.

Mumi
....

Mumi (https://git.elephly.net/gitweb.cgi?p=software/mumi.git) est une
interface Web pour le logiciel de suivi de bogues Debbugs, par défaut
pour l’instance de GNU (https://bugs.gnu.org). Mumi est un serveur Web,
mais il récupère et indexe aussi les courriels provenant de Debbugs.

 -- Variable Scheme : mumi-service-type
     Le type de service pour Mumi.

 -- Type de données : mumi-configuration
     Type de données représentant la configuration du service Mumi. Ce
     type a les champs suivants :

     ‘mumi’ (par défaut : ‘mumi’)
          Le paquet Mumi à utiliser.

     ‘mailer?’ (par défaut : ‘#true’)
          Indique s’il faut activer le composant d’envoie de courriels.

     ‘mumi-configuration-sender’
          L’adresse de courriel utilisée comme expéditeur pour les
          commentaires.

     ‘mumi-configuration-smtp’
          Une URI pour configurer les paramètres SMTP pour Mailutils.
          Cela peut être quelque chose comme
          ‘sendmail:///path/to/bin/msmtp’ ou toute autre URI prise en
          charge par Mailutils. *Note SMTP Mailboxes: (mailutils)SMTP
          Mailboxes.

FastCGI
.......

FastCGI est une interface entre le frontal et le moteur d’un service
web. C’est un dispositif quelque peu désuet ; les nouveaux services
devraient généralement juste parler HTTP entre le frontal et le moteur.
Cependant il y a un certain nombre de services de moteurs comme PHP ou
l’accès aux dépôts Git optimisé en HTTP qui utilisent FastCGI, donc nous
le supportons dans Guix.

   Pour utiliser FastCGI, vous configurez le serveur web frontal (p. ex.
nginx) pour envoyer un sous-ensemble de ses requêtes au moteur fastcgi,
qui écoute sur un socket UNIX ou TCP local. Il y a un programme
‘fcgiwrap’ intermédiaire qui se trouve entre le processus du moteur et
le serveur web. Le frontal indique quel moteur lancer, en passant cette
information au processus ‘fcgiwrap’.

 -- Variable Scheme : fcgiwrap-service-type
     Un type de service pour le mandataire FastCGI ‘fcgiwrap’.

 -- Type de données : fcgiwrap-configuration
     Type de données représentant la configuration du service
     ‘fcgiwrap’. Ce type a les paramètres suivants :
     ‘package’ (par défaut : ‘fcgiwrap’)
          Le paquet fcgiwrap à utiliser.

     ‘socket’ (par défaut : ‘tcp:127.0.0.1:9000’)
          Le socket sur lequel le processus ‘fcgiwrap’ écoute, en tant
          que chaîne de caractères. Les valeurs valides de SOCKET sont
          ‘unix:/PATH/TO/UNIX/SOCKET’, ‘tcp:DOT.TED.QU.AD:PORT’ et
          ‘tcp6:[IPV6_ADDR]:port’.

     ‘user’ (par défaut : ‘fcgiwrap’)
     ‘group’ (par défaut : ‘fcgiwrap’)
          Les noms de l’utilisateur et du groupe, en tant que chaînes de
          caractères, sous lesquels lancer le processus ‘fcgiwrap’. Le
          service ‘fastcgi’ s’assurera que si l’utilisateur demande les
          noms d’utilisateurs et de groupes ‘fcgiwrap’ l’utilisateur et
          le groupe correspondant seront présents sur le système.

          Il est possible de configurer un service web soutenu par
          FastCGI pour passer les informations d’authentification HTTP
          depuis le frontal jusqu’au moteur, et de permettre à
          ‘fcgiwrap’ dans lancer le processus de moteur avec
          l’utilisateur local correspondant. Pour activer cette
          fonctionnalité sur le moteur, lancez ‘fcgiwrap’ en tant
          qu’utilisateur et groupe ‘root’. Remarquez que cette
          fonctionnalité doit aussi être configurée sur le frontal.

   PHP-FPM (FastCGI Process Manager) est une implémentation FastCGI de
PHP alternative avec quelques fonctionnalités supplémentaires utiles
pour les sites de toutes tailles.

   Ces fonctionnalités comprennent :
   • La création de processus adaptative
   • Des statistiques de base (comme le mod_status d’Apache)
   • La gestion des processus avancée avec arrêt et démarrage sans
     heurts
   • La possibilité de démarrer des processus de travail avec différents
     uid/gid/chroot/environnement et différents php.ini (à la place de
     safe_mode)
   • L’enregistrement des journaux sur stdout et stderr
   • Le redémarrage d’urgence dans le cas de la destruction accidentelle
     du cache des opcodes
   • Le support des téléversements accélérés
   • Le support de « showlog »
   • Des améliorations à FastCGI, comme fastcgi_finish_request() - une
     fonction spéciale pour terminer la requête et nettoyer toutes les
     données tout en continuant à faire d’autres choses qui prennent du
     temps (conversion vidéo, gestion des stats, etc.).
   … et bien plus.

 -- Variable Scheme : php-fpm-service-type
     Un type de service pour ‘php-fpm’.

 -- Type de données : php-fpm-configuration
     Type de données pour la configuration du service php-fpm.
     ‘php’ (par défaut : ‘php’)
          Le paquet php à utiliser.
     ‘socket’ (par défaut : ‘(string-append "/var/run/php" (version-major (package-version php)) "-fpm.sock")’)
          L’adresse sur laquelle accepter les requêtes FastCGI. Les
          syntaxes valides sont :
          ‘"ip.add.re.ss:port"’
               Écoute sur un socket TCP sur l’adresse spécifiée sur un
               port spécifié.
          ‘"port"’
               Écoute sur un socket TCP sur toutes les adresse sur un
               port spécifique.
          ‘"/path/to/unix/socket"’
               Écoute sur un socket unix.

     ‘user’ (par défaut : ‘php-fpm’)
          Utilisateur à qui appartiendra le processus de travail de php.
     ‘group’ (par défaut : ‘php-fpm’)
          Groupe du processus de travail.
     ‘socket-user’ (par défaut : ‘php-fpm’)
          Utilisateur qui peut parler au socket php-fpm.
     ‘socket-group’ (par défaut : ‘nginx’)
          Groupe qui peut parler au socket php-fpm.
     ‘pid-file’ (par défaut : ‘(string-append "/var/run/php" (version-major (package-version php)) "-fpm.pid")’)
          Le pid de php-fpm est écrit dans ce fichier une fois que le
          service a démarré.
     ‘log-file’ (par défaut : ‘(string-append "/var/log/php" (version-major (package-version php)) "-fpm.log")’)
          Fichier de journal pour le processus maître de php-fpm.
     ‘process-manager’ (par défaut : ‘(php-fpm-dynamic-process-manager-configuration)’)
          Configuration détaillée pour le gestionnaire de processus de
          php-fpm. Il doit s’agir soit de :
          ‘<php-fpm-dynamic-process-manager-configuration>’
          ‘<php-fpm-static-process-manager-configuration> ou’
          ‘<php-fpm-on-demand-process-manager-configuration>’
     ‘display-errors’ (par défaut : ‘#f’)
          Détermine si les erreurs et les avertissements php doivent
          être envoyés aux clients et affichés dans leur navigateur.
          Cela est utile pour un développement php local, mais un risque
          pour la sécurité pour les sites publics, comme les messages
          d’erreur peuvent révéler des mots de passes et des données
          personnelles.
     ‘timezone’ (par défaut : ‘#f’)
          Spécifie le paramètre ‘php_admin_value[date.timezone]’.
     ‘workers-logfile’ (par défaut : ‘(string-append "/var/log/php" (version-major (package-version php)) "-fpm.www.log")’)
          Ce fichier enregistrera la sortie ‘stderr’ des processus de
          travail de php. On peut indiquer ‘#f’ pour désactiver la
          journalisation.
     ‘file’ (par défaut : ‘#f’)
          Une version alternative de la configuration complète. Vous
          pouvez utiliser la fonction ‘mixed-text-file’ ou un chemin de
          fichier absolu.
     ‘php-ini-file’ (par défaut : ‘#f’)
          Une version alternative de la configuration de php par défaut.
          Il peut s’agir de n’importe quel objet « simili-fichier »
          (*note file-like objects: G-Expressions.). Vous pouvez
          utiliser la fonction ‘mixed-text-file’ ou un chemin de fichier
          absolu.

          Pour le développement local il est utile d’indiquer un long
          délai d’attente et une limite mémoire plus importante pour les
          processus php créés. Cela se fait avec les bouts de
          configuration systèmes suivants :
               (define %local-php-ini
                 (plain-file "php.ini"
                             "memory_limit = 2G
               max_execution_time = 1800"))

               (operating-system
                 ;; ...
                 (services (cons (service php-fpm-service-type
                                          (php-fpm-configuration
                                           (php-ini-file %local-php-ini)))
                                 %base-services)))

          Consultez les principales directives de php.ini
          (https://www.php.net/manual/en/ini.core.php) pour une
          documentation complète sur les directives ‘php.ini’ possibles.

 -- Type de données : php-fpm-dynamic-process-manager-configuration
     Type de données pour le gestionnaire de processus ‘dynamic’ de
     php-fpm. Avec le gestionnaire de processus ‘dynamic’, des processus
     de travail de secours sont gardés en fonction des limites
     configurées.
     ‘max-children’ (par défaut : ‘5’)
          Nombre maximum de processus de travail.
     ‘start-servers’ (par défaut : ‘2’)
          Nombre de processus de travail au démarrage.
     ‘min-spare-servers’ (par défaut : ‘1’)
          Nombre de processus de travail de secours minimum qui doivent
          rester à disposition.
     ‘max-spare-servers’ (par défaut : ‘3’)
          Nombre maximum de processus de travail de secours qui peuvent
          rester à disposition.

 -- Type de données : php-fpm-static-process-manager-configuration
     Type de données pour le gestionnaire de processus ‘static’ de
     php-fpm. Avec le gestionnaire de processus ‘static’, un nombre
     constant de processus de travail est créé.
     ‘max-children’ (par défaut : ‘5’)
          Nombre maximum de processus de travail.

 -- Type de données : php-fpm-on-demand-process-manager-configuration
     Type de données pour le gestionnaire de processus ‘on-demand’ de
     php-fpm. Avec le gestionnaire de processus ‘on-demand’, les
     processus de travail ne sont créés que lorsque les requêtes
     arrivent.
     ‘max-children’ (par défaut : ‘5’)
          Nombre maximum de processus de travail.
     ‘process-idle-timeout’ (par défaut : ‘10’)
          La durée en secondes après laquelle un processus sans requête
          sera tué.

 -- Procédure Scheme : nginx-php-location [#:nginx-package nginx]
          [socket (string-append "/var/run/php" (version-major
          (package-version php)) "-fpm.sock")]
     Une fonction d’aide pour ajouter rapidement php à un
     ‘nginx-server-configuration’.

   Une configuration simple de services pour php ressemble à ceci :
     (services (cons* (service dhcp-client-service-type)
                      (service php-fpm-service-type)
                      (service nginx-service-type
                               (nginx-server-configuration
                                (server-name '("example.com"))
                                (root "/srv/http/")
                                (locations
                                 (list (nginx-php-location)))
                                (listen '("80"))
                                (ssl-certificate #f)
                                (ssl-certificate-key #f)))
                      %base-services))

   Le générateur d’avatar de chat est un simple service pour démontrer
l’utilisation de php-fpm dans ‘Nginx’. Il permet de générer des avatars
de chats à partir d’une graine, par exemple le hash de l’adresse de
courriel d’un utilisateur.

 -- Procédure Scheme : cat-avatar-generator-service [#:cache-dir
          "/var/cache/cat-avatar-generator"] [#:package
          cat-avatar-generator] [#:configuration
          (nginx-server-configuration)]
     Renvoie un nginx-server-configuration qui hérite de
     ‘configuration’. Il étend la configuration nginx pour ajouter un
     bloc de serveur qui sert ‘package’, une version de
     cat-avatar-generator. Pendant l’exécution, cat-avatar-generator
     pourra utiliser ‘cache-dir’ comme répertoire de cache.

   Une configuration simple de cat-avatar-generator ressemble à ceci :
     (services (cons* (cat-avatar-generator-service
                       #:configuration
                       (nginx-server-configuration
                         (server-name '("example.com"))))
                      ...
                      %base-services))

Hpcguix-web
...........

Le programme hpcguix-web (https://github.com/UMCUGenetics/hpcguix-web/)
est une interface web personnalisable pour naviguer dans les paquets
Guix, initialement conçue pour les utilisateurs des grappes de calcul de
haute performance (HPC).

 -- Variable Scheme : hpcguix-web-service-type
     Le type de service pour ‘hpcguix-web’.

 -- Type de données : hpcguix-web-configuration
     Type de données pour la configuration du service hpcguix-web.

     ‘specs’
          Une gexp (*note G-Expressions::) spécifiant la configuration
          du service hpcguix-web. Les éléments principaux disponibles
          dans cette spec sont :

          ‘title-prefix’ (par défaut : ‘"hpcguix | "’)
               Le préfixe du titre des pages.

          ‘guix-command’ (par défaut : ‘"guix"’)
               La commande ‘guix’.

          ‘package-filter-proc’ (par défaut : ‘(const #t)’)
               Une procédure qui spécifie comment filtrer les paquets
               qui seront affichés.

          ‘package-page-extension-proc’ (par défaut : ‘(const '())’)
               Paquet d’extensions pour ‘hpcguix-web’.

          ‘menu’ (par défaut : ‘'()’)
               Entrée supplémentaire dans la page ‘menu’.

          ‘channels’ (par défaut : ‘%default-channels’)
               Liste des canaux depuis lesquels la liste des paquets est
               construite (*note Canaux::).

          ‘package-list-expiration’ (par défaut : ‘(* 12 3600)’)
               Le temps d’expiration, en secondes, après lequel la liste
               des paquets est reconstruite depuis les dernières
               instance des canaux donnés.

          Voir le dépôt hpcguix-web pour un exemple complet
          (https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm).

     ‘package’ (par défaut : ‘hpcguix-web’)
          Le paquet hpcguix-web à utiliser.

   Une déclaration de service hpcguix-web typique ressemble à cela :

     (service hpcguix-web-service-type
              (hpcguix-web-configuration
               (specs
                #~(define site-config
                    (hpcweb-configuration
                     (title-prefix "Guix-HPC - ")
                     (menu '(("/about" "ABOUT"))))))))

     Remarque : Le service hpcguix-web met régulièrement à jour la liste
     des paquets qu’il publie en récupérant les canaux depuis Git. Pour
     cela, il doit accéder aux certificats X.509 pour qu’il puisse
     authentifier les serveurs Git quand il communique en HTTPS, et il
     suppose que ‘/etc/ssl/certs’ contient ces certificats.

     Ainsi, assurez-vous d’ajouter ‘nss-certs’ ou un autre paquet de
     certificats dans le champ ‘packages’ de votre configuration. *note
     Certificats X.509:: pour plus d’informations sur les certificats
     X.509.

gmnisrv
.......

Le programme gmnisrv (https://git.sr.ht/~sircmpwn/gmnisrv) est un
serveur simple pour le protocole Gemini
(https://gemini.circumlunar.space/).

 -- Variable Scheme : gmnisrv-service-type
     C’est le type du service gmnisrv, dont la valeur devrait être un
     objet ‘gmnisrv-configuration’ comme dans cet exemple :

          (service gmnisrv-service-type
                   (gmnisrv-configuration
                     (config-file (local-file "./my-gmnisrv.ini"))))

 -- Type de données : gmnisrv-configuration
     Type données qui représente la configuration de gmnisrv.

     ‘package’ (par défaut : GMNISRV)
          Objet de paquet du serveur gmnisrv.

     ‘config-file’ (par défaut : ‘%default-gmnisrv-config-file’)
          Objet simili-fichier du fichier de configuration de gmnisrv à
          utiliser. La configuration par défaut écoute sur le port 1965
          et sert les fichiers de ‘/srv/gemini’. Les certificats sont
          stockés dans ‘/var/lib/gemini/certs’. Pour plus
          d’informations, lancez ‘man gmnisrv’ et ‘man gmnisrv.ini’.

Agate
.....

Le programme Agate (gemini://qwertqwefsday.eu/agate.gmi) (page GitHub
sur HTTPS (https://github.com/mbrubeck/agate)) est un serveur simple
pour le protocole Gemini (https://gemini.circumlunar.space/) écrit en
Rust.

 -- Variable Scheme : agate-service-type
     C’est le type du service agate, dont la valeur devrait être un
     objet ‘agate-service-type’ comme dans cet exemple :

          (service agate-service-type
          	 (agate-configuration
          	   (content "/srv/gemini")
          	   (cert "/srv/cert.pem")
          	   (key "/srv/key.rsa")))

     L’exemple ci-dessus représente les changements minimaux nécessaires
     pour qu’Agate soit lancé. Spécifier le chemin du certificat et de
     la clé est toujours nécessaire, car le protocole Gemini nécessite
     TLS par défaut.

     Pour obtenir un certificat et une clé, vous pouvez par exemple
     utiliser OpenSSL, en lançant une commande telle que l’exemple
     suivant :

          openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem \
              -days 3650 -nodes -subj "/CN=example.com"

     Bien sûr, vous devez remplacer example.com par votre propre nom de
     domaine, puis pointer la configuration d’Agate vers le chemin de la
     clé et du certificats générés.

 -- Type de données : agate-configuration
     Type de données représentant la configuration d’Agate.

     ‘package’ (par défaut : ‘agate’)
          Objet de paquet du serveur Agate.

     ‘content’ (par défaut : ‘"/srv/gemini"’)
          Le répertoire à partir duquel Agate servira ses fichiers.

     ‘cert’ (par défaut : ‘#f’)
          Le chemin vers le certificat TLS en PEM à utiliser pour
          chiffrer les connexions. Il doit être rempli avec une valeur
          venant de l’utilisateur.

     ‘key’ (par défaut : ‘#f’)
          Le chemin de fichier vers la clef privée PKCS8 à utilise pour
          les connexions chiffrées. Elle doit être remplie avec une
          valeur de l’utilisateur.

     ‘addr’ (par défaut : ‘'("0.0.0.0:1965" "[::]:1965")’)
          Une liste des adresses sur lesquelles écouter.

     ‘hostname’ (par défaut : ‘#f’)
          Le nom de domaine de ce serveur Gemini. Facultatif.

     ‘lang’ (par défaut : ‘#f’)
          Codes de langues RFC 4646 pour les documents text/gemini.
          Facultatif.

     ‘silent?’ (par défaut : ‘#f’)
          Indiquez ‘#t’ pour désactiver la journalisation de la sortie.

     ‘serve-secret?’ (par défaut : ‘#f’)
          Indiquez ‘#t’ pour servir des fichiers secrets (des fichiers
          et répertoires commençant par un point).

     ‘log-ip?’ (par défaut : ‘#t’)
          Indique si l’adresse IP de sortie doit être journalisée.

     ‘user’ (par défaut : ‘"agate"’)
          Propriétaire du processus ‘agate’.

     ‘group’ (par défaut : ‘"agate"’)
          Groupe du propriétaire du processus ‘agate’.

     ‘log-file’ (par défaut : ‘"/var/log/agate.log"’)
          Le fichier qui devrait contenir la sortie de journal d’Agate.


File: guix.fr.info,  Node: Services de certificats,  Next: Services DNS,  Prev: Services web,  Up: Services

10.8.19 Services de certificats
-------------------------------

Le module ‘(gnu services certbot)’ fournit un service qui récupère
automatiquement un certificat TLS valide de l’autorité de certification
Let’s Encrypt. Ces certificats peuvent ensuite être utilisés pour servir
du contenu de manière sécurisée sur HTTPS et d’autres protocoles basés
sur TLS, en sachant que le client sera capable de vérifier
l’authenticité du serveur.

   Let’s Encrypt (https://letsencrypt.org/) fournit l’outil ‘certbot’
pour automatiser le processus de certification. Cet outil génère d’abord
un clef sur le serveur de manière sécurisée. Ensuite il demande à
l’autorité de certification Let’s Encrypt de signer la clef. La CA
vérifie que la requête provient de l’hôte en question en utilisant un
protocole de défi-réponse, ce qui requiert que le serveur fournisse sa
réponse par HTTP. Si ce protocole se passe sans encombre, la CA signe la
clef et on obtient un certificat. Ce certificat est valide pour une
durée limitée et donc, pour continuer à fournir des services en TLS, le
serveur doit régulièrement demander à la CA de renouveler sa signature.

   Le service certbot automatise ce processus : la génération initiale
de la clef, la demande de certification initiale au service Let’s
Encrypt, l’intégration du protocole de défi/réponse dans le serveur web,
l’écriture du certificat sur le disque, les renouvellements périodiques
et les taches de déploiement avec le renouvellement (p. ex. recharger
les services, copier les clefs avec d’autres permissions).

   Certbot est lancé deux fois par jour, à une minute aléatoire dans
l’heure. Il ne fera rien sauf si vos certificats doivent être renouvelés
ou sont révoqués, mais le lancer régulièrement permettra à vos services
de rester en ligne si Let’s Encrypt décide de révoquer votre certificat.

   En utilisant ce service, vous acceptez le document « ACME Subscriber
Agreement », qu’on peut trouver ici :
<https://acme-v01.api.letsencrypt.org/directory>.

 -- Variable Scheme : certbot-service-type
     Un type de service pour le client Let’s Encrypt ‘certbot’. Sa
     valeur doit être un enregistrement ‘certbot-configuration’ comme
     dans cet exemple :

          (define %nginx-deploy-hook
            (program-file
             "nginx-deploy-hook"
             #~(let ((pid (call-with-input-file "/var/run/nginx/pid" read)))
                 (kill pid SIGHUP))))

          (service certbot-service-type
                   (certbot-configuration
                    (email "foo@example.net")
                    (certificates
                     (list
                      (certificate-configuration
                       (domains '("example.net" "www.example.net"))
                       (deploy-hook %nginx-deploy-hook))
                      (certificate-configuration
                       (domains '("bar.example.net")))))))

     Voir plus bas pour des détails sur ‘certbot-configuration’.

 -- Type de données : certbot-configuration
     Type données représentant la configuration du service ‘certbot’. Ce
     type a les paramètres suivants :

     ‘package’ (par défaut : ‘certbot’)
          Le paquet certbot à utiliser.

     ‘webroot’ (par défaut : ‘/var/www’)
          Le répertoire depuis lequel servir les fichiers du
          défi/réponse de Let’s Encrypt.

     ‘certificates’ (par défaut : ‘()’)
          Une liste de ‘certificates-configuration’ pour lesquels
          générer des certificats et demander des signatures. Chaque
          certificat a un ‘name’ et plusieurs ‘domains’.

     ‘email’ (par défaut : ‘#f’)
          Adresse de courriel facultative pour la création de compte et
          le contact de récupération de compte. Il est recommandé de
          l’indiquer car cela vous permet de recevoir des notifications
          importantes à propos de votre compte et des certificats créés.

     ‘server’ (par défaut : ‘#f’)
          URL facultative d’un serveur ACME. Indiquer ce paramètre
          remplace la valeur de certbot par défaut, qui est le serveur
          de Let’s Encrypt.

     ‘rsa-key-size’ (par défaut : ‘2048’)
          Taille de la clef RSA.

     ‘default-location’ (par défaut : voir plus bas)
          Le ‘nginx-location-configuration’ par défaut. Comme ‘certbot’
          doit pouvoir servir les défis et les réponses, il doit être
          capable de lancer un serveur web. Cela se fait en étendant le
          service web ‘nginx’ avec un ‘nginx-server-configuration’ qui
          écoute sur les DOMAINS sur le port 80 et qui a un
          ‘nginx-location-configuration’ pour le chemin ‘/.well-known/’
          utilisé par Let’s Encrypt. *Note Services web:: pour plus
          d’information sur les types de données de la configuration de
          nginx.

          Les requêtes vers d’autres URL correspondra à
          ‘default-location’, qui, s’il est présent, sera ajout é à tous
          les ‘nginx-server-configuration’.

          Par défaut, le ‘default-location’ sera une redirection de
          ‘http://DOMAIN/…’ vers ‘https://DOMAIN/…’, en vous laissant
          définir ce que vous voulez servir sur votre site en ‘https’.

          Passez ‘#f’ pour ne pas utiliser de location par défaut.

 -- Type de données : certificate-configuration
     Type de données représentant la configuration d’un certificat. Ce
     type a les paramètres suivants :

     ‘name’ (par défaut : voir plus bas)
          Ce nom est utilisé par Certbot pour ses tâches quotidiennes et
          dans les chemins de fichiers ; il n’affecte pas le contenu des
          certificats eux-mêmes. Pour voir les noms des certificats,
          lancez ‘certbot certificates’.

          Sa valeur par défaut est le premier domaine spécifié.

     ‘domains’ (par défaut : ‘()’)
          Le premier domaine spécifié sera le CN du sujet du certificat,
          et tous les domaines seront les noms alternatifs du sujet dans
          le certificat.

     ‘challenge’ (par défaut : ‘#f’)
          Le type de défi à utiliser avec certbot. Si ‘#f’ est spécifié,
          le défi HTTP par défaut sera utilisé. Si une valeur est
          spécifiée, le greffon manuel sera utilisé par défaut (voir
          ‘authentication-hook’, ‘cleanup-hook’ et la documentation sur
          <https://certbot.eff.org/docs/using.html#hooks>), et donne à
          Let’s Encrypt la permission d’enregistrer l’adresse IP
          publique de la machine qui a fait la demande.

     ‘authentication-hook’ (par défaut : ‘#t’)
          Commande à lancer dans un shell une fois par défi de
          certificat auquel répondre. Pour cette commande, la variable
          shell ‘$CERTBOT_DOMAIN’ contiendra le domaine à authentifier,
          ‘$CERTBOT_VALIDATION’ contiendra la chaîne de validation et
          ‘$CERTBOT_TOKEN’ contiendra le nom de fichier de la ressource
          demandée pour le défi HTTP-01.

     ‘cleanup-hook’ (par défaut : ‘#f’)
          Commande à lancer dans un shell une fois par défi de
          certificat auquel ‘auth-hook’ a répondu. Pour cette commande,
          les variables shell disponibles dans le script ‘auth-hook’
          sont toujours disponibles, et en plus ‘$CERTBOT_AUTH_OUTPUT’
          contiendra la sortie standard du script ‘auth-hook’.

     ‘deploy-hook’ (par défaut : ‘#f’)
          Commande à lancer dans un shell une fois par certificat
          récupéré avec succès. Pour cette commande, la variable
          ‘$RENEWED_LINEAGE’ pointera sur le sous-répertoire live (par
          exemple, ‘"/etc/letsencrypt/live/example.com"’) contenant le
          nouveau certificat et la clef ; la variable ‘$RENEWED_DOMAINS’
          contiendra les noms de domaines séparés par des espaces (par
          exemple ‘"example.com www.example.com"’).

   Pour chaque ‘certificate-configuration’, le certificat est sauvegardé
dans ‘/etc/letsencrypt/live/NAME/fullchain.pem’ et la clef est
sauvegardée dans ‘/etc/letsencrypt/live/NAME/privkey.pem’.


File: guix.fr.info,  Node: Services DNS,  Next: Services VPN,  Prev: Services de certificats,  Up: Services

10.8.20 Services DNS
--------------------

Le module ‘(gnu services dns)’ fournit des services liés au “système de
noms de domaines” (DNS). Il fournit un service de serveur pour héberger
un serveur DNS _faisant autorité_ pour plusieurs zones, en esclave ou en
maître. Ce service utilise Knot DNS (https://www.knot-dns.cz/). Il
fournit aussi un service de cache et de renvoie DNS pour le LAN, qui
utilise dnsmasq (http://www.thekelleys.org.uk/dnsmasq/doc.html).

Service Knot
............

Voici un exemple de configuration pour un serveur faisant autorité sur
deux zone, un maître et un esclave :

     (define-zone-entries example.org.zone
     ;; Name TTL Class Type Data
       ("@"  ""  "IN"  "A"  "127.0.0.1")
       ("@"  ""  "IN"  "NS" "ns")
       ("ns" ""  "IN"  "A"  "127.0.0.1"))

     (define master-zone
       (knot-zone-configuration
         (domain "example.org")
         (zone (zone-file
                 (origin "example.org")
                 (entries example.org.zone)))))

     (define slave-zone
       (knot-zone-configuration
         (domain "plop.org")
         (dnssec-policy "default")
         (master (list "plop-master"))))

     (define plop-master
       (knot-remote-configuration
         (id "plop-master")
         (address (list "208.76.58.171"))))

     (operating-system
       ;; ...
       (services (cons* (service knot-service-type
                          (knot-configuration
                            (remotes (list plop-master))
                            (zones (list master-zone slave-zone))))
                        ;; ...
                        %base-services)))

 -- Variable Scheme : knot-service-type
     C’est le type pour le serveur DNS Knot.

     Knot DNS est un serveur DNS faisant autorité, ce qui signifie qu’il
     peut servir plusieurs zones, c’est-à-dire des noms de domaines que
     vous achetez à un registrar. Ce serveur n’est pas un résolveur, ce
     qui signifie qu’il ne peut pas résoudre les noms pour lesquels il
     ne fait pas autorité. Ce serveur peut être configuré pour servir
     des zones comme un serveur maître ou comme un serveur esclave, en
     fonction des zones. Les zones esclaves récupèrent leurs données des
     maîtres, et seront servies comme faisant autorité. Du point de vue
     d’un résolveur, il n’y a pas de différence entre un maître et un
     esclave(1).

     Les types de données suivants sont utilisés pour configurer le
     serveur DNS Knot :

 -- Type de données : knot-key-configuration
     Type de données représentant une clef. Ce type a les paramètres
     suivants :

     ‘id’ (par défaut : ‘""’)
          Un identifiant pour d’autres champs de configuration qui se
          réfèrent à cette clef. Les ID doivent être uniques et non
          vides.

     ‘algorithm’ (par défaut : ‘#f’)
          L’algorithme à utiliser. Choisissez entre ‘#f’, ‘'hmac-md5’,
          ‘'hmac-sha1’, ‘'hmac-sha224’, ‘'hmac-sha256’, ‘'hmac-sha384’
          et ‘'hmac-sha512’.

     ‘secret’ (par défaut : ‘""’)
          La clef secrète elle-même.

 -- Type de données : knot-acl-configuration
     Type de données représentant une configuration de liste de contrôle
     d’accès (ACL). Ce type a les paramètres suivants :

     ‘id’ (par défaut : ‘""’)
          Un identifiant pour d’autres champs de configuration qui se
          réfèrent à cette clef. Les ID doivent être uniques et non
          vides.

     ‘address’ (par défaut : ‘'()’)
          Une liste ordonnée d’adresses IP, de sous-réseaux ou
          d’intervalles de réseaux représentés par des chaînes de
          caractères. La requête doit correspondre à l’une d’entre
          elles. La valeur vide signifie que l’adresse n’a pas besoin de
          correspondre.

     ‘key’ (par défaut : ‘'()’)
          Une liste ordonnées de références à des clefs représentés par
          des chaînes. La chaîne doit correspondre à un ID définie dans
          un ‘knot-key-configuration’. Aucune clef signifie qu’une clef
          n’est pas nécessaire pour correspondre à l’ACL.

     ‘action’ (par défaut : ‘'()’)
          Une liste ordonnée d’actions permises ou interdites par cet
          ACL. Les valeurs possibles sont une liste de zéro ou plus
          d’éléments entre ‘'transfer’, ‘'notify’ et ‘'update’.

     ‘deny?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, l’ACL définie des restrictions.
          Les actions listées sont interdites. Lorsque la valeur est
          fausse, les actions listées sont autorisées.

 -- Type de données : zone-entry
     Type de données représentant une entrée dans un fichier de zone. Ce
     type a les paramètres suivants :

     ‘name’ (par défaut : ‘"@"’)
          Le nom de l’enregistrement. ‘"@"’ se réfère à l’origine de la
          zone. Les noms sont relatifs à l’origine de la zone. Par
          exemple, dans la zone ‘example.org’, ‘"ns.example.org"’ se
          réfère en fait à ‘ns.example.org.example.org’. Les noms qui
          finissent par un point sont absolus, ce qui signifie que
          ‘"ns.example.org."’ se réfère bien à ‘ns.example.org’.

     ‘ttl’ (par défaut : ‘""’)
          La durée de vie (TTL) de cet enregistrement. S’il n’est pas
          indiqué, le TTL par défaut est utilisé.

     ‘class’ (par défaut : ‘"IN"’)
          La classe de l’enregistrement. Knot ne supporte actuellement
          que ‘"IN"’ et partiellement ‘"CH"’.

     ‘type’ (par défaut : ‘"A"’)
          Le type d’enregistrement. Les types usuels sont A (une adresse
          IPv4), NS (serveur de nom) et MX (serveur de courriel). Bien
          d’autres types sont définis.

     ‘data’ (par défaut : ‘""’)
          Les données contenues dans l’enregistrement. Par exemple une
          adresse IP associée à un enregistrement A, ou un nom de
          domaine associé à un enregistrement NS. Rappelez-vous que les
          noms de domaines sont relatifs à l’origine à moins qu’ils ne
          finissent par un point.

 -- Type de données : zone-file
     Type données représentant le contenu d’un fichier de zone. Ce type
     a les paramètres suivants :

     ‘entries’ (par défaut : ‘'()’)
          La liste des entrées. On s’occupe de l’enregistrement SOA,
          donc vous n’avez pas besoin de l’ajouter dans la liste des
          entrées. Cette liste devrait contenir une entrée pour votre
          serveur DNS primaire faisant autorité. En plus d’utiliser une
          liste des entrées directement, vous pouvez utiliser
          ‘define-zone-entries’ pour définir un objet contenant la liste
          des entrées plus facilement, que vous pouvez ensuite passer au
          champ ‘entries’ de ‘zone-file’.

     ‘origin’ (par défaut : ‘""’)
          Le nom de votre zone. Ce paramètre ne peut pas être vide.

     ‘ns’ (par défaut : ‘"ns"’)
          Le domaine de votre serveur DNS primaire faisant autorité. Le
          nom est relatif à l’origine, à moins qu’il finisse par un
          point. Il est nécessaire que ce serveur DNS primaire
          corresponde à un enregistrement NS dans la zone et qu’il soit
          associé à une adresse IP dans la liste des entrées.

     ‘mail’ (par défaut : ‘"hostmaster"’)
          Une adresse de courriel pour vous contacter en tant que
          propriétaire de la zone. Cela se transforme en
          ‘<mail>@<origin>’.

     ‘serial’ (par défaut : ‘1’)
          Le numéro de série de la zone. Comme c’est utilisé pour
          vérifier les changements à la fois par les esclaves et par les
          résolveurs, il est nécessaire qu’il ne décroisse _jamais_.
          Incrémentez-le toujours quand vous faites un changement sur
          votre zone.

     ‘refresh’ (par défaut : ‘(* 2 24 3600)’)
          La fréquence à laquelle les esclaves demanderont un transfert
          de zone. Cette valeur est un nombre de secondes. On peut le
          calculer avec des multiplications ou avec
          ‘(string->duration)’.

     ‘retry’ (par défaut : ‘(* 15 60)’)
          La période après laquelle un esclave essaiera de contacter son
          maître lorsqu’il échoue à le faire la première fois.

     ‘expiry’ (par défaut : ‘(* 14 24 3600)’)
          TTL par défaut des enregistrements. Les enregistrements
          existants sont considérés corrects pour au moins cette durée.
          Après cette période, les résolveurs invalideront leur cache et
          vérifieront de nouveau qu’ils existent toujours.

     ‘nx’ (par défaut : ‘3600’)
          TTL par défaut des enregistrement inexistants. Ce TTL est
          habituellement court parce que vous voulez que vous nouveaux
          domaines soient disponibles pour tout le monde le plus
          rapidement possible.

 -- Type de données : knot-remote-configuration
     Type de données représentant une configuration de serveurs
     distants. Ce type a les paramètres suivants :

     ‘id’ (par défaut : ‘""’)
          Un identifiant pour que les autres champs de configuration se
          réfèrent à ce serveur distant. les ID doivent être uniques et
          non vides.

     ‘address’ (par défaut : ‘'()’)
          Une liste ordonnée d’adresses IP de destination. Ces adresses
          sont essayées en séquence. Un port facultatif peut être donné
          avec le séparateur @. Par exemple ‘(list "1.2.3.4"
          "2.3.4.5@53")’. Le port par défaut est le 53.

     ‘via’ (par défaut : ‘'()’)
          Une liste ordonnée d’adresses IP sources. Une liste vide fera
          choisir une IP source appropriée à Knot. Un port facultatif
          peut être donné avec le séparateur @. La valeur par défaut est
          de choisir aléatoirement.

     ‘key’ (par défaut : ‘#f’)
          Une référence à une clef, c’est-à-dire une chaîne contenant
          l’identifiant d’une clef définie dans un champ
          ‘knot-key-configuration’.

 -- Type de données : knot-keystore-configuration
     Type de données représentant une base de clefs pour garder les
     clefs dnssec. Ce type a les paramètres suivants :

     ‘id’ (par défaut : ‘""’)
          L’id de cette base de clefs. Il ne doit pas être vide.

     ‘backend’ (par défaut : ‘'pem’)
          Le moteur de stockage des clefs. Cela peut être ‘'pem’ ou
          ‘'pkcs11’.

     ‘config’ (par défaut : ‘"/var/lib/knot/keys/keys"’)
          La chaine de configuration du moteur. Voici un exemple pour
          PKCS#11 : ‘"pkcs11:token=knot;pin-value=1234
          /gnu/store/.../lib/pkcs11/libsofthsm2.so"’. Pour le moteur
          pem, la chaine représente un chemin dans le système de
          fichiers.

 -- Type de données : knot-policy-configuration
     Type de données représentant une politique dnssec. Knot DNS est
     capable de signer automatiquement vos zones. Il peut soit générer
     et gérer vos clefs automatiquement ou utiliser des clefs que vous
     générez.

     Dnssec est habituellement implémenté avec deux clefs : une KSK (key
     signing key) qui est utilisé pour signer une seconde, la ZSK (zone
     signing key) qui est utilisée pour signer la zone. Pour pouvoir
     être de confiance, la KSK doit être présente dans la zone parente
     (normalement un domaine de haut niveau). Si votre registrar
     supporte dnssec, vous devrez leur envoyer le hash de votre KSK pour
     qu’il puisse ajouter un enregistrement DS dans la zone parente. Ce
     n’est pas automatique et vous devrez le faire à chaque fois que
     vous changerez votre KSK.

     La politique définie aussi la durée de vie des clefs.
     Habituellement, la ZSK peut être changée facilement et utilise des
     fonctions cryptographiques plus faibles (avec un paramètre plus
     faible) pour signer les enregistrements rapidement, donc elles sont
     changées très régulièrement. La KSK en revanche requiert une
     interaction manuelle avec le registrar, donc elle change moins
     souvent et utilise des paramètres plus robustes puisqu’elle ne
     signe qu’un seul enregistrement.

     Ce type a les paramètres suivants :

     ‘id’ (par défaut : ‘""’)
          L’id de la politique. Il ne doit pas être vide.

     ‘keystore’ (par défaut : ‘"default"’)
          Une référence à une base de clefs, c’est-à-dire une chaîne
          contenant l’identifiant d’une base de clefs définie dans un
          champ ‘knot-keystore-configuration’. L’identifiant ‘"default"’
          signifie la base par défaut (une base de données kasp
          initialisée par ce service).

     ‘manual?’ (par défaut : ‘#f’)
          Indique si la clef est gérée manuellement ou automatiquement.

     ‘single-type-signing?’ (par défaut : ‘#f’)
          Lorsque la valeur est ‘#t’, utilise le schéma de signature
          Single-Type.

     ‘algorithm’ (par défaut : ‘"ecdsap256sha256"’)
          Un algorithme de clef de signature et de signatures.

     ‘ksk-size’ (par défaut : ‘256’)
          La longueur de la KSK. Remarquez que cette valeur est correcte
          pour l’algorithme par défaut, mais ne serait pas sécurisée
          pour d’autres algorithmes.

     ‘zsk-size’ (par défaut : ‘256’)
          La longueur de la ZSK. Remarquez que cette valeur est correcte
          pour l’algorithme par défaut, mais ne serait pas sécurisée
          pour d’autres algorithmes.

     ‘dnskey-ttl’ (par défaut : ‘'default’)
          La valeur du TTL pour les enregistrements DNSKEY ajoutés au
          sommet de la zone. La valeur spéciale ‘'default’ signifie la
          même valeur que le TTL du SOA de la zone.

     ‘zsk-lifetime’ (par défaut : ‘(* 30 24 3600)’)
          La période entre la publication d’une ZSK et l’initialisation
          d’un nouveau changement.

     ‘propagation-delay’ (par défaut : ‘(* 24 3600)’)
          Un délai supplémentaire pour chaque étape du changement. Cette
          valeur devrait être assez grande pour couvrir le temps de
          propagation des données entre le serveur primaire et tous les
          secondaires.

     ‘rrsig-lifetime’ (par défaut : ‘(* 14 24 3600)’)
          Une période de validité des nouvelles signatures.

     ‘rrsig-refresh’ (par défaut : ‘(* 7 24 3600)’)
          Une période qui indique combien de temps avant l’expiration
          d’une signature elle sera rafraîchie.

     ‘nsec3?’ (par défaut : ‘#f’)
          Lorsque la valeur est ‘#t’, on utilisera NSEC3 au lien de
          NSEC.

     ‘nsec3-iterations’ (par défaut : ‘5’)
          Le nombre de fois supplémentaires que le hash est effectué.

     ‘nsec3-salt-length’ (par défaut : ‘8’)
          La longueur du champ de sel en octets, ajouté au nom du
          propriétaire avant de hasher.

     ‘nsec3-salt-lifetime’ (par défaut : ‘(* 30 24 3600)’)
          La période de validité des nouveaux champs sel.

 -- Type de données : knot-zone-configuration
     Type de données représentant la zone servie par Knot. ce type a les
     paramètres suivants :

     ‘domain’ (par défaut : ‘""’)
          Le domaine servi par cette configuration. Il ne doit pas être
          vide.

     ‘file’ (par défaut : ‘""’)
          Le fichier où la zone est sauvegardée. Ce paramètre est ignoré
          pour les zones maîtres. La valeur vide signifie l’emplacement
          par défaut qui dépend du nom de domaine.

     ‘zone’ (par défaut : ‘(zone-file)’)
          Le contenu du fichier de zone. Ce paramètre est ignoré par les
          zones esclaves. Il doit contenir un enregistrement zone-file.

     ‘master’ (par défaut : ‘'()’)
          Une liste des serveurs distants maîtres. Lorsque la liste est
          vide, cette zone est un maître. Lorsque la valeur est
          indiquée, cette zone est un esclave. C’est al liste des
          identifiants des serveurs distants.

     ‘ddns-master’ (par défaut : ‘#f’)
          Le maître principal. Lorsque la valeur est vide, la valeur par
          défaut est le premier maître de la liste des maîtres.

     ‘notify’ (par défaut : ‘'()’)
          Une liste d’identifiants de groupe de serveurs esclaves.

     ‘acl’ (par défaut : ‘'()’)
          Une liste d’identifiants d’ACL.

     ‘semantic-checks?’ (par défaut : ‘#f’)
          Lorsque la valeur est indiquée, cela ajoute plus de
          vérifications sémantiques à la zone.

     ‘disable-any?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, cela interdit les requêtes de
          type ANY.

     ‘zonefile-sync’ (par défaut : ‘0’)
          Le délai entre une modification en mémoire et sur le disque. 0
          signifie une synchronisation immédiate.

     ‘zonefile-load’ (par défaut : ‘#f’)
          La manière dont le contenu du fichier de zone influe sur le
          chargement de la zone. Les valeurs possibles sont :

             • ‘#f’ pour utilise la valeur par défaut de Knot,
             • ‘'none’ pour ne pas utiliser le fichier de zone du tout,
             • ‘'difference’ pour calculer les différences entre le
               contenu déjà disponible et le contenu du fichier de zone
               et les appliquer au contenu actuel de la zone,
             • ‘'difference-no-serial’ pour la même chose que
               ‘'difference’, mais en ignorant le serial du SOA du
               fichier de zone, pour que le serveur s’en charge
               automatiquement.
             • ‘'whole’ pour charger le contenu de la zone depuis le
               fichier de zone.

     ‘journal-content’ (par défaut : ‘#f’)
          La manière dont le journal est utilisé pour stocker la zone et
          ses changements. Les valeurs possibles sont ‘'none’ pour ne
          pas l’utiliser du tout, ‘'changes’ pour stocker les
          changements et ‘'all’ pour stocker le contenu. ‘#f’ ne met pas
          en place cette option et la valeur par défaut de Knot est
          utilisée.

     ‘max-journal-usage’ (par défaut : ‘#f’)
          La taille maximale du journal sur le disque. ‘#f’ ne met pas
          en place cette option et la valeur par défaut de Knot est
          utilisée.

     ‘max-journal-depth’ (par défaut : ‘#f’)
          La taille maximale de l’historique. ‘#f’ ne met pas en place
          cette option et la valeur par défaut de Knot est utilisée.

     ‘max-zone-size’ (par défaut : ‘#f’)
          La taille maximale du fichier de zone. Cette limite est prise
          en charge pour les transferts entrants et les mises à jour.
          ‘#f’ ne met pas en place cette option et la valeur par défaut
          de Knot est utilisée.

     ‘dnssec-policy’ (par défaut : ‘#f’)
          Une référence à un enregistrement ‘knot-policy-configuration’,
          ou le nom spécial ‘"default"’. Si la valeur est ‘#f’, cette
          zone n’est pas signée.

     ‘serial-policy’ (par défaut : ‘'increment’)
          Une politique entre ‘'increment’ et ‘'unixtime’.

 -- Type de données : knot-configuration
     Type de données représentant la configuration de Knot. Ce type a
     les paramètres suivants :

     ‘knot’ (par défaut : ‘knot’)
          Le paquet Knot.

     ‘run-directory’ (par défaut : ‘"/var/run/knot"’)
          Le répertoire de travail. Ce répertoire sera utilisé pour le
          fichier pid et les sockets.

     ‘includes’ (par défaut : ‘'()’)
          Une liste plate de chaînes ou d’objets simili-fichiers qui
          seront inclus en haut du fichier de configuration.

          Cela peut être utile pour gérer des secrets hors-bande. Par
          exemple, on peut stocker des clefs secrètes dans un fichier
          hors-bande qui n’est pas géré par Guix, et donc pas visible
          dans ‘/gnu/store’ — p. ex. vous pouvez stocker la
          configuration des clefs secrètes dans ‘/etc/knot/secrets.conf’
          et ajouter ce fichier à la lite ‘includes’.

          On peut générer une clé secrète tsig (pour nsupdate et les
          transferts de zones) avec la commande keymgr du paquet knot.
          Remarquez que le paquet n’est pas automatiquement installé par
          le service. L’exemple suivant montre comment générer une
          nouvelle clé tsig :

               keymgr -t mysecret > /etc/knot/secrets.conf
               chmod 600 /etc/knot/secrets.conf

          Remarquez aussi que la clé générée sera nommée MYSECRET, donc
          c’est le nom qui est requis dans le champ KEY de
          l’enregistrement ‘knot-acl-configuration’ et aux autres
          endroits qui se réfèrent à cette clé.

          Cela peut aussi être utilisé pour ajouter des configurations
          qui ne sont pas prises en charge par cette interface.

     ‘listen-v4’ (par défaut : ‘"0.0.0.0"’)
          Une adresse IP sur laquelle écouter.

     ‘listen-v6’ (par défaut : ‘"::"’)
          Une adresse IP sur laquelle écouter.

     ‘listen-port’ (par défaut : ‘53’)
          Un port sur lequel écouter.

     ‘keys’ (par défaut : ‘'()’)
          La liste des knot-key-configuration utilisés par cette
          configuration.

     ‘acls’ (par défaut : ‘'()’)
          La liste des knot-acl-configuration utilisés par cette
          configuration.

     ‘remotes’ (par défaut : ‘'()’)
          La liste des knot-remote-configuration utilisés par cette
          configuration.

     ‘zones’ (par défaut : ‘'()’)
          La liste des knot-zone-configuration utilisés par cette
          configuration.

Service de résolveur Knot
.........................

 -- Variable Scheme : knot-resolver-service-type
     C’est le type du service de résolution de knot, dont la valeur
     devrait être un objet ‘knot-resolver-configuration’ comme dans cet
     exemple :

          (service knot-resolver-service-type
                   (knot-resolver-configuration
                     (kresd-config-file (plain-file "kresd.conf" "
          net.listen('192.168.0.1', 5353)
          user('knot-resolver', 'knot-resolver')
          modules = { 'hints > iterate', 'stats', 'predict' }
          cache.size = 100 * MB
          "))))

     Pour plus d’information, regardez manual
     (https://knot-resolver.readthedocs.org/en/stable/daemon.html#configuration).

 -- Type de données : knot-resolver-configuration
     Type de données représentant la configuration de knot-resolver.

     ‘package’ (par défaut : KNOT-RESOLVER)
          Objet de paquet du résolveur DNS knot.

     ‘kresd-config-file’ (par défaut : %kresd.conf)
          Objet simili-fichier du fichier de configuration de kresd à
          utiliser. Par défaut il écoutera sur ‘127.0.0.1’ et ‘::1’.

     ‘garbage-collection-interval’ (par défaut : 1000)
          Nombre de millisecondes correspondant à la périodicité avec
          laquelle ‘kres-cache-gc’ nettoie le cache.

Services Dnsmasq
................

 -- Variable Scheme : dnsmasq-service-type
     C’est le type du service dnsmasq, dont la valeur devrait être un
     objet ‘dnsmasq-configuration’ comme dans cet exemple :

          (service dnsmasq-service-type
                   (dnsmasq-configuration
                     (no-resolv? #t)
                     (servers '("192.168.1.1"))))

 -- Type de données : dnsmasq-configuration
     Type de données qui représente la configuration de dnsmasq.

     ‘package’ (par défaut : DNSMASQ)
          L’objet de paquet du serveur dnsmasq.

     ‘no-hosts?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, ne pas lire les noms d’hôte dans
          /etc/hosts.

     ‘port’ (par défaut : ‘53’)
          Le port sur lequel écouter. Le mettre à zéro désactive
          complètement les réponses DNS, ce qui ne laisse que les
          fonctions DHCP et TFTP.

     ‘local-service?’ (par défaut : ‘#t’)
          Accepte les requêtes DNS seulement des hôtes dont les adresses
          sont sur le sous-réseau local, c.-à-d. sur un sous-réseau pour
          lequel une interface existe sur le serveur.

     ‘listen-addresses’ (par défaut : ‘'()’)
          Écoute sur le adresses IP données.

     ‘resolv-file’ (par défaut : ‘"/etc/resolv.conf"’)
          Le fichier où lire l’adresse IP des serveurs de noms en amont.

     ‘no-resolv?’ (par défaut : ‘#f’)
          Lorsque la valeur est vraie, ne pas lire RESOLV-FILE.

     ‘servers’ (par défaut : ‘'()’)
          Spécifiez l’adresse IP des serveurs en amont directement.

     ‘addresses’ (par défaut : ‘'()’)
          Pour chaque entrée, spécifie une adresse IP à renvoyer pour
          les hôtes des domaines donnés. Les requêtes dans les domaines
          ne sont jamais envoyés et la réponse sera toujours l’adresse
          IP spécifiée.

          C’est utile pour rediriger des hôtes localement, comme dans
          cet exemple :

               (service dnsmasq-service-type
                        (dnsmasq-configuration
                          (addresses
                            '(; Redirige vers un serveur web local.
                              "/example.org/127.0.0.1"
                              ; Redirige un sous-domaine vers une adresse IP spécifique.
                              "/subdomain.example.org/192.168.1.42"))))

          Remarquez que les règles dans ‘/etc/hosts’ prennent le pas sur
          celles-ci.

     ‘cache-size’ (par défaut : ‘150’)
          Indique la taille du cache de dnsmasq. Indiquer 0 désactive le
          cache.

     ‘negative-cache?’ (par défaut : ‘#t’)
          Lorsque la valeur est fausse, désactive le cache des réponses
          négatives.

     ‘tftp-enable?’ (par défaut : ‘#f’)
          Indique s’il faut activer le serveur TFTP inclus.

     ‘tftp-no-fail?’ (par défaut : ‘#f’)
          Si la valeur est vraie, dnsmasq n’échoue pas si le serveur
          TFTP ne peut pas démarrer.

     ‘tftp-single-port?’ (par défaut : ‘#f’)
          Indique s’il faut utiliser un seul port pour TFTP.

     ‘tftp-secure?’ (par défaut : ‘#f’)
          Si la valeur est vraie, seuls les fichiers appartenant à
          l’utilisateur sous lequel tourne dnsmasq sont accessibles.

          Si dnsmasq est lancé en root, des règles différentes
          s’appliquent : ‘tft-secure?’ n’a pas d’effet, mais seuls les
          fichiers qui ont le bit de lecture pour tout le monde sont
          accessibles.

     ‘tftp-max’ (par défaut : ‘#f’)
          Si une valeur est indiquée, indique le nombre maximal de
          connexions permises en parallèle.

     ‘tftp-mtu’ (par défaut : ‘#f’)
          Si une valeur est indiquée, indique le MTU pour les paquets
          TFTP.

     ‘tftp-no-blocksize?’ (par défaut : ‘#f’)
          Si la valeur est vraie, empêche que le serveur TFTP ne négocie
          la taille de bloc avec un client.

     ‘tftp-lowercase?’ (par défaut : ‘#f’)
          Indique s’il faut convertir tous les noms de fichiers dans les
          requêtes TFTP en minuscule.

     ‘tftp-port-range’ (par défaut : ‘#f’)
          Si une valeur est indiquée, fixe les ports dynamiques (un par
          client) à la zone données (‘"<début>,<fin>"’).

     ‘tftp-root’ (par défaut : ‘/var/empty,lo’)
          Cherche les fichiers à transférer avec TFTP relativement au
          répertoire donné. Lorsque la valeur est indiquée, les chemins
          TFTP qui contiennent ‘..’ sont rejeté, pour éviter que les
          client n’arrivent en dehors de la racine donnée. Les chemins
          absolus (commençant par ‘/’) sont permis, mais ils doivent
          être à l’intérieur de la racine de TFTP. Si un argument
          d’interface facultatif est donné, le répertoire n’est utilisé
          que pour les requêtes TFTP via cette interface.

     ‘tftp-unique-root’ (par défaut : ‘#f’)
          Si une valeur est indiquée, ajoute d’IP ou l’adresse
          matérielle du client TFTP en tant que composant du chemin à la
          fin de la racine TFTP. Valide uniquement si une racine TFTP
          est indiquée et que le répertoire existe. La valeur par défaut
          ajoute l’adresse IP (au format à trois points standard).

          Par exemple, si -‘-tftp-root’ est ‘/tftp’ et que le client
          ‘1.2.3.4’ demande le fichier ‘monfichier’ alors le chemin
          effectif sera ‘/tftp/1.2.3.4/monfichier’ si ‘/tftp/1.2.3.4’
          existe, ou ‘/tftp/monfichier’ sinon. Avec ‘=mac’, c’est
          l’adresse MAC qui sera ajoutée à la place, en utilisant des
          nombres en minuscule à taille fixe et séparés par des tirets,
          p. ex. : ‘01-02-03-04-aa-bb’. Remarquez que la résolution
          d’une adresse MAC n’est possible que si le client est sur le
          réseau local ou a obtenu un bail DHCP de dnsmasq.

service ddclient
................

Le service ddclient décrit plus bas lance le démon ddclient, qui prend
en charge la mise à jour automatique des entrées DNS pour les
fournisseurs de service comme Dyn (https://dyn.com/dns/).

   L’exemple suivant montre comment instantier le service avec sa
configuration par défaut :

     (service ddclient-service-type)

   Remarquez que ddclient a besoin d’accéder à des identifiants stockés
dans un “fichier de secrets”, par défaut ‘/etc/ddclient/secrets’ (voir
‘secret-file’ plus bas). On s’attend à ce que vous créiez ce fichier
manuellement, de manière externe à guix (vous _pourriez_ ajouter ce
fichier dans une partie de votre configuration, par exemple avec
‘plain-file’, mais il serait lisible pour tout le monde via
‘/gnu/store’). Vois les exemples dans le répertoire ‘share/ddclient’ du
paquet ‘ddclient’.

   Les champs de ‘ddclient-configuration’ disponibles sont :

 -- paramètre de ‘ddclient-configuration’ : package ddclient
     Le paquet ddclient.

 -- paramètre de ‘ddclient-configuration’ : integer daemon
     La période après laquelle ddclient réessaiera de vérifier l’IP et
     le nom de domaine.

     La valeur par défaut est ‘300’.

 -- paramètre de ‘ddclient-configuration’ : boolean syslog
     Utiliser syslog pour la sortie.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘ddclient-configuration’ : string mail
     Courriel de l’utilisateur.

     La valeur par défaut est ‘"root"’.

 -- paramètre de ‘ddclient-configuration’ : string mail-failure
     Courriel de l’utilisateur pour les échecs.

     La valeur par défaut est ‘"root"’.

 -- paramètre de ‘ddclient-configuration’ : string pid
     Le fichier de PID de ddclient.

     La valeur par défaut est ‘"/var/run/ddclient/ddclient.pid"’.

 -- paramètre de ‘ddclient-configuration’ : boolean ssl
     Activer le support de SSL.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘ddclient-configuration’ : string user
     Spécifie le nm d’utilisateur ou l’ID qui est utilisé pour lancer le
     programme ddclient.

     La valeur par défaut est ‘"ddclient"’.

 -- paramètre de ‘ddclient-configuration’ : string group
     Groupe de l’utilisateur qui lancera le programme ddclient.

     La valeur par défaut est ‘"ddclient"’.

 -- paramètre de ‘ddclient-configuration’ : string secret-file
     Fichier de secrets qui sera ajouté au fichier ‘ddclient.conf’. Ce
     fichier contient les paramètres d’authentification utilisés par
     ddclient. On s’attend à ce que vous le créiez manuellement.

     La valeur par défaut est ‘"/etc/ddclient/secrets.conf"’.

 -- paramètre de ‘ddclient-configuration’ : list extra-options
     Options supplémentaires qui seront ajoutées au fichier
     ‘ddclient.conf’.

     La valeur par défaut est ‘()’.

   ---------- Footnotes ----------

   (1) NdT : Voir la conférence en Français de Stéphane Bortzmeyer pour
en apprendre plus sur le DNS :
<https://iletaitunefoisinternet.fr/dns-bortzmeyer/index.html>


File: guix.fr.info,  Node: Services VPN,  Next: Système de fichiers en réseau,  Prev: Services DNS,  Up: Services

10.8.21 Services VPN
--------------------

Le module ‘(gnu services vpn)’ fournit des services liés aux “réseaux
privés virtuels” (VPN).

OpenVPN
.......

Il fournit un service _client_ pour que votre machine se connecte à un
VPN et un service _serveur_ pour que votre machine héberge un VPN.

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

     Renvoie un service qui lance ‘openvpn’, un démon VPN, en tant que
     client.

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

     Renvoie un service qui lance ‘openvpn’, un démon VPN, en tant que
     serveur.

     Les deux services peuvent être lancés en même temps.

   Les champs de ‘openvpn-client-configuration’ disponibles sont :

 -- paramètre de ‘openvpn-client-configuration’ : package openvpn
     Le paquet OpenVPN.

 -- paramètre de ‘openvpn-client-configuration’ : string pid-file
     Le fichier de PID d’OpenVPN.

     La valeur par défaut est ‘"/var/run/openvpn/openvpn.pid"’.

 -- paramètre de ‘openvpn-client-configuration’ : proto proto
     Le protocole (UDP ou TCP) utilisé pour ouvrir un canal entre les
     clients et les serveurs.

     La valeur par défaut est ‘udp’.

 -- paramètre de ‘openvpn-client-configuration’ : dev dev
     Le périphérique utilisé pour représenter la connexion VPN.

     La valeur par défaut est ‘tun’.

   Si vous n’avez pas certains de ces fichiers (p. ex. vous utilisez un
nom d’utilisateur et un mot de passe), vous pouvez désactiver les trois
champs suivants en leur passant ‘'disabled’.

 -- paramètre de ‘openvpn-client-configuration’ : maybe-string ca
     L’autorité de certification qui sert à vérifier les connexions.

     La valeur par défaut est ‘"/etc/openvpn/ca.crt"’.

 -- paramètre de ‘openvpn-client-configuration’ : maybe-string cert
     Le certificat de la machine sur laquelle tourne le démon. Il
     devrait être signé par l’autorité indiquée dans ‘ca’.

     La valeur par défaut est ‘"/etc/openvpn/client.crt"’.

 -- paramètre de ‘openvpn-client-configuration’ : maybe-string key
     La clef de la machine sur laquelle tourne le démon. Elle doit être
     la clef dont le certificat est donné dans ‘cert’.

     La valeur par défaut est ‘"/etc/openvpn/client.key"’.

 -- paramètre de ‘openvpn-client-configuration’ : boolean comp-lzo?
     Indique s’il faut utiliser l’algorithme de compression lzo.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘openvpn-client-configuration’ : boolean persist-key?
     Ne pas relire les fichiers de clefs entre les SIGUSR1 et les
     –ping-restart.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘openvpn-client-configuration’ : boolean persist-tun?
     Ne pas fermer et rouvrir les périphériques TUN/TAP ou lancer de
     scripts de démarrage/d’arrêt entre les SIGUSR1 et les
     –ping-restart.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘openvpn-client-configuration’ : boolean fast-io?
     (Expérimental) Optimise les écritures TUN/TAP/UDP en évitant
     d’appeler poll/epoll/select avant l’opération d’écriture.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘openvpn-client-configuration’ : number verbosity
     Niveau de verbosité.

     La valeur par défaut est ‘3’.

 -- paramètre de ‘openvpn-client-configuration’ : tls-auth-client
          tls-auth
     Ajoute une couche d’authentification HMAC supplémentaire au dessus
     du canal de contrôle TLS pour se protéger contre les attaques DoS.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘openvpn-client-configuration’ : maybe-string
          auth-user-pass
     S’authentifie avec le serveur en utilisant le nom d’utilisateur et
     le mot de passe. L’option est un fichier contenant le nom
     d’utilisateur et le mot de passe sur deux lignes. N’utilisez pas un
     objet simili-fichier car il serait ajouté au dépôt et serait
     lisible pour n’importe quel utilisateur.

     La valeur par défaut est ‘'disabled’.

 -- paramètre de ‘openvpn-client-configuration’ : key-usage
          verify-key-usage?
     Indique s’il faut vérifier que le certificat du serveur a
     l’extension d’utilisation.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘openvpn-client-configuration’ : bind bind?
     Se lier à un port spécifique.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘openvpn-client-configuration’ : resolv-retry
          resolv-retry?
     Réessayer de résoudre l’adresse du serveur.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘openvpn-client-configuration’ : openvpn-remote-list
          remote
     Une liste de serveurs distants sur lesquels se connecter.

     La valeur par défaut est ‘()’.

     Les champs de ‘openvpn-remote-configuration’ disponibles sont :

      -- paramètre de ‘openvpn-remote-configuration’ : string name
          Nom du serveur.

          La valeur par défaut est ‘"my-server"’.

      -- paramètre de ‘openvpn-remote-configuration’ : number port
          Numéro de port sur lequel écoute le serveur.

          La valeur par défaut est ‘1194’.

   Les champs de ‘openvpn-server-configuration’ disponibles sont :

 -- paramètre de ‘openvpn-server-configuration’ : package openvpn
     Le paquet OpenVPN.

 -- paramètre de ‘openvpn-server-configuration’ : string pid-file
     Le fichier de PID d’OpenVPN.

     La valeur par défaut est ‘"/var/run/openvpn/openvpn.pid"’.

 -- paramètre de ‘openvpn-server-configuration’ : proto proto
     Le protocole (UDP ou TCP) utilisé pour ouvrir un canal entre les
     clients et les serveurs.

     La valeur par défaut est ‘udp’.

 -- paramètre de ‘openvpn-server-configuration’ : dev dev
     Le périphérique utilisé pour représenter la connexion VPN.

     La valeur par défaut est ‘tun’.

   Si vous n’avez pas certains de ces fichiers (p. ex. vous utilisez un
nom d’utilisateur et un mot de passe), vous pouvez désactiver les trois
champs suivants en leur passant ‘'disabled’.

 -- paramètre de ‘openvpn-server-configuration’ : maybe-string ca
     L’autorité de certification qui sert à vérifier les connexions.

     La valeur par défaut est ‘"/etc/openvpn/ca.crt"’.

 -- paramètre de ‘openvpn-server-configuration’ : maybe-string cert
     Le certificat de la machine sur laquelle tourne le démon. Il
     devrait être signé par l’autorité indiquée dans ‘ca’.

     La valeur par défaut est ‘"/etc/openvpn/client.crt"’.

 -- paramètre de ‘openvpn-server-configuration’ : maybe-string key
     La clef de la machine sur laquelle tourne le démon. Elle doit être
     la clef dont le certificat est donné dans ‘cert’.

     La valeur par défaut est ‘"/etc/openvpn/client.key"’.

 -- paramètre de ‘openvpn-server-configuration’ : boolean comp-lzo?
     Indique s’il faut utiliser l’algorithme de compression lzo.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘openvpn-server-configuration’ : boolean persist-key?
     Ne pas relire les fichiers de clefs entre les SIGUSR1 et les
     –ping-restart.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘openvpn-server-configuration’ : boolean persist-tun?
     Ne pas fermer et rouvrir les périphériques TUN/TAP ou lancer de
     scripts de démarrage/d’arrêt entre les SIGUSR1 et les
     –ping-restart.

     La valeur par défaut est ‘#t’.

 -- paramètre de ‘openvpn-server-configuration’ : boolean fast-io?
     (Expérimental) Optimise les écritures TUN/TAP/UDP en évitant
     d’appeler poll/epoll/select avant l’opération d’écriture.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘openvpn-server-configuration’ : number verbosity
     Niveau de verbosité.

     La valeur par défaut est ‘3’.

 -- paramètre de ‘openvpn-server-configuration’ : tls-auth-server
          tls-auth
     Ajoute une couche d’authentification HMAC supplémentaire au dessus
     du canal de contrôle TLS pour se protéger contre les attaques DoS.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘openvpn-server-configuration’ : number port
     Spécifie le numéro de port sur lequel les serveurs écoutent.

     La valeur par défaut est ‘1194’.

 -- paramètre de ‘openvpn-server-configuration’ : ip-mask server
     Une ip et un masque de sous-réseau spécifiant le sous-réseau dans
     le réseau virtuel.

     La valeur par défaut est ‘"10.8.0.0 255.255.255.0"’.

 -- paramètre de ‘openvpn-server-configuration’ : cidr6 server-ipv6
     Une notation CIDR pour spécifier le sous-réseau IPv6 dans le réseau
     virtuel.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘openvpn-server-configuration’ : string dh
     Le fichier de paramètres Diffie-Hellman.

     La valeur par défaut est ‘"/etc/openvpn/dh2048.pem"’.

 -- paramètre de ‘openvpn-server-configuration’ : string
          ifconfig-pool-persist
     Le fichier qui enregistre les IP des clients.

     La valeur par défaut est ‘"/etc/openvpn/ipp.txt"’.

 -- paramètre de ‘openvpn-server-configuration’ : gateway
          redirect-gateway?
     Lorsque la valeur est vraie, le serveur agira comme une passerelle
     pour ses clients.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘openvpn-server-configuration’ : boolean
          client-to-client?
     Lorsque la valeur est vraie, les clients sont autorisés à se parler
     entre eux dans le VPN.

     La valeur par défaut est ‘#f’.

 -- paramètre de ‘openvpn-server-configuration’ : keepalive keepalive
     Fait que des messages de ping sont envoyés régulièrement dans les
     deux sens pour que chaque côté sache quand l’autre n’est plus
     disponible. ‘keepalive’ a besoin d’une paire. Le premier élément
     est la période d’envoi du ping, et le second élément est le délai
     d’attente avant de considéré que l’autre côté n’est plus
     disponible.

 -- paramètre de ‘openvpn-server-configuration’ : number max-clients
     Le nombre maximum de clients.

     La valeur par défaut est ‘100’.

 -- paramètre de ‘openvpn-server-configuration’ : string status
     Le fichier de statut. Ce fichier montre un court rapport sur les
     connexions actuelles. Il est tronqué et réécrit toutes les minutes.

     La valeur par défaut est ‘"/var/run/openvpn/status"’.

 -- paramètre de ‘openvpn-server-configuration’ : openvpn-ccd-list
          client-config-dir
     La liste des configuration pour certains clients.

     La valeur par défaut est ‘()’.

     Les champs de ‘openvpn-ccd-configuration’ disponibles sont :

      -- paramètre de ‘openvpn-ccd-configuration’ : string name
          Nom du client.

          La valeur par défaut est ‘"client"’.

      -- paramètre de ‘openvpn-ccd-configuration’ : ip-mask iroute
          Le réseau du client

          La valeur par défaut est ‘#f’.

      -- paramètre de ‘openvpn-ccd-configuration’ : ip-mask
               ifconfig-push
          IP du client sur le VPN.

          La valeur par défaut est ‘#f’.

Wireguard
.........

 -- Variable Scheme : wireguard-service-type
     Un type de service pour une interface de tunnel Wireguard. Sa
     valeur doit être un enregistrement ‘wireguard-configuration’ comme
     dans cet exemple :

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

 -- Type de données : wireguard-configuration
     Le type de données représentant la configuration du service
     Wireguard.

     ‘wireguard’
          Le paquet wireguard à utiliser pour ce service.

     ‘interface’ (par défaut : ‘"wg0"’)
          Le nom d’interface pour le VPN.

     ‘addresses’ (par défaut : ‘"10.0.01/32"’)
          Les adresses IP à assigner à l’interface ci-dessus.

     ‘private-key’ (par défaut : ‘"/etc/wireguard/private.key"’)
          Le fichier de clé privée pour l’interface. Il est
          automatiquement généré si le fichier n’existe pas.

     ‘peers’ (par défaut : ‘'()’)
          Les pairs autorisés sur cette interface. C’est une liste
          d’enregistrements WIREGUARD-PEER.

 -- Type de données : wireguard-peer
     Type de données représentant un pair Wireguard attaché à une
     interface donnée.

     ‘name’
          Le nom du pair.

     ‘endpoint’ (par défaut : ‘#f’)
          Le point d’entrée facultatif du pair, comme
          ‘"demo.wireguard.com:51820"’.

     ‘public-key’
          La clé publique du pair, représentée par une chaîne en base64.

     ‘allowed-ips’
          Une liste d’adresses IP à partir desquelles le trafic entrant
          pour ce pair est autorisé et vers lesquelles le trafic à
          destination de ce pair est dirigé.

