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


8.8.4 Services réseau

Le module (gnu services networking) fournit des services pour configurer les interfaces réseaux.

Variable Scheme : dhcp-client-service-type

C’est le type de services qui lance dhcp, un client DHC (protocole de configuration d’hôte dynamique) sur toutes les interfaces réseau non-loopback. Sa valeur est le paquet du client DHCP à utiliser, isc-dhcp par défaut.

Procédure Scheme : dhcpd-service-type

Ce type définie un service qui lance un démon DHCP. Pour créer un service de ce type, vous devez appliquer un objet <dhcpd-configuration>. Par exemple :

(service dhcpd-service-type
         (dhcpd-configuration
          (config-file (local-file "my-dhcpd.conf"))
          (interfaces '("enp0s25"))))
Type de données : dhcpd-configuration
package (par défaut : isc-dhcp)

Le paquet qui fournit le démon DHCP. ce paquet doit fournir le démon sbin/dhcpd relativement à son répertoire de sortie. Le paquet par défaut est le serveur DHCP d’ISC

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

Le fichier de configuration à utiliser. Il est requis. Il sera passé à dhcpd via son option -cf. La valeur peut être n’importe quel objet « simili-fichier » (voir file-like objects). Voir man dhcpd.conf pour des détails sur la syntaxe du fichier de configuration.

version (par défaut : "4")

La version de DHCP à utiliser. Le serveur DHCP d’ISC supporte les valeur « 4 », « 6 » et « 4o6 ». Elles correspondent aux options -4, -6 et -4o6 du programme dhcpd. Voir man dhcpd pour plus de détails.

run-directory (par défaut : "/run/dhcpd")

Le répertoire d’exécution à utiliser. Au moment de l’activation du service, ce répertoire sera créé s’il n’existe pas.

pid-file (par défaut : "/run/dhcpd/dhcpd.pid")

Le fichier de PID à utiliser. Cela correspond à l’option -pf de dhcpd. Voir man dhcpd pour plus de détails.

interfaces (par défaut : '())

Les noms des interfaces réseaux sur lesquelles dhcpd écoute. Si cette liste n’est pas vide, alors ses éléments (qui doivent être des chaînes de caractères) seront ajoutés à l’invocation de dhcpd lors du démarrage du démon. Il n’est pas forcément nécessaire de spécifier des interfaces ici ; voir man dhcpd pour plus de détails.

Variable Scheme : static-networking-service-type

C’est le type des interfaces réseaux configurés statiquement.

Procédure Scheme : static-networking-service interface ip [#:netmask #f] [#:gateway #f] [#:name-servers '()] [#:requirement '(udev)]

Renvoie un service qui démarre interface avec l’adresse ip. Si netmask est vrai, il sera utilisé comme masque de sous-réseau. Si gateway est vrai, ce doit être une chaîne de caractères qui spécifie la passerelle par défaut du réseau. requirement peut être utilisé pour déclarer une dépendance sur un autre service avant de configurer l’interface.

On peut appeler cette procédure plusieurs fois, une fois par interface réseau qui nous intéresse. Dans les coulisses, elle étend static-networking-service-type avec les interfaces réseaux supplémentaires à gérer.

Par exemple :

(static-networking-service "eno1" "192.168.1.82"
                           #:gateway "192.168.1.2"
                           #:name-servers '("192.168.1.2"))
Procédure Scheme : wicd-service [#:wicd wicd]

Renvoie un service qui lance Wicd, un démon de gestion réseau qui cherche à simplifier la configuration des réseaux filaires et sans fil.

Ce service ajoute le paquet wicd au profil global, pour fournir des commandes pour interagir avec le démon et configurer le réseau : wicd-client, une interface graphique et les interfaces utilisateurs wicd-cli et wicd-curses.

Variable Scheme : modem-manager-service-type

C’est le type de service pour le service ModemManager. La valeur de ce type de service est un enregistrement modem-manager-configuration.

Ce service fait partie de %desktop-services (voir Services de bureaux).

Type de données : modem-manager-configuration

Type de donnée représentant la configuration de ModemManager.

modem-manager (par défaut : modem-manager)

Le paquet ModemManager à utiliser.

Scheme Variable : usb-modeswitch-service-type

This is the service type for the USB_ModeSwitch service. The value for this service type is a usb-modeswitch-configuration record.

When plugged in, some USB modems (and other USB devices) initially present themselves as a read-only storage medium and not as a modem. They need to be modeswitched before they are usable. The USB_ModeSwitch service type installs udev rules to automatically modeswitch these devices when they are plugged in.

Ce service fait partie de %desktop-services (voir Services de bureaux).

Data Type : usb-modeswitch-configuration

Data type representing the configuration of USB_ModeSwitch.

usb-modeswitch (default: usb-modeswitch)

The USB_ModeSwitch package providing the binaries for modeswitching.

usb-modeswitch-data (default: usb-modeswitch-data)

The package providing the device data and udev rules file used by USB_ModeSwitch.

config-file (default: #~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf"))

Which config file to use for the USB_ModeSwitch dispatcher. By default the config file shipped with USB_ModeSwitch is used which disables logging to /var/log among other default settings. If set to #f, no config file is used.

Variable Scheme : network-manager-service-type

C’est le type de service pour le service NetworkManager. La valeur pour ce type de service est un enregistrement network-manager-configuration.

Ce service fait partie de %desktop-services (voir Services de bureaux).

Type de données : network-manager-configuration

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

network-manager (par défaut : network-manager)

Le paquet NetworkManager à utiliser.

dns (par défaut : "default")

Mode de gestion pour le DNS, qui affecte la manière dont NetworkManager utilise le fichier de configuration resolv.conf

default

NetworkManager mettra à jour resolv.conf pour refléter les serveurs de noms fournis par les connexions actives.

dnsmasq

NetworkManager will run dnsmasq as a local caching nameserver, using a conditional forwarding configuration if you are connected to a VPN, and then update resolv.conf to point to the local nameserver.

With this setting, you can share your network connection. For example when you want to share your network connection to another laptop via an Ethernet cable, you can open nm-connection-editor and configure the Wired connection’s method for IPv4 and IPv6 to be “Shared to other computers” and reestablish the connection (or reboot).

You can also set up a host-to-guest connection to QEMU VMs (voir Installer Guix dans une VM). With a host-to-guest connection, you can e.g. access a Web server running on the VM (voir Services web) from a Web browser on your host system, or connect to the VM via SSH (voir openssh-service-type). To set up a host-to-guest connection, run this command once:

nmcli connection add type tun \
 connection.interface-name tap0 \
 tun.mode tap tun.owner $(id -u) \
 ipv4.method shared \
 ipv4.addresses 172.28.112.1/24

Then each time you launch your QEMU VM (voir Lancer Guix dans une VM), pass -nic tap,ifname=tap0,script=no,downscript=no to qemu-system-....

none

NetworkManager ne modifiera pas resolv.conf.

vpn-plugins (par défaut : '())

C’est la liste des greffons disponibles pour les VPN (réseaux privés virtuels). Un exemple est le paquet network-manager-openvpn, qui permet à NetworkManager de gérer des VPN via OpenVPN.

Variable Scheme : connman-service-type

C’est le type de service pour lancer Connman, un gestionnaire de connexions réseaux.

Sa valeur doit être un enregistrement connman-configuration comme dans cet exemple :

(service connman-service-type
         (connman-configuration
           (disable-vpn? #t)))

Voir plus bas pour des détails sur connman-configuration.

Type de données : connman-configuration

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

connman (par défaut : connman)

Le paquet connman à utiliser.

disable-vpn? (par défaut : #f)

Lorsque la valeur est vraie, désactive le greffon vpn de connman.

Variable Scheme : wpa-supplicant-service-type

C’est le type du service qui lanceWPA supplicant, un démon d’authentification requis pour s’authentifier sur des WiFi chiffrés ou des réseaux ethernet.

Type de données : wpa-supplicant-configuration

Type données qui représente la configuration de WPA Supplicant.

Il prend les paramètres suivants :

wpa-supplicant (par défaut : wpa-supplicant)

Le paquet WPA Supplicant à utiliser.

dbus? (par défaut : #t)

Indique s’il faut écouter les requêtes sur D-Bus.

pid-file (par défaut : "/var/run/wpa_supplicant.pid")

Où stocker votre fichier de PID.

interface (par défaut : #f)

Si une valeur est indiquée, elle doit spécifier le nom d’une interface réseau que WPA supplicant contrôlera.

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

Fichier de configuration facultatif à utiliser.

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

Liste d’arguments de la ligne de commande supplémentaires à passer au démon.

Variable Scheme : iptables-service-type

C’est le type de service pour mettre en place une configuration iptables. iptables est un outil de filtrage de paquets pris en charge par le noyau Linux. Ce service prend en charge la configuration d’iptable pour IPv4 et IPv6. Un exemple de configuration simple, qui rejette les connexions entrantes sauf celles sur le port 22 est présenté ci-dessous.

(service iptables-service-type
         (iptables-configuration
          (ipv4-rules (plain-file "iptables.rules" "*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT
"))
          (ipv6-rules (plain-file "ip6tables.rules" "*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp6-port-unreachable
COMMIT
"))))
Type de données : iptables-configuration

Type de données représentant la configuration d’iptables.

iptables (par défaut : iptables)

Le paquet iptables qui fournit iptables-restore et ip6tables-restore.

ipv4-rules (par défaut : %iptables-accept-all-rules)

Les règles iptables à utiliser. Elles seront passées à iptables-restore. Cela peut être un objet « simili-fichier » (voir file-like objects).

ipv6-rules (par défaut : %iptables-accept-all-rules)

Les règles iptables à utiliser. Elles seront passées à ip6tables-restore. Cela peut être un objet « simili-fichier » (voir file-like objects).

Scheme Variable : nftables-service-type

This is the service type to set up a nftables configuration. nftables is a netfilter project that aims to replace the existing iptables, ip6tables, arptables and ebtables framework. It provides a new packet filtering framework, a new user-space utility nft, and a compatibility layer for iptables. This service comes with a default ruleset %default-nftables-ruleset that rejecting all incomming connections except those to the ssh port 22. To use it, simply write:

(service nftables-service-type)
Data Type : nftables-configuration

The data type representing the configuration of nftables.

package (default: nftables)

The nftables package that provides nft.

ruleset (default: %default-nftables-ruleset)

The nftables ruleset to use. This may be any “file-like” object (voir file-like objects).

Variable Scheme : ntp-service-type

C’est le type de service qui lance le démon Network Time Protocol (NTP), ntpd. Le démon gardera l’horloge système synchronisée avec celle des serveurs NTP spécifiés.

La valeur de ce service est un objet ntpd-configuration, décrit ci-dessous.

Type de données : ntp-configuration

C’est le type de données représentant la configuration du service NTP.

servers (par défaut : %ntp-servers)

This is the list of servers (<ntp-server> records) with which ntpd will be synchronized. See the ntp-server data type definition below.

allow-large-adjustment? (default: #t)

Détermine si ntpd peut faire un ajustement initial de plus de 1 000 secondes.

ntp (par défaut : ntp)

Le paquet NTP à utiliser.

Variable Scheme : %ntp-servers

Liste de noms d’hôtes à utiliser comme serveurs NTP par défaut. Ce sont les serveurs du projet NTP Pool

Data Type : ntp-server

The data type representing the configuration of a NTP server.

type (default: 'server)

The type of the NTP server, given as a symbol. One of 'pool, 'server, 'peer, 'broadcast or 'manycastclient.

address

The address of the server, as a string.

options

NTPD options to use with that specific server, given as a list of option names and/or of option names and values tuples. The following example define a server to use with the options iburst and prefer, as well as version 3 and a maxpoll time of 16 seconds.

(ntp-server
 (type 'server)
 (address "some.ntp.server.org")
 (options `(iburst (version 3) (maxpoll 16) prefer))))
Procédure Scheme : openntpd-service-type

Lance le démon NTP ntpd, implémenté par OpenNTPD. Le démon gardera l’horloge système synchronisée avec celle des serveurs donnés.

(service
 openntpd-service-type
 (openntpd-configuration
  (listen-on '("127.0.0.1" "::1"))
  (sensor '("udcf0 correction 70000"))
  (constraint-from '("www.gnu.org"))
  (constraints-from '("https://www.google.com/"))
  (allow-large-adjustment? #t)))

Scheme Variable : %openntpd-servers

This variable is a list of the server addresses defined in %ntp-servers.

Type de données : openntpd-configuration
openntpd (par défaut : (file-append openntpd "/sbin/ntpd"))

L’exécutable openntpd à utiliser.

listen-on (par défaut : '("127.0.0.1" "::1"))

Une liste d’adresses IP locales ou de noms d’hôtes que devrait écouter le démon ntpd.

query-from (par défaut : '())

Une liste d’adresses IP que le démon devrait utiliser pour les requêtes sortantes.

sensor (par défaut : '())

Spécifie une liste de senseurs de différences de temps que ntpd devrait utiliser. ntpd écoutera chaque senseur qui existe et ignorera ceux qui n’existent pas. Voir la documentation en amont pour plus d’informations.

server (default: '())

Spécifie une liste d’adresses IP ou de noms d’hôtes de serveurs NTP avec lesquels se synchroniser.

servers (default: %openntp-servers)

Spécifie une liste d’adresses IP ou de noms d’hôtes de banques de serveurs NTP avec lesquelles se synchroniser.

constraint-from (par défaut : '())

ntpd peut être configuré pour demander la « Date » à des serveurs HTTPS de confiance via TLS. Cette information de temps n’est pas utilisée pour sa précision mais agit comme une contrainte authentifiée, ce qui réduit l’impact d’une attaque par l’homme du milieu sur le protocole NTP non authentifié. Spécifie une liste d’URL, d’adresses IP ou de noms d’hôtes de serveurs HTTPS qui fournissent cette contrainte.

constraints-from (par défaut : '())

Comme pour constraint-from, spécifie une liste d’URL, d’adresses IP ou de noms d’hôtes de serveurs HTTPS qui fournissent une contrainte. Si les noms d’hôtes sont résolus en plusieurs adresses IP, ntpd calculera la contrainte médiane.

allow-large-adjustment? (par défaut : #f)

Détermine si ntpd peut faire un ajustement initial de plus de 180 secondes.

Variable Scheme : inetd-service-type

Ce service lance le démon inetd (voir inetd invocation dans GNU Inetutils). inetd écoute des connexions sur des sockets internet et démarre le programme spécifié uniquement lorsqu’une connexion arrive sur l’un de ces sockets.

La valeur de ce service est un objet inetd-configuration. L’exemple suivant configure le démon inetd pour qu’il fournisse le service echo, ainsi qu’un service smtp qui transfère le trafic smtp par ssh à un serveur smtp-server derrière une passerelle hostname :

(service
 inetd-service-type
 (inetd-configuration
  (entries (list
            (inetd-entry
             (name "echo")
             (socket-type 'stream)
             (protocol "tcp")
             (wait? #f)
             (user "root"))
            (inetd-entry
             (node "127.0.0.1")
             (name "smtp")
             (socket-type 'stream)
             (protocol "tcp")
             (wait? #f)
             (user "root")
             (program (file-append openssh "/bin/ssh"))
             (arguments
              '("ssh" "-qT" "-i" "/path/to/ssh_key"
                "-W" "smtp-server:25" "user@hostname")))))))

Voir plus bas pour plus de détails sur inetd-configuration.

Type de données : inetd-configuration

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

program (par défaut : (file-append inetutils "/libexec/inetd"))

L’exécutable inetd à utiliser.

entries (par défaut : '())

Une liste d’entrées de services inetd. Chaque entrée devrait être crée avec le constructeur inetd-entry.

Type de données : inetd-entry

Type de données représentant une entrée dans la configuration d’inetd. Chaque entrée correspond à un socket sur lequel inetd écoutera les requêtes.

node (par défaut : #f)

Chaîne de caractères facultative, un liste d’adresses locales séparées par des virgules que inetd devrait utiliser pour écouter ce service. Voir Configuration file dans GNU Inetutils pour une description complète de toutes les options.

name

Une chaîne de caractères dont le nom doit correspondre à une entrée de /etc/services.

socket-type

Un symbole parmi 'stream, 'dgram, 'raw, 'rdm ou 'seqpacket.

protocol

Une chaîne de caractères qui doit correspondre à une entrée dans /etc/protocols.

wait? (par défaut : #t)

Indique si inetd devrait attendre que le serveur ait quitté avant d’écouter de nouvelles demandes de service.

user

Une chaîne de caractères contenant le nom d’utilisateur (et éventuellement de groupe) de l’utilisateur en tant que lequel le serveur devrait tourner. Le nom du groupe peut être spécifié comme un suffixe, séparé par un deux-points ou un point, c.-à-d. "utilisateur", "utilisateur:groupe" ou "utilisateur.groupe".

program (par défaut : "internal")

Le programme du serveur qui servira les requêtes, ou "internal" si inetd devrait utiliser un service inclus.

arguments (par défaut : '())

Une liste de chaînes de caractères ou d’objets simili-fichiers qui sont les arguments du programme du serveur, en commençant par le zéroième argument, c.-à-d. le nom du programme lui-même. Pour les services internes à inetd, cette entrée doit être '() ou '("internal").

Voir Configuration file dans GNU Inetutils pour trouver une discussion plus détaillée de chaque champ de configuration.

Variable Scheme : tor-service-type

C’est le type pour un service qui lance le démon de navigation anonyme Tor. Le service est configuré avec un enregistrement <tor-configuration>. Par défaut, le démon Tor est lancé en tant qu’utilisateur non privilégié tor, membre du groupe tor.

Type de données : tor-configuration
tor (par défaut : tor)

Le paquet qui fournit le démon Tor. Ce paquet doit fournir le démon bin/tor relativement à son répertoire de sortie. Le paquet par défaut est le l’implémentation du projet Tor.

config-file (par défaut : (plain-file "empty" ""))

Le fichier de configuration à utiliser. Il sera ajouté au fichier de configuration par défaut, et le fichier de configuration final sera passé à tor via son option -f. Cela peut être n’importe quel objet « simili-fichier » (voir file-like objects). Voir man tor pour plus de détails sur la syntaxe du fichier de configuration.

hidden-services (par défaut : '())

La liste des enregistrements <hidden-service> à utiliser. Pour n’importe quel service cache que vous ajoutez à cette liste, la configuration appropriée pour activer le service caché sera automatiquement ajouté au fichier de configuration par défaut. Vous pouvez aussi créer des enregistrements <hidden-service> avec la procédure tor-hidden-service décrite plus bas.

socks-socket-type (par défaut : 'tcp)

Le type de socket par défaut que Tor devrait utiliser pour les socket SOCKS. Cela doit être soit 'tcp soit 'unix. S’il s’agit de 'tcp, alors Tor écoutera pas défaut sur le port TCP 9050 sur l’interface de boucle locale (c.-à-d. localhost). S’il s’agit de 'unix, Tor écoutera sur le socket UNIX domain /var/run/tor/socks-sock, qui sera inscriptible pour les membres du groupe tor.

Si vous voulez personnaliser le socket SOCKS plus avant, laissez socks-socket-type à sa valeur par défaut de 'tcp et utilisez config-file pour remplacer les valeurs par défaut avec votre propre option SocksPort.

Procédure Scheme : tor-hidden-service name mapping

Définie un service caché pour Tor nommé name qui implémente mapping. mapping est une liste de paires de port et d’hôte, comme dans :

 '((22 "127.0.0.1:22")
   (80 "127.0.0.1:8080"))

Dans cet exemple, le port 22 du service caché est relié au port local 22 et le port 80 est relié au port local 8080.

Cela crée un répertoire /var/lib/tor/hidden-services/name où le fichier hostname contient le nom d’hôte .onion pour le service caché.

Voir the Tor project’s documentation pour trouver plus d’information.

Le module (gnu services rsync) fournit les services suivant :

Vous pourriez vouloir un démon rsync si vous voulez que des fichiers soient disponibles pour que n’importe qui (ou juste vous) puisse télécharger des fichiers existants ou en téléverser des nouveaux.

Variable Scheme : rsync-service-type

C’est le type pour le démon rsync. La valeur de ce service est un enregistrement rsync-configuration comme dans cet exemple :

(service rsync-service-type)

Voir plus pas pour trouver des détails à propos de rsync-configuration.

Type de données : rsync-configuration

Type de données représentant la configuration de rsync-service.

package (par défaut : rsync)

Le paquet rsync à utiliser.

port-number (par défaut : 873)

Le port TCP sur lequel rsync écoute les connexions entrantes. Si le port est inférieur à 1024, rsync doit être démarré en tant qu’utilisateur et groupe root.

pid-file (par défaut : "/var/run/rsyncd/rsyncd.pid")

Nom du fichier où rsync écrit son PID.

lock-file (par défaut : "/var/run/rsyncd/rsyncd.lock")

Nom du fichier où rsync écrit son fichier de verrouillage.

log-file (par défaut : "/var/log/rsyncd.log")

Nom du fichier où rsync écrit son fichier de journal.

use-chroot? (par défaut : #t)

S’il faut utiliser un chroot pour le répertoire partagé de rsync.

share-path (par défaut : /srv/rsync)

Emplacement du répertoire partagé de rsync.

share-comment (par défaut : "Rsync share")

Commentaire du répertoire partagé de rsync.

read-only? (par défaut : #f)

Permission en écriture sur le répertoire partagé.

timeout (par défaut : 300)

Délai d’attente d’entrée-sortie en secondes.

user (par défaut : "root")

Propriétaire du processus rsync.

group (par défaut : "root")

Groupe du processus rsync.

uid (par défaut : "rsyncd")

Nom d’utilisateur ou ID utilisateur en tant que lequel les transferts de fichiers ont lieu si le démon a été lancé en root.

gid (par défaut : "rsyncd")

Nom du groupe ou ID du groupe qui sera utilisé lors de l’accès au module.

En plus, (gnu services ssh) fournit les services suivant.

Procédure Scheme : lsh-service [#:host-key "/etc/lsh/host-key"] [#:daemonic? #t] [#:interfaces '()] [#:port-number 22] [#:allow-empty-passwords? #f] [#:root-login? #f] [#:syslog-output? #t] [#:x11-forwarding? #t] [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] [#:public-key-authentication? #t] [#:initialize? #t]

Lance le programme lshd de lsh pour écouter sur le port port-number. host-key doit désigner un fichier contenant la clef d’hôte et ne doit être lisible que par root.

Lorsque daemonic? est vrai, lshd se détachera du terminal qui le contrôle et enregistrera ses journaux avec syslogd, à moins que syslog-output? ne soit faux. Évidemment, cela rend aussi lsh-service dépendant de l’existence d’un service syslogd. Lorsque pid-file? est vrai, lshd écrit son PID dans le fichier pid-file.

Lorsque initialize? est vrai, la graine et la clef d’hôte seront créés lors de l’activation du service s’ils n’existent pas encore. Cela peut prendre du temps et demande une interaction.

Lorsque initialize? est faux, c’est à l’utilisateur d’initialiser le générateur d’aléatoire (voir lsh-make-seed dans LSH Manual) et de crée une paire de clefs dont la clef privée sera stockée dans le fichier host-key (voir lshd basics dans LSH Manual).

Lorsque interfaces est vide, lshd écoute les connexions sur toutes les interfaces réseau ; autrement, interfaces doit être une liste de noms d’hôtes et d’adresses.

allow-empty-passwords? spécifie si les connexions avec des mots de passes vides sont acceptés et root-login? spécifie si la connexion en root est acceptée.

Les autres options devraient être évidentes.

Variable Scheme : openssh-service-type

C’est le type pour le démon ssh OpenSSH, sshd. Sa valeur doit être un enregistrement openssh-configuration comme dans cet exemple :

(service openssh-service-type
         (openssh-configuration
           (x11-forwarding? #t)
           (permit-root-login 'without-password)
           (authorized-keys
             `(("alice" ,(local-file "alice.pub"))
               ("bob" ,(local-file "bob.pub"))))))

Voir plus bas pour trouver des détails sur openssh-configuration.

Ce service peut être étendu avec des clefs autorisées supplémentaires, comme dans cet exemple :

(service-extension openssh-service-type
                   (const `(("charlie"
                             ,(local-file "charlie.pub")))))
Type de données : openssh-configuration

C’est l’enregistrement de la configuration de la commande sshd d’OpenSSH.

pid-file (par défaut : "/var/run/sshd.pid")

Nom du fichier où sshd écrit son PID.

port-number (par défaut : 22)

Port TCP sur lequel sshd écoute les connexions entrantes.

permit-root-login (par défaut : #f)

Ce champ détermine si et quand autoriser les connexions en root. Si la valeur est #f, les connexions en root sont désactivées ; si la valeur est #t, elles sont autorisées. S’il s’agit du symbole 'without-password, alors les connexions root sont autorisées mais pas par une authentification par mot de passe.

allow-empty-passwords? (par défaut : #f)

Lorsque la valeur est vraie, les utilisateurs avec un mot de passe vide peuvent se connecter. Sinon, ils ne peuvent pas.

password-authentication? (par défaut : #t)

Lorsque la valeur est vraie, les utilisateurs peuvent se connecter avec leur mot de passe. Sinon, ils doivent utiliser une autre méthode d’authentification.

public-key-authentication? (par défaut : #t)

Lorsque la valeur est vraie, les utilisateurs peuvent se connecter avec leur clef publique. Sinon, les utilisateurs doivent utiliser une autre méthode d’authentification.

Les clefs publiques autorisées sont stockées dans ~/.ssh/authorized_keys. Ce n’est utilisé que par le protocole version 2.

x11-forwarding? (par défaut : #f)

Lorsque la valeur est vraie, le transfert de connexion du client graphique X11 est activé — en d’autre termes, les options -X et -Y de ssh fonctionneront.

allow-agent-forwarding? (par défaut : #t)

Indique s’il faut autoriser la redirection d’agent.

allow-tcp-forwarding? (par défaut : #t)

Indique s’il faut autoriser la redirection TCP.

gateway-ports? (par défaut : #f)

Indique s’il faut autoriser les ports de passerelle.

challenge-response-authentication? (par défaut : #f)

Spécifie si l’authentification par défi est autorisée (p. ex. via PAM).

use-pam? (par défaut : #t)

Active l’interface avec le module d’authentification greffable, PAM. Si la valeur est #t, cela activera l’authentification PAM avec challenge-response-authentication? et password-authentication?, en plus des modules de compte et de session de PAM pour tous les types d’authentification.

Comme l’authentification par défi de PAM sert généralement un rôle équivalent à l’authentification par mot de passe, vous devriez désactiver soit challenge-response-authentication?, soit password-authentication?.

print-last-log? (par défaut : #t)

Spécifie si sshd devrait afficher la date et l’heure de dernière connexion des utilisateurs lorsqu’un utilisateur se connecte de manière interactive.

subsystems (par défaut : '(("sftp" "internal-sftp")))

Configure les sous-systèmes externes (p. ex. le démon de transfert de fichiers).

C’est une liste de paires, composées chacune du nom du sous-système et d’une commande (avec éventuellement des arguments) à exécuter à la demande du sous-système.

La commande internal-sftp implémente un serveur SFTP dans le processus. Autrement, on peut spécifier la commande sftp-server :

(service openssh-service-type
         (openssh-configuration
          (subsystems
           `(("sftp" ,(file-append openssh "/libexec/sftp-server"))))))
accepted-environment (par défaut : '())

Liste de chaînes de caractères qui décrivent les variables d’environnement qui peuvent être exportées.

Chaque chaîne a sa propre ligne. Voir l’option AcceptEnv dans man sshd_config.

Cet exemple permet aux clients ssh d’exporter la variable COLORTERM. Elle est initialisée par les émulateurs de terminaux qui supportent les couleurs. Vous pouvez l’utiliser dans votre fichier de ressource de votre shell pour activer les couleurs sur la ligne de commande si cette variable est initialisée.

(service openssh-service-type
         (openssh-configuration
           (accepted-environment '("COLORTERM"))))
authorized-keys (par défaut : '())

C’est la liste des clefs autorisées. Chaque élément de la liste est un nom d’utilisateur suivit d’un ou plusieurs objets simili-fichiers qui représentent les clefs publiques SSH. Par exemple :

(openssh-configuration
  (authorized-keys
    `(("rekado" ,(local-file "rekado.pub"))
      ("chris" ,(local-file "chris.pub"))
      ("root" ,(local-file "rekado.pub") ,(local-file "chris.pub")))))

enregistre les clefs publiques spécifiées pour les comptes rekado, chris et root.

Des clefs autorisées supplémentaires peuvent être spécifiées via service-extension.

Remarquez que cela n’interfère pas avec l’utilisation de ~/.ssh/authorized_keys.

log-level (par défaut : 'info)

C’est le symbole qui spécifie le niveau de journalisation : quiet, fatal, error, info, verbose, debug, etc. Voir la page de manuel de sshd_config pour trouver la liste complète des noms de niveaux.

extra-content (par défaut : "")

Ce champ peut être utilisé pour ajouter un texte arbitraire au fichier de configuration. C’est particulièrement utile pour des configurations élaborées qui ne pourraient pas être exprimées autrement. Cette configuration, par exemple, désactiverait les connexions en root, mais les permettrait depuis une adresse IP spécifique :

(openssh-configuration
  (extra-content "\
Match Address 192.168.0.1
  PermitRootLogin yes"))
Procédure Scheme : dropbear-service [config]

Lance le démon SSH Dropbear avec la configuration config donnée, un objet <dropbear-configuration>.

Par exemple, pour spécifier un service Dropbear qui écoute sur le port 1234, ajoutez cet appel au champ services de votre système d’exploitation :

(dropbear-service (dropbear-configuration
                    (port-number 1234)))
Type de données : dropbear-configuration

Ce type de données représente la configuration d’un démon SSH Dropbear.

dropbear (par défaut : dropbear)

Le paquet Dropbear à utiliser.

port-number (par défaut : 22)

Le port TCP sur lequel le démon attend des connexions entrantes.

syslog-output? (par défaut : #t)

Indique s’il faut activer la sortie vers syslog.

pid-file (par défaut : "/var/run/dropbear.pid")

Nom du fichier de PID du démon.

root-login? (par défaut : #f)

Indique s’il faut autoriser les connexions en root.

allow-empty-passwords? (par défaut : #f)

Indique s’il faut autoriser les mots de passes vides.

password-authentication? (par défaut : #t)

Indique s’il faut autoriser l’authentification par mot de passe.

Variable Scheme : %facebook-host-aliases

Cette variable contient une chaîne de caractères à utiliser dans /etc/hosts (voir Host Names dans The GNU C Library Reference Manual). Chaque ligne contient une entrée qui fait correspondre les noms des serveurs connus du service en ligne Facebook — p. ex. www.facebook.com — à l’hôte local — 127.0.0.1 ou son équivalent en IPv6, ::1.

Cette variable est typiquement utilisée dans le champ hosts-file d’une déclaration operating-system (voir /etc/hosts) :

(use-modules (gnu) (guix))

(operating-system
  (host-name "mamachine")
  ;; ...
  (hosts-file
    ;; Crée un fichier /etc/hosts avec des alias pour « localhost »
    ;; et « mamachine », ainsi que pour les serveurs de Facebook.
    (plain-file "hosts"
                (string-append (local-host-aliases host-name)
                               %facebook-host-aliases))))

Ce mécanisme peut éviter que des programmes qui tournent localement, comme des navigateurs Web, ne se connectent à Facebook.

Le module (gnu services avahi) fourni la définition suivante.

Variable Scheme : avahi-service-type

C’est le service qui lance avahi-daemon, un service système qui répond aux requêtes mDNS/DNS-SD qui permet la découverte de service et la recherche de nom en « zéro configuration » (voir https://avahi.org/). Sa valeur doit être un enregistrement zero-configuration — voir plus bas.

Ce service étend le démon de cache de services de noms (nscd) pour qu’il puisse résoudre les noms d’hôtes en .local avec nss-mdns. Voir Name Service Switch, pour plus d’informations sur la résolution des noms d’hôte.

En plus, cela ajoute le paquet avahi au profil du système pour que les commandes comme avahi-browse soient directement utilisables.

Type de données : avahi-configuration

Type de données représentant la configuration d’Avahi.

host-name (par défaut : #f)

Si la valeur n’est pas #f, utilise cette valeur comme nom d’hôte à publier pour la machine ; sinon, utilise le vrai nom d’hôte de la machine.

publish? (par défaut : #t)

Lorsque la valeur est vraie, permet la publication sur le réseau (en diffusion) des noms d’hôtes et des services.

publish-workstation? (par défaut : #t)

Lorsque la valeur est vraie, avahi-daemon publie le nom d’hôte et l’adresse IP de la machine via mDNS sur le réseau local. Pour voir les noms d’hôtes publiés sur votre réseau local, vous pouvez lancer :

avahi-browse _workstation._tcp
wide-area? (par défaut : #f)

Lorsque la valeur est vraie, DNS-SD sur DNS unicast est activé.

ipv4? (par défaut : #t)
ipv6? (par défaut : #t)

Ces champs déterminent s’il faut utiliser des socket IPv4/IPv6.

domains-to-browse (par défaut : '())

C’est la liste des domaines sur lesquels naviguer.

Variable Scheme : openvswitch-service-type

C’est le type du service Open vSwitch, dont la valeur devrait être un objet openvswitch-configuration.

Type de données : openvswitch-configuration

Type de données représentant la configuration de Open vSwitch, un commutateur virtuel multiniveaux conçu pour rendre possible l’automatisation massive des réseaux avec des extensions programmables.

package (par défaut : openvswitch)

Objet de paquet de Open vSwitch.

Scheme Variable : pagekite-service-type

This is the service type for the PageKite service, a tunneling solution for making localhost servers publicly visible, even from behind NAT or restrictive firewalls. The value for this service type is a pagekite-configuration record.

Here’s an example exposing the local HTTP and SSH daemons:

(service pagekite-service-type
         (pagekite-configuration
           (kites '("http:@kitename:localhost:80:@kitesecret"
                    "raw/22:@kitename:localhost:22:@kitesecret"))
           (extra-file "/etc/pagekite.rc")))
Data Type : pagekite-configuration

Data type representing the configuration of PageKite.

package (default: pagekite)

Package object of PageKite.

kitename (default: #f)

PageKite name for authenticating to the frontend server.

kitesecret (default: #f)

Shared secret for authenticating to the frontend server. You should probably put this inside extra-file instead.

frontend (default: #f)

Connect to the named PageKite frontend server instead of the pagekite.net service.

kites (default: '("http:@kitename:localhost:80:@kitesecret"))

List of service kites to use. Exposes HTTP on port 80 by default. The format is proto:kitename:host:port:secret.

extra-file (default: #f)

Extra configuration file to read, which you are expected to create manually. Use this to add additional options and manage shared secrets out-of-band.


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