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


8.8.11 Services de messagerie

Le module (gnu services messaging) fournit des définitions de services Guix pour les services de messageries instantanées : actuellement seul Prosody est supporté.

Service Prosody

Variable Scheme : prosody-service-type

C’est le type pour le le serveur de communication XMPP Prosody. 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 (voir file-like objects), 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 chatrooms multi-utilisateurs se trouvent dans la documentation sur les chatrooms (https://prosody.im/doc/chatrooms), que vous devriez lire si vous les découvrez.

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 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. Sa valeur est un bitlbee-configuration (voir plus bas).

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

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 (default: 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 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. 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 ».


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