190
Bearbeitungen
Geierb (Diskussion | Beiträge) |
Geierb (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(42 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
* [[Benutzer:sqozz|sqozz]]
* [[Benutzer:Cfr34x|cfr34k]]
* [[Benutzer:
==Benutzerzugänge==
Informationen für Anwender finden sich hier: [https://xmpp.bytewerk.org/ https://xmpp.bytewerk.org/]
=== <Bingo-Benutzername>@bingo-ev.de ===
=== <wunschname>@bytewerk.org ===
Accounts werden auf Zuruf erstellt (siehe oben "Verantwortlich"). Das Passwort kann im XMPP-Client geändert werden.
Zusätzlich kann jeder vorhandene Benutzer '''"Invite"-Codes''' erstellen und diesen anderen Personen zuschicken, die sich dann damit einen @bytewerk.org-Account anlegen können:
# In [https://xmpp.bytewerk.org/conversejs-bytewerk Converse.js] anmelden
# Links oben auf das Zahnrad klicken
# Auf "Befehle" klicken
# Als Instanz "bytewerk.org" eingeben
# "Verfügbare Befehle auflisten" klicken
# Auf "Create new contact invite" klicken
# Die angezeigte Adresse zur "Invite web page" kopieren und der Einzuladenden zukommen lassen. Der Link ist eine Woche lang gültig.
== Chaträume ==
Jeder kann nach Belieben Chaträume anlegen.
Folgende Chaträume werden automatisch angelegt:
* [xmpp:bingo-users@conference.bingo-ev.de bingo-users@conference.bingo-ev.de] [https://conference.bingo-ev.de/muc_badge/bingo-users@conference.bingo-ev.de]
* [xmpp:bytewerk@conference.bytewerk.org bytewerk@conference.bytewerk.org] [https://conference.bytewerk.org/muc_badge/bytewerk@conference.bytewerk.org]
=== Badges ===
Badges für Chaträume können über https://conference.<DOMAIN>/muc_badge/<MUC-JID> abgerufen werden.
Beispiele:
* Das Badge für [xmpp:bytewerk@conference.bytewerk.org bytewerk@conference.bytewerk.org] kann über die URL https://conference.bytewerk.org/muc_badge/bytewerk@conference.bytewerk.org abgerufen werden und sieht so aus: [[Datei:MUC badge bytewerk.png|frameless|caption]]
* Das Badge für [xmpp:bingo-users@conference.bingo-ev.de bingo-users@conference.bingo-ev.de] kann über die URL https://conference.bingo-ev.de/muc_badge/bingo-users@conference.bingo-ev.de abgerufen werden und sieht so aus: [[Datei:MUC badge bingo-users.png|frameless|caption]]
== XMPP-Clients ==
Es kann jeder XMPP-Client verwendet werden. Empfehlenswerte Clients für Android, iOS, Linux, Windows und MacOS sind auf https://xmpp.bytewerk.org/ aufgeführt.
=== Webclients ===
* 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
* Gleichzeitiges Verwenden mehrerer Clients
Dateien und Chatverläufe werden nach einem Monat vom Server gelöscht.
=== Die Kosten der Freiheit ===
Die oben genannten Funktionen stehen nicht immer zur Verfügung, weil sich die bei der Kommunikation mit einem bestimmten Gesprächspartner zur Verfügung stehenden Funktionen aus der Schnittmenge des Funktionsumfangs der beteiligten XMPP-Server und der XMPP-Clients ergeben :)
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 selbst wenn es mein XMPP-Client und der Server unterstützt.
Obacht bei der '''gleichzeitigen Verwendung von mehreren Clients
Ebenso ist undefiniert, was passiert, wenn ein Videoanruf gestartet werden soll, der Gesprächspartner aber mit mehreren Clients online ist, von denen nicht alle Videotelefonie unterstützen.
Threema, Whatsapp usw. umgehen das, indem sie weder parallele Nutzung noch Fremd-Clients zulassen.
== Fortschritt ==
;2021-02: Implementierung abgeschlossen: Statt 52% jetzt 100% "XMPP Specifications compliance" beim [https://compliance.conversations.im/server/bytewerk.org/ Conversations.im-Compliance-Test], A-Scores beim IM Observatory [https://www.xmpp.net/result.php?domain=bytewerk.org&type=client Client-] 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
;2021-08: Serverkonfiguration auf Ansible umgestellt, dabei kleine Fehler behoben, neue Funktionen hinzugefügt, Conversejs aktualisiert.
== Implementierung ==
=== Software ===
Auf der VM '''xmpp.bytewerk.org''' läuft:
* [https://www.postgresql.org PostgreSQL]: Datenbank für Benutzer, Kontakte, Gruppen und Chats
* [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, mit einigen [https://github.com/conversejs/community-plugins Community-Plugins]
* [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
* Crond: Um Certbot wöchentlich aufzurufen und um täglich das Fileupload-Verzeichnis aufzuräumen
=== DNS ===
<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
=== Konfiguration Coturn ===
Kommentierte Konfigurationsdatei "/etc/coturn/turnserver.conf"
=== 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
Bei dem Modul
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
==Probleme/ToDo==
siehe https://git.bingo-ev.de/groups/xmpp/-/issues
==
Stand 02.09.2021 gibt's ohne folgende Änderungen Routingprobleme mit IPv6:
Route Announcements auf dem Interface net-nat ignorieren:
In ''/etc/sysctl.d/ipv6-ignore-ra.conf'':
<pre>
net.ipv6.conf.net-nat.accept_ra=0
net.ipv6.conf.net-nat.autoconf=0
</pre>
In ''/sysconfig/network/routes'' Default-Route für IPv4 setzen:
<pre>
# target via netmask interface
default 94.142.219.94 0.0.0.0 net-public
</pre>
In ''/etc/iproute2/rt_tables'' neue Routingtabelle namens "public" anlegen:
<pre>
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
200 public
</pre>
Verbindungen von der öffentliche IPv6-Adresse über diese Route laufen lassen. Dazu in ''/etc/sysconfig/network/ifrule-net-public'':
<pre>
ipv6 from 2a02:868:15:72::1/64 table public
</pre>
==Files==
Das Ansible Playbook und das Inventory befinden sich hier: https://git.bingo-ev.de/xmpp
[[Category:Projekt]]
|
Bearbeitungen