Siguiente: , Anterior: , Subir: Servicios   [Índice general][Índice]


10.8.12 Servicios de mensajería

El módulo (gnu services messaging) proporciona definiciones de servicios Guix para servicios de mensajería. Actualmente proporciona los siguientes servicios:

Servicio Prosody

Variable Scheme: prosody-service-type

Este es el tipo para el servidor de comunicaciones XMPP Prosody. Su valor debe ser un registro prosody-configuration como en este ejemplo:

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

Véase a continuación detalles acerca de prosody-configuration.

De manera predeterminada, Prosody no necesita demasiada configuración. Únicamente un campo virtualhost es necesario: especifica el dominio en el que se desea que Prosody proporcione el servicio.

Puede realizar varias comprobaciones preliminares sobre la configuración generada con la orden prosodyctl check.

Prosodyctl también le ayudará con la importación de certificados del directorio letsencrypt de modo que la usuaria prosody puede acceder a ellos. Véase https://prosody.im/doc/letsencrypt.

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

A continuación se encuentran los parámetros de configuración disponibles. El tipo de cada parámetro antecede la definición del mismo; por ejemplo, ‘string-list foo’ indica que el parámetro foo debe especificarse como una lista de cadenas. Los tipos que empiezan con maybe- identifican parámetros que no aparecerán en prosody.cfg.lua cuando su valor sea 'disabled.

También existe la posibilidad de especificar la configuración como una cadena, por si tiene un archivo prosody.cfg.lua antiguo que desea transportar desde otro sistema; véase más detalles al final.

El tipo file-object designa o bien un objeto “tipo-archivo” (véase objetos “tipo-archivo”) o un nombre de archivo.

Los campos disponibles de prosody-configuration son:

parámetro de prosody-configuration: package prosody

El paquete Prosody.

parámetro de prosody-configuration: nombre-archivo data-path

Ruta del directorio de almacenamiento de datos de Prosody. Véase https://prosody.im/doc/configure. Su valor predeterminado es ‘"/var/lib/prosody"’.

parámetro de prosody-configuration: lista-file-object plugin-paths

Directorios de módulos adicionales. Los módulos se buscan en orden en todas las rutas especificadas. Véase https://prosody.im/doc/plugins_directory. Su valor predeterminado es ‘()’.

parámetro de prosody-configuration: nombre-archivo certificates

Cada máquina virtual y componente necesitan un certificado de manera que los clientes y servidores puedan verificar su identidad de manera segura. Prosody cargará de manera automática certificados/claves del directorio especificado aquí. Su valor predeterminado es ‘"/etc/prosody/certs"’.

parámetro de prosody-configuration: lista-string admins

Es una lista de cuentas con permisos de administración en el servidor. Tenga en cuenta que debe crear las cuentas de manera separada. Véase https://prosody.im/doc/admins y https://prosody.im/doc/creating_accounts. Ejemplo: (admins '("usuaria1@example.com" "usuaria2@example.net")) Su valor predeterminado es ‘()’.

parámetro de prosody-configuration: boolean use-libevent?

Activa el uso de libevent para mejorar el rendimiento bajo altas cargas de trabajo. Véase https://prosody.im/doc/libevent. Su valor predeterminado es ‘#f’.

parámetro de prosody-configuration: lista-módulos modules-enabled

La lista de módulos de Prosody cargada durante el arranque. Busca en el archivo de módulos mod_nombremodulo.lua, por lo que asegúrese de que también exista. La documentación de los módulos puede encontrarse en: https://prosody.im/doc/modules. Su valor predeterminado es ‘("roster" "saslauth" "tls" "dialback" "disco" "carbons" "private" "blocklist" "vcard" "version" "uptime" "time" "ping" "pep" "register" "admin_adhoc")’.

parámetro de prosody-configuration: lista-string modules-disabled

"offline"’, ‘"c2s"’ y ‘"s2s"’ se cargan de manera automática, pero puede desactivarlos si los añade a esta lista. Su valor predeterminado es ‘()’.

parámetro de prosody-configuration: file-object groups-file

Ruta a un archivo de texto donde se definan los grupos compartidos. Si esta ruta está vacía, ‘mod_groups’ no hace nada. Véase https://prosody.im/doc/modules/mod_groups. Su valor predeterminado es ‘"/var/lib/prosody/sharedgroups.txt"’.

parámetro de prosody-configuration: boolean allow-registration?

Desactiva la creación de cuentas de manera predeterminada, por seguridad. Véase https://prosody.im/doc/creating_accounts. Su valor predeterminado es ‘#f’.

parámetro de prosody-configuration: maybe-ssl-configuration ssl

Estas opciones de configuración están relacionadas con SSL/TLS. La mayor parte no se proporcionan para usar los valores predeterminados de Prosody. Si no entiende completamente estas opciones, no las añada a su configuración, es fácil aumentar la vulnerabilidad de su servidor si las usa. Véase https://prosody.im/doc/advanced_ssl_config.

Los campos disponibles de ssl-configuration son:

parámetro de ssl-configuration: maybe-string protocol

Determina el inicio del protocolo usado (handshake).

parámetro de ssl-configuration: maybe-nombre-archivo key

Ruta a su archivo de clave privada.

parámetro de ssl-configuration: maybe-nombre-archivo certificate

Ruta al archivo de su certificado.

parámetro de ssl-configuration: file-object capath

Ruta al directorio que contiene los certificados raíz en los que desea que Prosody confíe al verificar los certificados de servidores remotos. Su valor predeterminado es ‘"/etc/ssl/certs"’.

parámetro de ssl-configuration: maybe-file-object cafile

Ruta al archivo que contiene los certificados raíz en los que desea que Prosody confíe. Es similar a capath pero con todos los certificados concatenados en el mismo archivo.

parámetro de ssl-configuration: maybe-lista-string verify

Una lista de opciones de verificación (son de manera prácticamente directa las opciones de set_verify() de OpenSSL).

parámetro de ssl-configuration: maybe-lista-string options

A list of general options relating to SSL/TLS. These map to OpenSSL’s set_options(). For a full list of options available in LuaSec, see the LuaSec source.

parámetro de ssl-configuration: maybe-entero-no-negativo depth

Cómo de larga puede ser la cadena de autoridades de certificación a comprobar cuando se busque un certificado de confianza.

parámetro de ssl-configuration: maybe-string ciphers

Una cadena de algoritmos de cifrado de OpenSSL. Selecciona que algoritmos ofrecerá Prosody a los clientes, y en qué orden.

parámetro de ssl-configuration: maybe-nombre-archivo dhparam

Una ruta a un archivo que contenga parámetros para el intercambio de claves Diffie-Hellman. Puede crear un archivo de este tipo con: openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048

parámetro de ssl-configuration: maybe-string curve

Curva para el protocolo Diffie-Hellman de curva elíptica. El valor predeterminado de Prosody es ‘"secp384r1"’.

parámetro de ssl-configuration: maybe-string-list verifyext

Una lista de opciones de verificación adicionales.

parámetro de ssl-configuration: maybe-string password

Contraseña para claves privadas cifradas.

parámetro de prosody-configuration: boolean c2s-require-encryption?

Determina si se fuerza que todas las conexiones cliente-servidor vayan cifradas o no. Véase https://prosody.im/doc/modules/mod_tls. Su valor predeterminado es ‘#f’.

parámetro de prosody-configuration: lista-string disable-sasl-mechanisms

Conjunto de mecanismos que no se ofrecerán nunca. Véase https://prosody.im/doc/modules/mod_saslauth. Su valor predeterminado es ‘("DIGEST-MD5")’.

parámetro de prosody-configuration: boolean s2s-require-encryption?

Determina si se fuerza que todas las conexiones servidor-servidor vayan cifradas o no. Véase https://prosody.im/doc/modules/mod_tls. Su valor predeterminado es ‘#f’.

parámetro de prosody-configuration: boolean s2s-secure-auth?

Determina si el cifrado y la identificación mediante certificado son necesarias. Esto proporciona una seguridad ideal, pero necesita que los servidores con los que se comunique permitan cifrado y tengan presentes certificados válidos en los que se tenga confianza. Véase https://prosody.im/doc/s2s#security. Su valor predeterminado es ‘#f’.

parámetro de prosody-configuration: lista-string s2s-insecure-domains

Many servers don’t support encryption or have invalid or self-signed certificates. You can list domains here that will not be required to authenticate using certificates. They will be authenticated using DNS. See https://prosody.im/doc/s2s#security. Defaults to ‘()’.

parámetro de prosody-configuration: lista-string s2s-secure-domains

Aún en el caso de mantener s2s-secure-auth?, puede exigir certificados válidos para algunos dominios especificando una lista aquí. Véase https://prosody.im/doc/s2s#security. Su valor predeterminado es ‘()’.

parámetro de prosody-configuration: string authentication

Selecciona el motor de identificación usado. La implementación predeterminada almacena las contraseñas en texto claro y usa el almacenamiento de datos configurado en Prosody para los datos de identificación. Si no confía en su servidor le recomendamos que visite https://prosody.im/doc/modules/mod_auth_internal_hashed para obtener información sobre el motor de almacenamiento tras hash. Véase también https://prosody.im/doc/authentication. Su valor predeterminado es ‘"internal_plain"’.

parámetro de prosody-configuration: maybe-string log

Determina las opciones del registro. La configuración avanzada del registro no está implementada todavía para el servicio Prosody. Véase https://prosody.im/doc/logging. Su valor predeterminado es ‘"*syslog"’.

parámetro de prosody-configuration: nombre-archivo pidfile

Archivo en el que se escribirá el PID. Véase https://prosody.im/doc/modules/mod_posix. Su valor predeterminado es ‘"/var/run/prosody/prosody.pid"’.

parámetro de prosody-configuration: maybe-entero-no-negativo http-max-content-size

Tamaño máximo permitido del cuerpo (body) HTTP (en bytes)

parámetro de prosody-configuration: maybe-string http-external-url

Algunos módulos exponen sus propias URL de diversas maneras. Esta URL se construye en base al protocolo, máquina y puerto usados. Si Prosody se encuentra tras un proxy, se usara http-external-url como URL pública. Véase https://prosody.im/doc/http#external_url.

parámetro de prosody-configuration: lista-virtualhost-configuration virtualhosts

Una máquina (host) en Prosody es un dominio en el que se pueden crear cuentas de usuaria. Por ejemplo, si desea que sus usuarias tengan direcciones como ‘"juan.herrero@example.com"’ necesitará añadir una máquina ‘"example.com"’. Todas las opciones en esta lista son efectivas únicamente en esa máquina.

Fíjese: el nombre de máquina virtual se usa en la configuración para evitar confusión con la máquina física en la que Prosody se encuentra instalado. Una única instancia de Prosody puede proporcionar servicio para muchos dominos, cada uno definido como una entrada de máquina virtual (VirtualHost) en la configuración de Prosody. De manera alternativa, un servidor que aloja un único dominio puede tener una única entrada VirtualHost.

Véase https://prosody.im/doc/configure#virtual_host_settings.

Los campos disponibles de virtualhost-configuration son:

todos estos campos 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, además de:

parámetro de virtualhost-configuration: string domain

Dominio en el que desea que Prosody proporcione servicio.

parámetro de prosody-configuration: lista-int-component-configuration int-components

Los componentes son servicios adicionales en un servidor que están disponibles a los clientes, habitualmente en un subdominio del servidor principal (como por ejemplo ‘"micomponente.example.com"’). Algunos ejemplos de componentes pueden ser los servidores de salas de conversación, los directorios de usuarias o las pasarelas a otros protocolos.

Los componentes internos se implementan con módulos específicos de Prosody. Para añadir un componente interno, simplemente rellene el campo del nombre de máquina, y el módulo que desea usar para el componente.

Véase https://prosody.im/doc/components. Su valor predeterminado es ‘()’.

Los campos disponibles de int-component-configuration son:

todos estos campos 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, además de:

parámetro de int-component-configuration: string hostname

Nombre de máquina del componente.

parámetro de int-component-configuration: string plugin

Módulo que desea usar para el componente.

parámetro de int-component-configuration: maybe-mod-muc-configuration mod-muc

Multi-user chat (MUC) es el módulo de Prosody que permite la creación de salas de conversación/conferencias para usuarias XMPP.

Información general sobre la configuración y el uso de las salas de conversación multi-usuaria puede encontrarse en la documentación “Chatrooms” (https://prosody.im/doc/chatrooms), que debería leer si no conoce las salas de conversación de XMPP.

Véase también https://prosody.im/doc/modules/mod_muc.

Los campos disponibles de mod-muc-configuration son:

parámetro de mod-muc-configuration: string name

El nombre devuelto en las respuestas de descubrimiento de servicios. Su valor predeterminado es ‘"Prosody Chatrooms"’.

parámetro de mod-muc-configuration: string-o-boolean restrict-room-creation

Si es ‘#t’, únicamente se permitirá a las administradoras la creación de nuevas salas de conversación. En otro caso cualquiera puede crear una sala. El valor ‘"local"’ restringe la creación a usuarias en el dominio superior del servicio. Por ejemplo ‘usuaria@example.com’ puede crear grupos en ‘rooms.example.com’. El valor ‘"admin"’ restringe el servicio a las administradoras únicamente. Su valor predeterminado es ‘#f’.

parámetro de mod-muc-configuration: entero-no-negativo max-history-messages

Número máximo de mensajes históricos que se enviarán a quien se acabe de unir a la sala. Su valor predeterminado es ‘20’.

parámetro de prosody-configuration: lista-ext-component-configuration ext-components

Los componentes externos usan XEP-0114, el cual se implementa en la mayor parte de componentes independientes. Para añadir un componente externo, simplemente rellene el campo de nombre de máquina (hostname). Véase httos://prosody.im/doc/components. Su valor predeterminado es ‘()’.

Los campos disponibles de ext-component-configuration son:

todos estos campos 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, además de:

parámetro de ext-component-configuration: string component-secret

Contraseña usada por el componente para el ingreso al sistema.

parámetro de ext-component-configuration: string hostname

Nombre de máquina del componente.

parámetro de prosody-configuration: lista-entero-no-negativo component-ports

Puerto o puertos en los que prosody escucha conexiones de componentes. Su valor predeterminado es ‘(5347)’.

parámetro de prosody-configuration: string component-interface

Interfaz en la que Prosody escucha conexiones de componentes. Su valor predeterminado es ‘"127.0.0.1"’.

parámetro de prosody-configuration: maybe-raw-content raw-content

Contenido que se añadirá directamente al archivo de configuración.

Puede ser que únicamente desee usar un archivo prosody.cfg.lua ya creado. En ese caso, puede proporcionar un registro opaque-prosody-configuration como el valor de prosody-service-type. Como su nombre en inglés indica, una configuración opaca no tiene gran capacidad reflexiva. Los campos disponibles de opaque-prosody-configuration son:

parámetro de opaque-prosody-configuration: package prosody

El paquete prosody.

parámetro de opaque-prosody-configuration: string prosody.cfg.lua

El contenido usado para prosody.cfg.lua.

Por ejemplo, si su prosody.cfg.lua es simplemente la cadena vacía, podría instanciar el servicio de Prosody de esta manera:

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

Servicio BitlBee

BitlBee es una pasarela que proporciona una interfaz IRC a una variedad de protocolos como XMPP.

Variable Scheme: bitlbee-service-type

Este es el tipo de servicio para el daemon de pasarela IRC BitlBee. Su valor es un bitlbee-configuration (véase a continuación).

Para que BitlBee escuche en el puerto 6667 de localhost, añada esta línea a sus servicios:

Tipo de datos: bitlbee-configuration

Esta es la configuración para BitlBee, con los siguientes campos:

interface (predeterminada: "127.0.0.1")
port (predeterminado: 6667)

Escucha en la interfaz de red correspondiente a la dirección IP especificada en interface, en el puerto port.

Cuando interface es 127.0.0.1, únicamente se permite la conexión de clientes locales; cuando es 0.0.0.0, las conexiones pueden venir de cualquier interfaz de red.

bitlbee (predeterminado: bitlbee)

El paquete BitlBee usado.

plugins (predeterminados: '())

Lista de paquetes de módulos usados—por ejemplo, bitlbee-discord.

extra-settings (predeterminado: "")

Fragmento de configuración añadido tal cual al archivo de configuración de BitlBee.

Servicio Quassel

Quassel es un cliente IRC distribuido, lo que significa que uno o más clientes se pueden conectar y desconectar del núcleo central.

Variable Scheme: quassel-service-type

Es el tipo de servicio del daemon del motor IRC de Quassel. Su valor es un quassel-configuration (véase a continuación).

Tipo de datos: quassel-configuration

Es la configuración para Quassel, con los siguientes campos:

quassel (predeterminado: quassel)

El paquete Quassel usado.

interface (predeterminada: "::,0.0.0.0")
port (predeterminado: 4242)

Escucha en la o las interfaces de red que correspondan con las direcciones IPv4 o IPv6 delimitadas por comas especificadas en interface, en el puerto port.

loglevel (predeterminado: "Info")

El nivel de registro deseado. Los valores aceptados son Debug, Info, Warning y Error.


Siguiente: , Anterior: , Subir: Servicios   [Índice general][Índice]