Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


10.8.12 Kurznachrichtendienste

Das Modul (gnu services messaging) stellt Guix-Dienstdefinitionen für Kurznachrichtendienste, d.h. „Instant Messaging“, zur Verfügung. Zurzeit werden folgende Dienste unterstützt:

Prosody-Dienst

Scheme-Variable: prosody-service-type

Dies ist der Diensttyp für den XMPP-Kommunikationsserver Prosody. Sein Wert muss ein prosody-configuration-Verbundsobjekt wie in diesem Beispiel sein:

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

Siehe im Folgenden Details über die prosody-configuration.

Prosody kann mit den Vorgabeeinstellungen ohne viel weitere Konfiguration benutzt werden. Nur ein virtualhosts-Feld wird gebraucht: Es legt die Domain fest, um die sich Prosody kümmert.

Sie können die Korrektheit der generierten Konfigurationsdatei überprüfen, indem Sie den Befehl prosodyctl check ausführen.

Prosodyctl hilft auch dabei, Zertifikate aus dem letsencrypt-Verzeichnis zu importieren, so dass das prosody-Benutzerkonto auf sie Zugriff hat. Siehe https://prosody.im/doc/letsencrypt.

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

Im Folgenden finden Sie die verfügbaren Konfigurationsparameter. Jeder Parameterdefinition ist ihr Typ vorangestellt; zum Beispiel bedeutet ‘Zeichenketten-Liste foo’, dass der Parameter foo als Liste von Zeichenketten angegeben werden sollte. Typangaben, die mit Vielleicht- beginnen, stehen für Parameter, die in prosody.cfg.lua nicht vorkommen, falls deren Wert als 'disabled („deaktiviert“) angegeben wurde.

Sie können die Konfiguration auch als eine Zeichenkette festlegen, wenn Sie über eine alte prosody.cfg.lua-Datei verfügen, die Sie von einem anderen System übernehmen möchten; siehe das Ende dieses Abschnitts für Details.

Der Typ Dateiobjekt bezeichnet hierbei entweder ein dateiartiges Objekt (siehe dateiartige Objekte) oder einen Dateinamen.

Verfügbare prosody-configuration-Felder sind:

prosody-configuration-Parameter: „package“ prosody

Das Prosody-Paket.

prosody-configuration-Parameter: Dateiname data-path

Der Ort, wo sich Prosodys Verzeichnis zum Speichern von Daten befinden soll. Siehe https://prosody.im/doc/configure. Die Vorgabe ist ‘"/var/lib/prosody"’.

prosody-configuration-Parameter: Dateiobjekt-Liste plugin-paths

Zusätzliche Plugin-Verzeichnisse. Plugins werden der Reihe nach in allen festgelegten Pfaden gesucht. Siehe https://prosody.im/doc/plugins_directory. Die Vorgabe ist ‘()’.

prosody-configuration-Parameter: Dateiname certificates

Jeder virtuellte Rechner und jede Komponente braucht ein Zertifikat, mit dem Clients und Server ihre Identität sicher verifizieren können. Prosody lädt automatisch Zertifikate bzw. Schlüssel aus dem hier angegebenen Verzeichnis. Die Vorgabe ist ‘"/etc/prosody/certs"’.

prosody-configuration-Parameter: Zeichenketten-Liste admins

Dies ist eine Liste der Benutzerkonten, die auf diesem Server Administratoren sind. Beachten Sie, dass Sie die Benutzerkonten noch separat als Nutzer erzeugen lassen müssen. Siehe https://prosody.im/doc/admins and https://prosody.im/doc/creating_accounts. Ein Beispiel: (admins '("user1@example.com" "user2@example.net")) Die Vorgabe ist ‘()’.

prosody-configuration-Parameter: Boolescher-Ausdruck use-libevent?

Die Nutzung von libevent aktivieren, damit bessere Leistungsfähigkeit auch unter hoher Last gewährleistet wird. Siehe https://prosody.im/doc/libevent. Die Vorgabe ist ‘#f’.

prosody-configuration-Parameter: Modul-Liste modules-enabled

Die Liste der Module, die Prosody beim Starten lädt. Es sucht nach mod_modulename.lua im Plugin-Verzeichnis, also sollten Sie sicherstellen, dass es dort auch existiert. Dokumentation über Module können Sie hier finden: https://prosody.im/doc/modules. Die Vorgabe ist ‘("roster" "saslauth" "tls" "dialback" "disco" "carbons" "private" "blocklist" "vcard" "version" "uptime" "time" "ping" "pep" "register" "admin_adhoc")’.

prosody-configuration-Parameter: Zeichenketten-Liste modules-disabled

"offline"’, ‘"c2s"’ und ‘"s2s"’ werden automatisch geladen, aber wenn Sie sie deaktivieren möchten, tragen Sie sie einfach in die Liste ein. Die Vorgabe ist ‘()’.

prosody-configuration-Parameter: Dateiobjekt groups-file

Der Pfad zu einer Textdatei, in der gemeinsame Gruppen definiert werden. Wenn dieser Pfad leer ist, dann tut ‘mod_groups’ nichts. Siehe https://prosody.im/doc/modules/mod_groups. Die Vorgabe ist ‘"/var/lib/prosody/sharedgroups.txt"’.

prosody-configuration-Parameter: Boolescher-Ausdruck allow-registration?

Ob nach Voreinstellung keine neuen Benutzerkonten angelegt werden können, aus Sicherheitsgründen. Siehe https://prosody.im/doc/creating_accounts. Die Vorgabe ist ‘#f’.

prosody-configuration-Parameter: Vielleicht-„ssl-configuration“ ssl

Dies ist der Teil der Einstellungen, der mit SSL/TLS zu tun hat. Der Großteil davon ist deaktiviert, damit die Voreinstellungen von Prosody verwendet werden. Wenn Sie diese Optionen hier nicht völlig verstehen, sollten Sie sie nicht in Ihrer Konfiguration verwenden. Es passiert leicht, dass Sie die Sicherheit Ihres Servers absenken, indem Sie sie falsch benutzen. Siehe https://prosody.im/doc/advanced_ssl_config.

Verfügbare ssl-configuration-Felder sind:

ssl-configuration-Parameter: Vielleicht-Zeichenkette protocol

Dadurch wird entschieden, was für ein Handshake benutzt wird.

ssl-configuration-Parameter: Vielleicht-Dateiname key

Der Pfad zur Datei mit Ihrem privaten Schlüssel.

ssl-configuration-Parameter: Vielleicht-Dateiname certificate

Der Pfad zur Datei mit Ihrem Zertifikat.

ssl-configuration-Parameter: Dateiobjekt capath

Der Pfad zum Verzeichnis, das die Wurzelzertifikate enthält, die Prosody zur Verifikation der Zertifikate entfernter Server benutzen soll. Die Vorgabe ist ‘"/etc/ssl/certs"’.

ssl-configuration-Parameter: Vielleicht-Dateiobjekt cafile

Der Pfad zu einer Datei, in der Wurzelzertifikate enthalten sind, denen Prosody vertrauen soll. Er verhält sich ähnlich wie capath, aber alle Zertifikate stehen hintereinander in der Datei.

ssl-configuration-Parameter: Vielleicht-Zeichenketten-Liste verify

Eine Liste von Verifikationsoptionen. (Die meisten bilden auf die set_verify()-Flags von OpenSSL ab.)

ssl-configuration-Parameter: Vielleicht-Zeichenketten-Liste options

Eine Liste allgemeiner Optionen, die mit SSL/TLS zu tun haben. Diese bilden auf OpenSSLs set_options() ab. Eine vollständige Liste der in LuaSec verfügbaren Optionen finden Sie im Quellcode von LuaSec.

ssl-configuration-Parameter: Vielleicht-Nichtnegative-ganze-Zahl depth

Wie lange eine Kette von Zertifikatsautoritäten („Certificate Authorities“) nach einem passenden Wurzelzertifikat durchsucht wird, dem vertraut wird.

ssl-configuration-Parameter: Vielleicht-Zeichenkette ciphers

Eine Zeichenkette mit OpenSSL-Ciphers. Damit wird ausgewählt, welche Ciphers Prosody seinen Clients anbietet, und in welcher Reihenfolge.

ssl-configuration-Parameter: Vielleicht-Dateiname dhparam

Ein Pfad zu einer Datei, in der Parameter für Diffie-Hellman-Schlüsselaustausche stehen. Sie können so eine Datei mit diesem Befehl erzeugen: openssl dhparam -out /etc/prosody/certs/dh-2048.pem 2048

ssl-configuration-Parameter: Vielleicht-Zeichenkette curve

Die Kurve, die für Diffie-Hellman mit elliptischen Kurven verwendet werden soll. Prosodys Voreinstellung ist ‘"secp384r1"’.

ssl-configuration-Parameter: Vielleicht-Zeichenketten-Liste verifyext

Eine Liste von zusätzlichen Verifikationsoptionen.

ssl-configuration-Parameter: Vielleicht-Zeichenkette password

Das Passwort fÜr verschlüsselte private Schlüssel.

prosody-configuration-Parameter: Boolescher-Ausdruck c2s-require-encryption?

Ob alle Verbindungen von Client zu Server zwangsweise verschlüsselt sein müssen. Siehe https://prosody.im/doc/modules/mod_tls. Die Vorgabe ist ‘#f’.

prosody-configuration-Parameter: Zeichenketten-Liste disable-sasl-mechanisms

Welche Mechanismen angeboten werden. Siehe https://prosody.im/doc/modules/mod_saslauth. Die Vorgabe ist ‘("DIGEST-MD5")’.

prosody-configuration-Parameter: Boolescher-Ausdruck s2s-require-encryption?

Ob alle Verbindungen von Server zu Server zwangsweise verschlüsselt sein müssen. Siehe https://prosody.im/doc/modules/mod_tls. Die Vorgabe ist ‘#f’.

prosody-configuration-Parameter: Boolescher-Ausdruck s2s-secure-auth?

Ob Verschlüsselung und Zertifikatsauthentifizierung verpflichtend durchgeführt werden müssen. Das bietet das ideale Maß an Sicherheit, jedoch müssen dann auch die Server, mit denen Sie kommunizieren, Verschlüsselung unterstützen und gültige Zertifikate vorweisen, denen Sie auch vertrauen. Siehe https://prosody.im/doc/s2s#security. Die Vorgabe ist ‘#f’.

prosody-configuration-Parameter: Zeichenketten-Liste s2s-insecure-domains

Viele Server bieten keine Unterstützung für Verschlüsselung oder ihre Zertifikate sind ungültig oder selbstsigniert. Hier können Sie Domains eintragen, die von der Pflicht zur Authentisierung mit Zertifikaten ausgenommen werden. Diese werden dann über DNS authentifiziert. Siehe https://prosody.im/doc/s2s#security. Die Vorgabe ist ‘()’.

prosody-configuration-Parameter: Zeichenketten-Liste s2s-secure-domains

Selbst wenn Sie s2s-secure-auth? deaktiviert lassen, können Sie noch immer gültige Zertifikate bei manchen Domains verlangen, indem Sie diese hier auflisten. Siehe https://prosody.im/doc/s2s#security. Die Vorgabe ist ‘()’.

prosody-configuration-Parameter: Zeichenkette authentication

Wählen Sie aus, welcher Hintergrunddienst („Provider“) zur Authentifizierung benutzt werden soll. Das vorgegebene System speichert Passwörter im Klartext ab und benutzt dafür den in Prosody eingestellten Datenspeicher, um Authentifizierungsdaten zu speichern. Wenn Sie Ihrem Server kein Vertrauen entgegenbringen, siehe https://prosody.im/doc/modules/mod_auth_internal_hashed für Informationen, wie Sie den gehashten Hintergrunddienst benutzen. Siehe auch https://prosody.im/doc/authentication. Die Vorgabe ist ‘"internal_plain"’.

prosody-configuration-Parameter: Vielleicht-Zeichenkette log

Hiermit werden die Protokollierungsoptionen festgelegt. Fortgeschrittene Protokollierungskonfigurationen werden vom Prosody-Dienst noch nicht unterstützt. Siehe https://prosody.im/doc/logging. Die Vorgabe ist ‘"*syslog"’.

prosody-configuration-Parameter: Dateiname pidfile

Die Datei, in der Prosodys Prozessidentifikator („PID“) abgelegt wird. Siehe https://prosody.im/doc/modules/mod_posix. Die Vorgabe ist ‘"/var/run/prosody/prosody.pid"’.

prosody-configuration-Parameter: Vielleicht-Nichtnegative-ganze-Zahl http-max-content-size

Die maximal zulässige Größe des HTTP-Rumpfs (in Bytes).

prosody-configuration-Parameter: Vielleicht-Zeichenkette http-external-url

Manche Module machen auf verschiedene Arten ihre eigene URL verfügbar. Diese URL setzt sich aus dem benutzten Protokoll, Rechnernamen und Port zusammen. Wenn Prosody hinter einem Proxy ausgeführt wird, ist die öffentliche URL stattdessen die http-external-url. Siehe https://prosody.im/doc/http#external_url.

prosody-configuration-Parameter: „virtualhost-configuration“-Liste virtualhosts

Der Name eines Rechners („Host“) in Prosody bezeichnet eine Domain, auf der Benutzerkonten angelegt werden können. Wenn Sie zum Beispiel möchten, dass Nutzer Adressen haben wie ‘"john.smith@example.com"’, dann müssen Sie einen Rechnernamen ‘"example.com"’ hinzufügen. Alle Optionen in dieser Liste gelten nur für diesen Rechnernamen.

Beachten Sie: Die Bezeichnung virtueller Rechnername wird in der Konfiguration verwendet, damit es nicht zu Verwechslungen mit dem tatsächlichen physischen Rechner kommt, auf dem Prosody installiert ist. Eine einzelne Prosody-Instanz kann mehrere Domains bedienen, jede definiert mit ihrem eigenen VirtualHost-Eintrag in der Konfiguration von Prosody. Im Gegensatz dazu hätte ein Server, der nur eine Domain anbietet, nur einen einzigen VirtualHost-Eintrag.

Siehe https://prosody.im/doc/configure#virtual_host_settings.

Verfügbare virtualhost-configuration-Felder sind:

Alle folgenden Felder, wie sie auch die prosody-configuration hat: 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, und außerdem:

virtualhost-configuration-Parameter: Zeichenkette domain

Die Domain, auf der man Prosody erreichen soll.

prosody-configuration-Parameter: „int-component-configuration“-Liste int-components

Komponenten sind zusätzliche Dienste auf einem Server, die Clients zur Verfügung stehen. Sie sind normalerweise auf einer Subdomain des Hauptservers verfügbar (wie zum Beispiel ‘"mycomponent.example.com"’). Beispiele für Komponenten könnten Server für Chaträume, Benutzerverzeichnisse oder Zugänge („Gateways“) zu anderen Protokollen sein.

Interne Komponenten werden über Prosody-spezifische Plugins implementiert. Um eine interne Komponente hinzuzufügen, tragen Sie einfach das hostname-Feld für den Rechnernamen und die Plugins ein, die Sie für die Komponente benutzen möchten.

Siehe https://prosody.im/doc/components. Die Vorgabe ist ‘()’.

Verfügbare int-component-configuration-Felder sind:

Alle folgenden Felder, wie sie auch die prosody-configuration hat: 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, und außerdem:

int-component-configuration-Parameter: Zeichenkette hostname

Der Rechnername für diese Komponente.

int-component-configuration-Parameter: Zeichenkette plugin

Das Plugin, das Sie für diese Komponente benutzen möchten.

int-component-configuration-Parameter: Vielleicht-„mod-muc-configuration“ mod-muc

Multi-User Chat (MUC) ist der Name von Prosodys Modul, womit Sie Chaträume/Konferenzen für XMPP-Benutzer anbieten lassen können.

Allgemeine Informationen über das Einrichten und Benutzen von Multi-User-Chaträumen können Sie in der Dokumentation über Chaträume finden (https://prosody.im/doc/chatrooms), die Sie lesen sollten, wenn Ihnen XMPP-Chaträume neu sind.

Siehe auch https://prosody.im/doc/modules/mod_muc.

Verfügbare mod-muc-configuration-Felder sind:

mod-muc-configuration-Parameter: Zeichenkette name

Der Name, der in Antworten auf die Diensteermittlung benutzt. Die Vorgabe ist ‘"Prosody Chatrooms"’.

mod-muc-configuration-Parameter: Zeichenkette-oder-Boolescher-Ausdruck restrict-room-creation

Für ‘#t’ können nur Administratoren neue Chaträume anlegen. Andernfalls kann jeder einen Raum anlegen. Der Wert ‘"local"’ schränkt das Anlegen neuer Räume auf solche Nutzer ein, die zur Eltern-Domain des Dienstes gehören. Z.B. kann ‘user@example.com’ Räume auf ‘rooms.example.com’ anlegen. Für den Wert ‘"admin"’ können nur Dienstadministratoren Chaträume anlegen. Die Vorgabe ist ‘#f’.

mod-muc-configuration-Parameter: Nichtnegative-ganze-Zahl max-history-messages

Die Maximalzahl der Nachrichten aus dem Chat-Verlauf, die an ein Mitglied nachversandt werden, das gerade erst dem Raum beigetreten ist. Die Vorgabe ist ‘20’.

prosody-configuration-Parameter: „ext-component-configuration“-Liste ext-components

Externe Komponenten benutzen XEP-0114, das von den meisten eigenständigen Komponenten unterstützt wird. Um eine externe Komponente hinzuzufügen, tragen Sie einfach den Rechnernamen ins hostname-Feld ein. Siehe https://prosody.im/doc/components. Die Vorgabe ist ‘()’.

Verfügbare ext-component-configuration-Felder sind:

Alle folgenden Felder, wie sie auch die prosody-configuration hat: 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, und außerdem:

ext-component-configuration-Parameter: Zeichenkette component-secret

Das Passwort, das die Komponente für die Anmeldung benutzt.

ext-component-configuration-Parameter: Zeichenkette hostname

Der Rechnername für diese Komponente.

prosody-configuration-Parameter: Nichtnegative-ganze-Zahl-Liste component-ports

Der/Die Port(s), wo Prosody auf Verbindungen zu Komponenten lauscht. Die Vorgabe ist ‘(5347)’.

prosody-configuration-Parameter: Zeichenkette component-interface

Die Schnittstelle, auf der Prosody auf Verbindungen zu Komponenten lauscht. Die Vorgabe ist ‘"127.0.0.1"’.

prosody-configuration-Parameter: Vielleicht-Roher-Inhalt raw-content

„Roher Inhalt“, der so, wie er ist, an die Konfigurationsdatei angefügt wird.

Möglicherweise möchten Sie einfach nur eine bestehende prosody.cfg.lua zum Laufen bringen. In diesem Fall können Sie ein opaque-prosody-configuration-Verbundsobjekt als der Wert des prosody-service-type übergeben. Wie der Name schon sagt, bietet eine opake Konfiguration keinerlei Unterstützung für Reflexion. Verfügbare opaque-prosody-configuration-Felder sind:

opaque-prosody-configuration-Parameter: „package“ prosody

Das Prosody-Paket.

opaque-prosody-configuration-Parameter: Zeichenkette prosody.cfg.lua

Der Inhalt, der als prosody.cfg.lua benutzt werden soll.

Wenn Ihre prosody.cfg.lua zum Beispiel nur aus der leeren Zeichenkette bestünde, könnten Sie einen Prosody-Dienst wie folgt instanziieren:

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

BitlBee-Dienst

BitlBee ist ein Zugang („Gateway“), der eine IRC-Schnittstelle für verschiedene Kurznachrichtenprotokolle wie XMPP verfügbar macht.

Scheme-Variable: bitlbee-service-type

Dies ist der Diensttyp für den BitlBee-IRC-Zugangsdaemon (englisch „IRC Gateway Daemon“). Sein Wert ist eine bitlbee-configuration (siehe unten).

Damit BitlBee auf Port 6667 vom lokalen Rechner („localhost“) lauscht, fügen Sie diese Zeile zu Ihrem „services“-Feld hinzu:

Datentyp: bitlbee-configuration

Dies ist die Konfiguration für BitlBee. Sie hat folgende Felder:

interface (Vorgabe: "127.0.0.1")
port (Vorgabe: 6667)

Lauscht auf der Netzwerkschnittstelle, die der als interface angegebenen IP-Adresse entspricht, auf dem angegebenen port.

Wenn als interface 127.0.0.1 angegeben wurde, können sich nur lokale Clients verbinden; bei 0.0.0.0 können die Verbindungen von jeder Netzwerkschnittstelle aus hergestellt werden.

bitlbee (Vorgabe: bitlbee)

Das zu benutzende BitlBee-Paket.

plugins (Vorgabe: '())

Die Liste zu verwendender Plugin-Pakete — z.B. bitlbee-discord.

extra-settings (Vorgabe: "")

Ein Konfigurationsschnipsel, das wortwörtlich in die BitlBee-Konfigurationsdatei eingefügt wird.

Quassel-Dienst

Quassel ist ein verteilter IRC-Client, was bedeutet, dass sich ein oder mehr Clients mit dem zentralen Kern verbinden und die Verbindung wieder trennen können.

Scheme-Variable: quassel-service-type

Dies ist der Diensttyp für den Daemon zum IRC-Hintergrundsystem („Backend“) Quassel. Sein Wert ist eine quassel-configuration (siehe unten).

Datentyp: quassel-configuration

Die Konfiguration für Quassel mit den folgenden Feldern:

quassel (Vorgabe: quassel)

Das zu verwendende Quassel-Paket.

interface (Vorgabe: "::,0.0.0.0")
port (Vorgabe: 4242)

Lauscht auf der/den Netzwerkschnittstelle(n), die den in der kommagetrennten interface-Liste festgelegten IPv4- oder IPv6-Schnittstellen entsprechen, auf dem angegebenen port.

loglevel (Vorgabe: "Info")

Die gewünschte Detailstufe der Protokollierung. Akzeptiert werden die Werte Debug (ausführlich zur Fehlersuche), Info, Warning (nur Warnungen und Fehler) und Error (nur Fehler).


Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]