WIP: XMPP Prosody Server einrichten #157

Open
DebXWoody wants to merge 5 commits from DebXWoody/anoxinon-web-media:xmpp_prosody into master

Ein Wiki Artikel wie man einen XMPP Prosody Server für die Familie und Freunde einrichten kann. Beispiel basiert auf Debian.

Ein Wiki Artikel wie man einen XMPP Prosody Server für die Familie und Freunde einrichten kann. Beispiel basiert auf Debian.
DebXWoody added 1 commit 5 months ago
Collaborator

Die "Prosody konfigurieren" Überschrift gibt es zweimal. Bei der zweiten Überschrift passt vermutlich "User anlegen" / "Prosody User anlegen" / "Konto anlegen" / "Prosody Konto anlegen" besser.

Die "Prosody konfigurieren" Überschrift gibt es zweimal. Bei der zweiten Überschrift passt vermutlich "User anlegen" / "Prosody User anlegen" / "Konto anlegen" / "Prosody Konto anlegen" besser.
DebXWoody added 1 commit 5 months ago
Poster

Die "Prosody konfigurieren" Überschrift gibt es zweimal. Bei der zweiten Überschrift passt vermutlich "User anlegen" / "Prosody User anlegen" / "Konto anlegen" / "Prosody Konto anlegen" besser.

Danke, erledigt!

> Die "Prosody konfigurieren" Überschrift gibt es zweimal. Bei der zweiten Überschrift passt vermutlich "User anlegen" / "Prosody User anlegen" / "Konto anlegen" / "Prosody Konto anlegen" besser. Danke, erledigt!
jonas-l reviewed 5 months ago
_stun._udp.domain.tld. 86400 IN SRV 5 0 3478 domain.tld.
```
Die Einträge lassen sich mit folgendem Befehlt prüfen:
Collaborator

Befehlt

Befehl**t**
DebXWoody marked this conversation as resolved
dig +nocomments SRV _xmpp-server._tcp.domain.tld
```
Außerdem erstellen wir gleich ein paar Subdomains, die wir für den XMPP-Dienst brauchen.
Collaborator

würde hier einen Doppelpunkt ans Satzende packen

würde hier einen Doppelpunkt ans Satzende packen
DebXWoody marked this conversation as resolved
* `chat.domain.tld` - für die Gruppenchats
* `files.domain.tld` - für Dateien
## TLS Zertifikat erstellen
Collaborator

TLS-Zertifikat würde ich mit Bindestrich schreiben

TLS-Zertifikat würde ich mit Bindestrich schreiben
DebXWoody marked this conversation as resolved
Man kann auch ein eigenes selbst-signiertes Zertifikat verwenden, wenn man nur mit Kontakten innerhalb des eigenen
Servers chatten möchte. Sobald man jedoch auch gerne mit anderen XMPP Server kommunizieren möchte, ist ein Zertifikat
von einem CA nötigt (z.b. Let's Encrypt). Viele Server lassen die Kommunikation von Server-zu-Server nur mit einem
Collaborator

nötigt

z.B.

die Kommunikation von Server-zu-Server => die Server-zu-Server-Kommunikation

nötig**t** z.**B**. die Kommunikation von Server-zu-Server => die Server-zu-Server-Kommunikation
DebXWoody marked this conversation as resolved
## Prosody installieren
Wir werden in unserem Beispiel die aktuell Version aus [bullseye-backports](https://backports.debian.org/) installieren.
Wer Debian Backports noch nicht eingerichtet hat, kann folgenden Eintrag der `/etc/apt/sources.list` hinzufügen.
Collaborator

der -> zur

Doppelpunkt am Ende

der -> zur Doppelpunkt am Ende
DebXWoody marked this conversation as resolved
deb http://deb.debian.org/debian bullseye-backports main
Danach ein `apt update` ausführen. Jetzt werden wir das Paket [Prosody](https://tracker.debian.org/pkg/prosody)
installieren, sowie die benötigten [Module](https://tracker.debian.org/pkg/prosody-modules).
Collaborator

Doppelpunkt (gilt auch für weitere Stellen)

Doppelpunkt (gilt auch für weitere Stellen)
DebXWoody marked this conversation as resolved
## Prosody konfigurieren
Auf einem Debian System ist die Konfiguration in zwei Dateien aufgeteilt. Die Grundkonfiguration ist in
Collaborator

Debian**-**System

Debian**-**System
DebXWoody marked this conversation as resolved
http_upload_file_size_limit = 1024*1024*50
## Prosody Konten anlegen
Collaborator

Bindestrich

Bindestrich
DebXWoody marked this conversation as resolved
## Shared Group
Die `groups_file` Datei - in unserem Beispiel `/etc/prosody/sharedgroups.txt` ist hilfreich um Gruppen zu bilden und die
Collaborator

Gedankenstrich nach Pfad fehlt

Gedankenstrich nach Pfad fehlt
DebXWoody marked this conversation as resolved
syslog
## Status der Benutzer per Web
Der Status kann jetzt pro User via `https://domain.tld/xmpp-status/` angezeigt werden. Beispiel für ich@domain.tld.
Collaborator

via => unter?

via => unter?
DebXWoody marked this conversation as resolved
DebXWoody added 1 commit 5 months ago
Poster

Danke @jonas-l. Review in 6adc3c06c0 umgesetzt.

Danke @jonas-l. Review in https://codeberg.org/Anoxinon_e.V./anoxinon-web-media/commit/6adc3c06c0510aca5c577fad2222c1c11f07e655 umgesetzt.
jonas-l reviewed 5 months ago
Man kann auch ein eigenes selbst-signiertes Zertifikat verwenden, wenn man nur mit Kontakten innerhalb des eigenen
Servers chatten möchte. Sobald man jedoch auch gerne mit anderen XMPP Server kommunizieren möchte, ist ein Zertifikat
von einem CA nötig (z.b. Let's Encrypt). Viele Server lassen die Server-zu-Server-Kommunikation nur mit einem
Collaborator

einer CA?

einer CA?
DebXWoody marked this conversation as resolved
## Prosody installieren
Wir werden in unserem Beispiel die aktuell Version aus [bullseye-backports](https://backports.debian.org/) installieren.
Wer Debian Backports noch nicht eingerichtet hat, kann folgenden Eintrag zur `/etc/apt/sources.list` hinzufügen:
Collaborator

Wer die Debian-Backports...?

Wer **die** Debian-Backports...?
Poster

Wer das Debian-Backports Repsotiory?
Ich würde es einfach als eigenständigen Namen so lassen?

Wer das Debian-Backports Repsotiory? Ich würde es einfach als eigenständigen Namen so lassen?
DebXWoody marked this conversation as resolved
In-Band Registrierung am besten wegen Spam deaktivieren.
allow_registration = false
daemonize = false;
Collaborator

die beiden Zeilen haben aber nichts mehr mit der Registrierung zu tun

die beiden Zeilen haben aber nichts mehr mit der Registrierung zu tun
Jeybe commented 4 months ago
Collaborator

Stimmt, @DebXWoody das sollte man an der Stelle rausnehmen, denke ich:

daemonize = false;
pidfile = "/run/prosody/prosody.pid";
Stimmt, @DebXWoody das sollte man an der Stelle rausnehmen, denke ich: ``` daemonize = false; pidfile = "/run/prosody/prosody.pid"; ```
legacy_ssl_ports = { 5223 }
min_seconds_between_registrations = 1200;
Benachrichtigung, wenn sich jemand auf dem Server registriert.
Collaborator

Warum ist hier ein Punkt am Zeilenende?

Warum ist hier ein Punkt am Zeilenende?
Jeybe commented 4 months ago
Collaborator

Sehe ich nicht als Problem, ist vermutlich geschmackssache. Sollte nur einheitlich sein, über den ganzen Text hinweg

Sehe ich nicht als Problem, ist vermutlich geschmackssache. Sollte nur einheitlich sein, über den ganzen Text hinweg
pastebin_line_threshold = 60
pastebin_threshold = 3000
-- -----------------------------------------------------------------
Collaborator

ab hier sind die Einstellungen nicht mehr erläutert

ab hier sind die Einstellungen nicht mehr erläutert
Poster

Das mach ich irgendwann mal. Ist ja ein Wiki ;-)

Das mach ich irgendwann mal. Ist ja ein Wiki ;-)
Jeybe commented 4 months ago
Collaborator

Dann würde ich es vom pastebin abgrenzen und ein extra Wort dazu schreiben.
Beispielsweise:

Einige weitere sinnvolle Einstellungen. Nähere Informationen finden sich in der offiziellen Prosody Dokumentation.

Dann würde ich es vom pastebin abgrenzen und ein extra Wort dazu schreiben. Beispielsweise: > Einige weitere sinnvolle Einstellungen. Nähere Informationen finden sich in der [offiziellen Prosody Dokumentation](https://prosody.im/doc).
## Status der Benutzer per Web
Der Status kann jetzt pro User unter `https://domain.tld/xmpp-status/` angezeigt werden. Beispiel für ich@domain.tld.
https://domain.tld/xmpp-status/ich
Collaborator

Was meint hier Status? Benötigt das eine Authentifizierung?

Was meint hier Status? Benötigt das eine Authentifizierung?
Jeybe commented 4 months ago
Collaborator

Das finde ich einen wichtigen Punkt, kann das öffentlich eingesehen werden, ohne Anmeldung? Was es ist, ist ja mittlerweile im Absatz darunter angegeben

Das finde ich einen wichtigen Punkt, kann das öffentlich eingesehen werden, ohne Anmeldung? Was es ist, ist ja mittlerweile im Absatz darunter angegeben
nuron commented 4 months ago

Jo, wenn man die URL kennt kann man das einfach so einsehen.

Jo, wenn man die URL kennt kann man das einfach so einsehen.
DebXWoody added 1 commit 5 months ago
nuron reviewed 4 months ago
dig +nocomments SRV _xmpp-client._tcp.domain.tld
dig +nocomments SRV _xmpps-client._tcp.domain.tld
dig +nocomments SRV _xmpp-server._tcp.domain.tld
```
nuron commented 4 months ago

ggf wäre es sinnvoll, hier eine Abfrage rein zu schreiben, wie es sein sollte?

bspw:

$ dig +nocomments SRV _xmpp-server._tcp.anoxinon.me

; <<>> DiG 9.16.22-Debian <<>> +nocomments SRV _xmpp-server._tcp.anoxinon.me
;; global options: +cmd
;_xmpp-server._tcp.anoxinon.me. IN      SRV
_xmpp-server._tcp.anoxinon.me. 3600 IN  SRV     1 0 5269 heliopolis.anoxinon.de.
;; Query time: 51 msec
;; SERVER: DNS Server
;; WHEN: Zeitpunkt der Abfrage
;; MSG SIZE  rcvd: 100
ggf wäre es sinnvoll, hier eine Abfrage rein zu schreiben, wie es sein sollte? bspw: ``` $ dig +nocomments SRV _xmpp-server._tcp.anoxinon.me ; <<>> DiG 9.16.22-Debian <<>> +nocomments SRV _xmpp-server._tcp.anoxinon.me ;; global options: +cmd ;_xmpp-server._tcp.anoxinon.me. IN SRV _xmpp-server._tcp.anoxinon.me. 3600 IN SRV 1 0 5269 heliopolis.anoxinon.de. ;; Query time: 51 msec ;; SERVER: DNS Server ;; WHEN: Zeitpunkt der Abfrage ;; MSG SIZE rcvd: 100 ```
DebXWoody marked this conversation as resolved
nuron reviewed 4 months ago
* `chat.domain.tld` - für die Gruppenchats
* `files.domain.tld` - für Dateien
nuron commented 4 months ago

Hinweis, dass diese subdomains beliebig verändert werden können, solange es konsequent durchgezogen wird?

Hinweis, dass diese subdomains beliebig verändert werden können, solange es konsequent durchgezogen wird?
Poster
+Die Namen der Subdomains ist frei wählbar und müssen dann in der
+Konfiguration konsequent verwendet werden. So wird bzw. für
+`chat` oft `conference` verwendet.
``` +Die Namen der Subdomains ist frei wählbar und müssen dann in der +Konfiguration konsequent verwendet werden. So wird bzw. für +`chat` oft `conference` verwendet. ```
DebXWoody marked this conversation as resolved
nuron reviewed 4 months ago
Man kann auch ein eigenes selbst-signiertes Zertifikat verwenden, wenn man nur mit Kontakten innerhalb des eigenen
Servers chatten möchte. Sobald man jedoch auch gerne mit anderen XMPP Server kommunizieren möchte, ist ein Zertifikat
von einer CA nötig (z.b. Let's Encrypt). Viele Server lassen die Server-zu-Server-Kommunikation nur mit einem
gültigen Zertifikat zu.
nuron commented 4 months ago

ggf. Link zu einer Anleitung wie man sich ein Lets Encrypt Zertifikat beschafft?

ggf. Link zu einer Anleitung wie man sich ein Lets Encrypt Zertifikat beschafft?
Poster

Ich habe keinen Link zur Hand, aber ich denke der Fokus sollte auch kein "Copy+Paste"-Artikel sein. Was ist, wenn man kein LE Zertifikat verwendet.

Ich habe keinen Link zur Hand, aber ich denke der Fokus sollte auch kein "Copy+Paste"-Artikel sein. Was ist, wenn man kein LE Zertifikat verwendet.
Jeybe commented 4 months ago
Collaborator

Das sehe ich hier auch als nicht unedingt notwendig. Es ist ja ein spezifischer HowTo-Artikel und keine allgemeingültige Anleitung.

Das sehe ich hier auch als nicht unedingt notwendig. Es ist ja ein spezifischer HowTo-Artikel und keine allgemeingültige Anleitung.
Jeybe marked this conversation as resolved
nuron reviewed 4 months ago
firewall_scripts = { "/etc/prosody/blacklist.pfw" }
VirtualHost "localhost"
Include "conf.d/*.cfg.lua"
nuron commented 4 months ago

Es wäre sinnvoll, wenn man

  • einen Hinweis gibt, die vorhandene Config komplett zu entfernen und diese hier hinzu zu fügen, oder
  • die hier gezeigten Config Schnippsel so zu sortieren, dass sie in der selben Reihnfolge vorliegen wie in der ursprünglichen Config. ODER: Hinweis, wo die einzelnen Schnippsel hin sollen. Ganz ans Ende? War da nicht was mit dem VirtualHost, dass da was kaputt gehen kann? Oder werfe ich das durcheinander.

Was passiert, wenn zwei mal der selbe Parameter in der Config auftaucht?

Es wäre sinnvoll, wenn man - einen Hinweis gibt, die vorhandene Config komplett zu entfernen und diese hier hinzu zu fügen, oder - die hier gezeigten Config Schnippsel so zu sortieren, dass sie in der selben Reihnfolge vorliegen wie in der ursprünglichen Config. ODER: Hinweis, wo die einzelnen Schnippsel hin sollen. Ganz ans Ende? War da nicht was mit dem VirtualHost, dass da was kaputt gehen kann? Oder werfe ich das durcheinander. Was passiert, wenn zwei mal der selbe Parameter in der Config auftaucht?
Poster

Ich halte dies für nicht hilfreich. Es gibt einfach viel zu unterschiedliche Anforderungen / Distributionen etc. Für diesen Anwendungsfall halte ich es für sinnvoller Snikket zu verwenden.

Ich bin mir nicht sicher, aber ich meine "conf.d/*.cfg.lua" sei debian-spezifisch.

Ich halte dies für nicht hilfreich. Es gibt einfach viel zu unterschiedliche Anforderungen / Distributionen etc. Für diesen Anwendungsfall halte ich es für sinnvoller Snikket zu verwenden. Ich bin mir nicht sicher, aber ich meine "conf.d/*.cfg.lua" sei debian-spezifisch.
nuron commented 4 months ago

Wenn das Debian-spezifisch ist, dann kann man doch auch den Rest darauf auslegen?

Ich hätte es glaube ich sehr verwirrend gefunden bei meinen ersten Versuchen mit sowas, wenn das alles "durcheinander" wäre im Vergleich zur example config.

Wenigstens etwas wie "Es genügt, wenn folgendes in der Config steht" oder so?

Wenn das Debian-spezifisch ist, dann kann man doch auch den Rest darauf auslegen? Ich hätte es glaube ich sehr verwirrend gefunden bei meinen ersten Versuchen mit sowas, wenn das alles "durcheinander" wäre im Vergleich zur example config. Wenigstens etwas wie "Es genügt, wenn folgendes in der Config steht" oder so?
nuron commented 4 months ago

https://prosody.im/doc/configure#overview

Das meinte ich mit dem, dass was kaputt gehen kann, wenn man alles ans Ende von dem cfg file schreibt.

https://prosody.im/doc/configure#overview Das meinte ich mit dem, dass was kaputt gehen kann, wenn man alles ans Ende von dem cfg file schreibt.
Jeybe commented 4 months ago
Collaborator

Ich denke, hier wäre eine Information, wie man die Konfig einzufügen hat, durchaus sinnvoll.

Sollte man für jede Einstellung das Konfigfile durchsuchen, da sie unter Umständen schon vorhanden ist? Kann man davon ausgehen, dass die hier gezeigten Konfigblöcke in der Debian Standardkonfig auch so als Blöcke auftreten? Wenn in den Konfigblöcken im HowTo zusätzliche Einstellungen sind, die in der Standard Debian Prsosody-Konfig im entsprechenden Konfigblick nicht vorhanden sind, kann man davon ausgehen, dass sie in der Konfigdatei noch nicht spezifiziert sind und sie einfach an den Block anhänhen?

Sowas könnte man in einem kurzen Satz klarstellen, je nachdem wie du da selbst vorgegangen bist @DebXWoody

Ich denke, hier wäre eine Information, wie man die Konfig einzufügen hat, durchaus sinnvoll. Sollte man für jede Einstellung das Konfigfile durchsuchen, da sie unter Umständen schon vorhanden ist? Kann man davon ausgehen, dass die hier gezeigten Konfigblöcke in der **Debian** Standardkonfig auch so als Blöcke auftreten? Wenn in den Konfigblöcken im HowTo zusätzliche Einstellungen sind, die in der Standard Debian Prsosody-Konfig im entsprechenden Konfigblick nicht vorhanden sind, kann man davon ausgehen, dass sie in der Konfigdatei noch nicht spezifiziert sind und sie einfach an den Block anhänhen? Sowas könnte man in einem kurzen Satz klarstellen, je nachdem wie du da selbst vorgegangen bist @DebXWoody
nuron reviewed 4 months ago
contact_info = {
abuse = { "xmpp:support@domain.tld", "mailto:support@domain.tld" };
admin = { "xmpp:support@domain.tld", "mailto:support@domain.tld };
nuron commented 4 months ago

fehlende schließende Anführungszeichen für den mailto: Part

fehlende schließende Anführungszeichen für den mailto: Part
DebXWoody marked this conversation as resolved
nuron reviewed 4 months ago
https_certificate = "/etc/prosody/certs/domain.tld.crt"
ssl = {
key = "/etc/prosody/certs/domain.tld.key";
certificate = "/etc/prosody/certs/domain.tld.pem";
nuron commented 4 months ago

handelt es sich bei dem file für https_certificate und dem "ssl" certificate um die selbe Datei? Oder ist das eine das fullchain und das andere das "normale"?

handelt es sich bei dem file für https_certificate und dem "ssl" certificate um die selbe Datei? Oder ist das eine das fullchain und das andere das "normale"?
Poster

https_certificate wird für den eingebauten HTTP Server verwendet. Unter anderem für bosh, websocket, file-upload.
https://prosody.im/doc/http

Während dann ssl für den XMPP-Server selber sein müsste.

`https_certificate` wird für den eingebauten HTTP Server verwendet. Unter anderem für bosh, websocket, file-upload. https://prosody.im/doc/http Während dann `ssl` für den XMPP-Server selber sein müsste.
nuron commented 4 months ago

Dann wäre es doch sinnvoll, die Dateien auch identisch zu benennen, wenn es letztendlich das selbe Zertifikat ist?
Also entweder bei beiden .crt oder .pem

Dann wäre es doch sinnvoll, die Dateien auch identisch zu benennen, wenn es letztendlich das selbe Zertifikat ist? Also entweder bei beiden .crt oder .pem
Jeybe commented 4 months ago
Collaborator

Dem schließe ich mich an. Wenn es dasselbe Zertifikat ist, verwirrt das sonst etwas.

Dem schließe ich mich an. Wenn es dasselbe Zertifikat ist, verwirrt das sonst etwas.
nuron reviewed 4 months ago
aus.
admins = { "ich@domain.tld" }
use_libevent = true
nuron commented 4 months ago

Führt auf einem taufrischen Debian zu folgendem Fehler:

net.server          error       libevent not found, falling back to select()

Abhilfe gibt es hier bzw hier

Führt auf einem taufrischen Debian zu folgendem Fehler: ``` net.server error libevent not found, falling back to select() ``` Abhilfe gibt es [hier](https://prosody.im/doc/libevent) bzw [hier](https://prosody.im/doc/depends#luaevent)
Poster

Mit welchem Befehl hast du prosody installiert?

Mit welchem Befehl hast du prosody installiert?
nuron commented 4 months ago

Na mit

apt install -t bullseye-backports prosody prosody-modules

natürlich ;)
Alles copy paste

Na mit ``` apt install -t bullseye-backports prosody prosody-modules ``` natürlich ;) Alles copy paste
Jeybe commented 4 months ago
Collaborator

Das ist dann falsch, Konfiguration und Installation passen an der Stelle nicht zueinander.

Das Paket prosody aus Bullseye Backports hat lua5.2-events als empfohlene Abhängikeit, diese ist aber nicht in Backports und nicht in Stable verfügbar.

rec: lua5.2-event
    Package not available

Wie von nuron beschrieben, wird lua-events aber für use_libevent = true benötigt.

An der Stelle kann man sich in der Theorie entweder über die Prosody Repositories behelfen oder abklären ob lua-event Version 4.6, welches in Stable enthalten ist, ausreicht. Wobei letzteres gefährlich ist, denke ich, wenn man eine Dependency eines Backport Pakets mit einem Stable Paket auflöst.

Nach etwas genauer hinsehen, denk ich, man sollte auf jeden Fall nicht die Backports sondern die offiziellen Prosody Repositories verwenden. Die Backports Pakete scheinen schlecht gefplegt, wenn weder manche empfohlenen Abhängikeiten nicht verfügbar sind und - schlimmer noch - offensichtlich aktuelle Sicherheitsaktualisierungen nicht zeitnah eingespielt werden.

Die aktuelle Version in Backports is 0.11.9 bzw. Debian-Spezifisch 0.11.9-1~bpo10+1, mit dem letzten Update am 14. Mai 2021. Schauen wir uns an, was seitdem passiert ist, wirft das einen traurigen Blick auf die Qualität des Pakets:

  • 2021-08-03: Prosody 0.11.10 mit einem Security Fix für CVE-2021-37601 zwecks MUCs
  • 2022-01-13: Prosody 0.11.12 mit einem Security Fix für mod_websocket
  • Diverse Bugfixes, in den Versionen 0.11.11 und 0.11.13, auch dies wurde nicht im Backports Paket durchgereicht, was ja der eigentliche Sinn eines Backports ist.

Ich hoffe sehr, dass ich hier etwas misinterpretiere, denn das ist sonst meiner Meinung nach ein Dealbreaker für das Backports Paket.

Auch wenn ich nichts misinterpretiere, halte ich das Backports Package für nicht empfehlenswert:

Aus den FAQ sieht man auch, dass Debian schwarz auf weiß bennennt, dass es kein Security-Support für Backports gibt:

Q: Is there security support for packages from backports.debian.org?
A: Unfortunately not.

Für eine Server Software, die im Zweifel im Internet hängt, ist es meiner Meinung nach ein no-go, das so ohne weiteres zu empfehlen.

Ich würde hier einen Switch auf die Prosody Repositories vorschlagen. In Bezug auf diese Anleitung sollte das kein Problem machen, aktuell ist Version 0.11.13, seit der Version 0.11.9 aus den Backports gab es keine Breaking Changes, es müsste dementsprechend nichts weiter als die Repository Konfiguration und der Installationsbefehl angepasst werden.

(Alternativ könnte man auch beleuchten, ob das Paket aus Stable ausreicht, das sollte man aber wirklich beleuchten, denn auf einen ersten Blick hat auch dies eine nicht behobene Sicherheitslücke.)

Das ist dann falsch, Konfiguration und Installation passen an der Stelle nicht zueinander. Das Paket `prosody` aus Bullseye Backports hat `lua5.2-events` als empfohlene Abhängikeit, diese ist aber nicht in Backports und nicht in Stable verfügbar. ``` rec: lua5.2-event Package not available ``` Wie von nuron beschrieben, wird `lua-events` aber für `use_libevent = true` benötigt. An der Stelle kann man sich in der Theorie entweder über die Prosody Repositories behelfen oder abklären ob `lua-event` Version 4.6, welches in Stable enthalten ist, ausreicht. Wobei letzteres gefährlich ist, denke ich, wenn man eine Dependency eines Backport Pakets mit einem Stable Paket auflöst. Nach etwas genauer hinsehen, denk ich, man sollte auf jeden Fall nicht die Backports sondern die offiziellen Prosody Repositories verwenden. Die Backports Pakete scheinen schlecht gefplegt, wenn weder manche empfohlenen Abhängikeiten nicht verfügbar sind und - schlimmer noch - offensichtlich aktuelle Sicherheitsaktualisierungen nicht zeitnah eingespielt werden. Die aktuelle Version in Backports is 0.11.9 bzw. Debian-Spezifisch 0.11.9-1~bpo10+1, [mit dem letzten Update am 14. Mai 2021](https://metadata.ftp-master.debian.org/changelogs//main/p/prosody/prosody_0.11.9-1~bpo10+1_changelog). Schauen wir uns an, was seitdem passiert ist, wirft das einen traurigen Blick auf die Qualität des Pakets: - 2021-08-03: Prosody 0.11.10 mit einem Security Fix für CVE-2021-37601 zwecks MUCs - 2022-01-13: Prosody 0.11.12 mit einem Security Fix für mod_websocket - Diverse Bugfixes, in den Versionen 0.11.11 und 0.11.13, auch dies wurde nicht im Backports Paket durchgereicht, was ja der eigentliche Sinn eines Backports ist. Ich hoffe sehr, dass ich hier etwas misinterpretiere, denn das ist sonst meiner Meinung nach ein Dealbreaker für das Backports Paket. Auch wenn ich nichts misinterpretiere, halte ich das Backports Package für nicht empfehlenswert: Aus den [FAQ](https://backports.debian.org/FAQ/) sieht man auch, dass Debian schwarz auf weiß bennennt, dass es kein Security-Support für Backports gibt: > Q: Is there security support for packages from backports.debian.org? > A: Unfortunately not. Für eine Server Software, die im Zweifel im Internet hängt, ist es meiner Meinung nach ein no-go, das so ohne weiteres zu empfehlen. Ich würde hier einen Switch auf die Prosody Repositories vorschlagen. In Bezug auf diese Anleitung sollte das kein Problem machen, aktuell ist Version 0.11.13, seit der Version 0.11.9 aus den Backports gab es keine Breaking Changes, es müsste dementsprechend nichts weiter als die Repository Konfiguration und der Installationsbefehl angepasst werden. (Alternativ könnte man auch beleuchten, ob das Paket aus Stable ausreicht, das sollte man aber wirklich beleuchten, denn auf einen ersten Blick hat auch dies eine nicht behobene Sicherheitslücke.)
nuron reviewed 4 months ago
Für diese Benutzer müssen wir jetzt die JIDs anlegen:
prosodyctl adduser jid ich@domain.tld
prosodyctl adduser jid support@domain.tld
nuron commented 4 months ago

Die korrekte Syntax wäre

prosodyctl adduser ich@domain.tld
prosodyctl adduser support@domain.tld
Die korrekte Syntax wäre ``` prosodyctl adduser ich@domain.tld prosodyctl adduser support@domain.tld ```
DebXWoody marked this conversation as resolved
nuron reviewed 4 months ago
user4@domain.tld
## Web-Server konfigurieren
nuron commented 4 months ago

In welcher Datei?
Eine neue anlegen - aber wo?

In welcher Datei? Eine neue anlegen - aber wo?
Poster

Kann ich nicht sagen ;-) Abhängig wie der Nutzer seinen Apache installiert bzw. konfiguriert hat.

Kann ich nicht sagen ;-) Abhängig wie der Nutzer seinen Apache installiert bzw. konfiguriert hat.
nuron commented 4 months ago

Dann das so vielleicht dazu schreiben?

Und ggf was wie

"Wenn noch kein Setup vorhanden ist, kann einfach eine neue Datei in /etc/apache2/conf-available angelegt und nach /etc/apache2/conf-enabled verlinkt werden"?

Ich als Neuling stelle mir das verwirrend vor, wenn nicht dabei steht wo was hin soll.

Dann das so vielleicht dazu schreiben? Und ggf was wie "Wenn noch kein Setup vorhanden ist, kann einfach eine neue Datei in /etc/apache2/conf-available angelegt und nach /etc/apache2/conf-enabled verlinkt werden"? Ich als Neuling stelle mir das verwirrend vor, wenn nicht dabei steht wo was hin soll.
Jeybe commented 4 months ago
Collaborator

Da wir von Debian ausgehen, kann man ja gegenebenfalls angeben, wo dort die vHost Konfig hinkann. Wie von nuron vorgeschlagen beispielsweise, wenn das für Debian zutrifft.

Da wir von Debian ausgehen, kann man ja gegenebenfalls angeben, wo dort die vHost Konfig hinkann. Wie von nuron vorgeschlagen beispielsweise, wenn das für Debian zutrifft.
nuron reviewed 4 months ago
</IfModule>
</IfModule>
</VirtualHost>
nuron commented 4 months ago

Wirft so haufenweise Fehler.

Es muss vorher mindestens

sudo a2enmod headers ssl proxy rewrite

ausgeführt werden.

Und auch dann gibt es noch einen 500er Fehler:

AH01144: No protocol handler was valid for the URL /xmpp-status/ich (scheme 'https'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

Mangels Apache2 Kentnissen habe ich keinen Lösungsvorschlag.

Wirft so haufenweise Fehler. Es muss vorher mindestens ``` sudo a2enmod headers ssl proxy rewrite ``` ausgeführt werden. Und auch dann gibt es noch einen 500er Fehler: ``` AH01144: No protocol handler was valid for the URL /xmpp-status/ich (scheme 'https'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule. ``` Mangels Apache2 Kentnissen habe ich keinen Lösungsvorschlag.
nuron commented 4 months ago

Ach, und ein Hinweis, dass man apache neu starten muss nachdem man die Config angepasst hat, wäre sicher auch nicht verkehrt :)

Ach, und ein Hinweis, dass man apache neu starten muss nachdem man die Config angepasst hat, wäre sicher auch nicht verkehrt :)
Poster

Kannst du mal versuchen die zwei Module proxy_http und proxy_wstunnel nachzuladen?

Kannst du mal versuchen die zwei Module `proxy_http` und `proxy_wstunnel` nachzuladen?
nuron commented 4 months ago

Das scheint Abhilfe zu schaffen.
Nu geht file upload und auch diese Status Anzeige im Browser, auch wenn ich den Sinn von der noch nicht so ganz verstehe ^^

Das scheint Abhilfe zu schaffen. Nu geht file upload und auch diese Status Anzeige im Browser, auch wenn ich den Sinn von der noch nicht so ganz verstehe ^^
Jeybe commented 4 months ago
Collaborator

Dann macht es an der Stelle Sinn, anzugeben dass dies eine Beispielkonfig für einen vHost von Apache auf Debian mit den zusätzlich aktivierten Modulen proxy_http, proxy_wstunnel und der Einstellung, die nuron schon getätigt hat, ist. (Diese Einstellung aktiviert auch nur ein Modul oder was macht diese?).

Dann macht es an der Stelle Sinn, anzugeben dass dies eine Beispielkonfig für einen vHost von Apache auf Debian mit den zusätzlich aktivierten Modulen proxy_http, proxy_wstunnel und der Einstellung, die nuron schon getätigt hat, ist. (Diese Einstellung aktiviert auch nur ein Modul oder was macht diese?).
nuron commented 4 months ago

jo, dieses a2enmod läd quasi die Module nach, die eben benötigt werden.
Also der Befehl oben den ich rein geschrieben habe läd die Module headers, ssl, proxy und rewrite.

jo, dieses a2enmod läd quasi die Module nach, die eben benötigt werden. Also der Befehl oben den ich rein geschrieben habe läd die Module headers, ssl, proxy und rewrite.
DebXWoody added 1 commit 4 months ago
Jeybe added the
Inhalte Ideen
label 2 months ago
Jeybe changed title from XMPP Prosody Server einrichten to WIP: XMPP Prosody Server einrichten 2 months ago
Collaborator

@DebXWoody wie ist hier der Stand? Es sind noch einige Punkte offen

@DebXWoody wie ist hier der Stand? Es sind noch einige Punkte offen
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
4 Participants
Notifications
Due Date

No due date set.

Dependencies

This pull request currently doesn't have any dependencies.

Loading…
There is no content yet.