XMPP-Server: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
1.227 Bytes hinzugefügt ,  29. März 2021
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
* [[Benutzer:sqozz|sqozz]]
* [[Benutzer:Cfr34x|cfr34k]]
* [[Benutzer:citronalcoGeierb|citronalcoGeierb]]
 
==Benutzerzugänge==
 
Informationen für Anwender finden sich hier: [https://xmpp.bytewerk.org/ https://xmpp.bytewerk.org/]
 
 
=== <Bingo-Benutzername>@bingo-ev.de ===
 
== XMPP-Clients ==
=== NativeEmpfehlenswerte native Clients ===
* Android: Conversations.im, Quicksy.im
* iOS: Monal.im
* [https://xmpp.bytewerk.org/conversejs-bytewerk XMPP-Webclient für @bytewerk.org-Nutzer]
 
Grundsätzlich kann sich jeder XMPP-Nutzer an jedem XMPP-Webclient anmelden. Je nach URL werden nur ein paar Voreinstellungen passend zur Domain desgesetzt Nutzersum gesetztdie Benutzung von Converse.js zu erleichtern.
 
=== Sonstige ===
* Audio- und Videotelefonie
* Ende-zu-Ende-Verschlüsselung
* Dateiup- und Download (wird auch für Fotos, Sprach- und Videonachrichten verwendet) - Dateigröße derzeit limitiert auf 20 MByte.
* Gleichzeitiges Verwenden mehrerer Clients
 
 
Die bei der Kommunikation mit einem bestimmten Gesprächspartner zur Verfügung stehenden Funktionen ergeben sich aus der Schnittmenge des Funktionsumfangs der beteiligten XMPP-Server und der XMPP-Clients.
 
Beispiel: Ist mein Gesprächspartner ein Shellskript, das mir eine Nachricht schickt wenn die Waschmaschine fertig ist, werde ich kein Videotelefonat mit dem Skript führen können auchselbst wenn es der Server unterstützt.
 
Obacht bei der Verwendung von mehreren Clients gleichzeitig: Eine Nachricht gilt als zugestellt, wenn sie an EINEM Client des Empfängers angekommen ist. Das kann bei wackeliger Internetverbindung dazu führen, dass Nachrichten scheinbar nicht zugestellt wurden - sie landen dann nur bei dem Gerät, dass gerade online warist. Nicht alle XMPP-Clients prüfen beim Wieder-Online-Gehen, ob in der Zwischenzeit Nachrichten für den Benutzer eingetroffen sind, die bereits an einem anderen Client zugestellt wurden. Threema, Whatsapp usw. umgehen das, indem sie keineweder parallele Nutzung noch Fremd-Clients zulassen.
 
== Fortschritt ==
;2021-01: Neukonfiguration des bestehenden XMPP-Servers mit Korrektur der DNS-Einträge und Installation zusätzlicher benötigter Dienste
;2021-02: Implementierung abgeschlossen: BeiStatt 52% jetzt 100% "XMPP Specifications compliance" beim [https://compliance.conversations.im/server/bytewerk.org/ compliance.conversationsConversations.im-Compliance-Test], stattA-Scores 52%beim jetztIM 100%Observatory "XMPP[https://www.xmpp.net/result.php?domain=bytewerk.org&type=client SpecificationsClient-] compliance"und [https://www.xmpp.net/result.php?domain=bytewerk.org&type=server Server]-Test
;2021-02: Bingo-Domäne mit IMAP-Authentifizierung hinzugefügt, Conversejs aktualisiert
 
 
== Implementierung ==
* [https://github.com/coturn/coturn Coturn]: TURN und STUN (für Jingle/WebRTC benötigt, d.h. Audio-/Videotelefonie sowie Dateiübertragung von Client zu Client)
* [https://github.com/conversejs/converse.js ConverseJS]: XMPP-Webclient
* [https://httpd.apache.org/ Apache2] mit mod_php: HTTPS-Reverse-Proxy für File-Up- und -Downloads, ''.well-known''-URLs, BOSH und Websocket, Bereitstellung von ConverseJS. PHP wird für das "share_v2.php"-Skript benötigt, das sich um Datei-Up- und Downloads kümmert.
* [https://github.com/DigitaleGesellschaft/Anonip Anonip]: Wird zum Logging in Apache2 benutzt um in den Access-Logs die letzten Stellen der IP-Adressen auf 0 setzen. Liegt unter ''/usr/local/Anonip.git''
* [https://certbot.eff.org Certbot]: Für TLS-Zertifikatsaktualisierung
<pre>
xmpp.bytewerk.org. 300 IN A 94.142.219.72 # Prosody-Server, Coturn-Server, Apache2
xmpp.bytewerk.org. 300 IN AAAA 2a02:868:15::72:1
 
conference.bytewerk.org. 300 IN A 94.142.219.72 # MUC-Component, Apache2
conference.bytewerk.org. 300 IN AAAA 2a02:868:15::72:1
proxy.bytewerk.org. 300 IN A 94.142.219.72 # Proxy65-Component, Apache2
proxy.bytewerk.org. 300 IN AAAA 2a02:868:15::72:1
upload.bytewerk.org. 300 IN A 94.142.219.72 # HTTP-Fileupload, Apache2
upload.bytewerk.org. 300 IN AAAA 2a02:868:15::72:1
pubsub.bytewerk.org. 300 IN A 94.142.219.72 # PubSub-Component, Apache2
pubsub.bytewerk.org. 300 IN AAAA 2a02:868:15::72:1
 
_xmpp-client._tcp.bytewerk.org. 300 IN SRV 0 5 5222 xmpp.bytewerk.org. # VirtualHost XMPP-Server, C2S
<pre>
conference.bingo-ev.de. 300 IN A 94.142.219.72 # MUC-Component, Apache2
conference.bingo-ev.de. 300 IN AAAA 2a02:868:15::72:1
proxy65.bingo-ev.de. 300 IN A 94.142.219.72 # Proxy65-Component, Apache2 ("proxy.bingo-ev.de" ist bereits belegt)
proxy65.bingo-ev.de. 300 IN AAAA 2a02:868:15::72:1
upload.bingo-ev.de. 300 IN A 94.142.219.72 # HTTP-Fileupload, Apache2
upload.bingo-ev.de. 300 IN AAAA 2a02:868:15::72:1
pubsub.bingo-ev.de. 300 IN A 94.142.219.72 # PubSub-Component, Apache2
pubsub.bingo-ev.de. 300 IN AAAA 2a02:868:15::72:1
 
_xmpp-client._tcp.bingo-ev.de. 300 IN SRV 0 5 5222 xmpp.bytewerk.org. # VirtualHost XMPP-Server, C2S
=== Fileupload ===
Der in Prosody eingebaute HTTP-Server unterstützt nur den Upload von Dateien <= 10 MByte und funktioniert nicht mit einigen iOS-Clients (z.B. Monal, Siskin).
Um diese Probleme zu umgehen empfiehltwird Prosody,das stattdessenvon dasProsody empfohlene Modul "mod_http_upload_external" zu verwendenverwendet.
Bei dem Modul wirdfunktioniert dazuder Dateiup- und Download über das mitgelieferte PHP-Skript "share_v2.php" benutzt, das unter dem Apache-vHost "https://upload.bytewerk.org/share_v2.php" (bzw. https://upload.bingo-ev.org/share_v2.php) eingebunden ist und hochgeladene Dateien unter "/srv/var/prosody-upload/<DOMAIN>/" abspeichert.
 
Dateien, die älter als ein Monat sind, werden per täglichem Cronjob von root gelöscht.
=== well-known-URLs ===
Um XEP-0156 ("Discovering Alternative XMPP Connection Methods") zu erfüllen, müssen die Webserver von bytewerk.org und bingo-ev.de per Reverse Proxy folgende URL vom XMPP-Server durchreichen. Es reicht wenn die URLs über HTTPS erreichbar sind:
* ''xmpp.bytewerk.org/.well-known/host-meta'' unter:
** https://bytewerk.org/.well-known/host-meta
** https://bingo-ev.de/.well-known/host-meta
* ''xmpp.bytewerk.org/.well-known/host-meta.json'' unter:
** https://bytewerk.org/.well-known/host-meta.json
** https://bingo-ev.de/.well-known/host-meta.json
 
Ein einfacher Redirect reichtfunktioniert nicht, da dieser die CORS-Header invon Prosody konfiguriertgesetzten und gesetztHTTP-CORS-Header werdenzurücksetzt.
 
==Probleme==
* Plattenplatz auf VM gering
* <del>keine IPv6-Unterstützung: Die Prosody-VM hat zwar eine IPv6-Adresse, diese ist aber nicht öffentlich erreichbar</del>
* <del>Wenn Coturn als TURN-Server statt "nur" als STUN-Server durch Prosody benutzt wird, funktioniert Audio- und Videotelefonie nur noch mit bytewerk.org-Usern und nicht mehr mit Externen.</del>
* Verbindung mit Websocket funktioniert nicht (und ist darum in Prosody deaktiviert): Verbindung wird aufgebaut, dann gibt's einen Timeout.
* Conversejs ist stellenweise etwas umständlich zu bedienen. So muss z.B. zum Anlegen eines MUC die komplette Domain des eigenen XMPP-Servers eingegeben werden. Um das zu umgehen gibt es jeweils eine Conversejs-URL für @bingo-ev.de und @bytewerk.org, bei der durch entsprechende Vorkonfiguration das Anlegen von MUCs auch ohne Eintippen des Domainnamens funktioniert. Mittelfristig kann Conversejs eventuell durch [https://github.com/movim/movim/ Movim] ersetzt werden. Movim ist allerdings Stand 2/2021 noch zu buggy (siehe Issues [https://github.com/movim/movim/issues/964], [https://github.com/movim/movim/issues/972], [https://github.com/movim/movim/issues/974]).
 
==ToDo==
* <del>Testen! Insbesondere: Funktioniert alle XMPP. Funktionen auch mit Nutzern aus anderen Domänen? Verhalten sich Mobilgeräte wie erwartet? (iOS Pushnachrichten, Stromsparmodus, Verzögerungen,...)</del>
* Mehr Plattenplatz
* <del>Backup</del>
* <del>Monitoring</del>
 
==Files==
==Verwandte Artikel==
Alle Konfigurationsdateien befinden sich hier: https://git.bingo-ev.de/geierb/bytewerk-xmpp-server
 
 
==Files==
TBD
 
[[Category:Projekt]]
190

Bearbeitungen

Navigationsmenü