Prosody - Lightweight Jabber/XMPP server
Status: Entwurf
Contents
In diesem Wiki Artikel wird die Installation und Konfiguration des XMPP Server Prosody beschrieben. Beschrieben wird die Installation und Konfiguration auf Basis von stretch-backports.
Weitere Informationen zum Paket:
Installation
stretch-backports
aptitude -t stretch-backports install prosody prosody-modules
Konfiguration
Die Konfigurationsdateien sind in /etc/prosody/
Subdomains
Für die verschiedenen Dienste von XMPP werden in der Regel die folgenden Subdomains verwendet. Es folgt eine Übersicht von Subdomain, welche jedoch nicht zwinkend so benannte werden müssen.
- jabber.domain.tld
- conference.domain.tld
- pubsub.domain.tld
- proxy.domain.tld
- uploads.domain.tld
domain.tld ist durch die eigene Domain zu ersetzen.
Konfiguration
Die Konfiguration aus dem Paket ist mit ein paar wenigen Anpassungen direkt nutzbar. Im folgendem Beispiel werden sehr viele Module und Optionen aufgelistet. Welche Module benötigt werden ist abhängig vom Einsatzgebiet. Es soll nur als Referenzbeispiel dienen.
-- Eine Liste der Accounts für die Server Administratoren admins = { "admin@jabber.domain.tld" } -- Liste der aktiven Module modules_enabled = { "roster"; "saslauth"; "tls"; "dialback"; "disco"; "private"; "vcard"; "version"; "uptime"; "time"; "ping"; "pep"; "register"; "mam"; "carbons"; "csi"; "admin_adhoc"; "posix"; "watchregistrations"; "vcard4"; "smacks"; "cloud_notify"; "register_web"; "http"; "pep_vcard_avatar"; "proxy65"; "vcard_legacy"; "blocklist"; "server_contact_info"; }; contact_info = { abuse = { "mailto:webmaster@domain.tld" }; admin = { "mailto:webmaster@domain.tld" }; }; -- Informationen wenn sich ein User auf dem Server registriert registration_watchers = { "admin@jabber.domain.tld" } registration_notification = "User $username just registered on $host from $ip" modules_disabled = { }; allow_registration = true; daemonize = false; pidfile = "/var/run/prosody/prosody.pid"; ssl = { key = "/etc/prosody/certs/localhost.key"; certificate = "/etc/prosody/certs/localhost.crt"; } c2s_require_encryption = true s2s_secure_auth = true authentication = "internal_hashed" -- Logging log = { info = "/var/log/prosody/prosody.log"; error = "/var/log/prosody/prosody.err"; { levels = { "error" }; to = "syslog"; }; } legacy_ssl_ports = { 5223 } http_paths = { register_web = "/register"; } VirtualHost "jabber.domain.tld" enabled = true ssl = { key = "/etc/prosody/certs/localhost.key"; certificate = "/etc/prosody/certs/localhost.crt"; } Component "conference.domain.tld" "muc" modules_enabled = { "muc_mam", "vcard_muc" } Component "uploads.domain.tld" "http_upload" Component "pubsub.domain.tld" "pubsub" Component "proxy.domain.tld" "proxy65" Include "conf.d/*.cfg.lua"
SRV-Record
_xmpp-server._tcp.domain.tld. 150 IN SRV 5 0 5269 jabber.domain.tld. _xmpp-client._tcp.domain.tld. 150 IN SRV 5 0 5222 jabber.domain.tld. _xmpps-client._tcp.domain.tld. 113 IN SRV 0 5 5223 jabber.domain.tld.
Der SRV-Record lässt sich mit folgenden Befehlen prüfen.
dig SRV _xmpp-server._tcp.domain.tld dig SRV _xmpp-client._tcp.domain.tld dig SRV _xmpps-client._tcp.domain.tld
FAQs
Muss XMPP auf jabber.domain.tld laufen?
Nein, man auch domain.tld oder xmpp.domain.tld nehmen. Die Konfigurationsdatei und die SRV-Records müssen angepasst werden.
Sonstiges
de/Biboumi - ein XMPP IRC Gateway
Literatur
https://prosody.im/doc - Dokumentation auf prosody.im