RRZE-Chat

Das RRZE stellt eine auf XMPP basierende Chatlösung bereit, die zur FAU-internen Kommunikation genutzt werden kann.

Es handelt sich hierbei nicht um eine offizielle Dienstleistung! Es besteht kein Versorgungsanspruch.

Zur Authentifizierung wird die Verwedung von Kerberos empfohlen, da viele verbreitete XMPP-Clients Passwörter im Klartext ablegen und daher ein Sicherheitsrisiko darstellen.
Für eine Liste möglicher Chat-Clients siehe Abschnitt „Empfohlene Clients„.

Als Alternative zur lokalen Installation kann auch der Web-Chat unter https://www.linux.rrze.fau.de/chat genutzt werden.


Vorraussetzungen

Soweit bekannt funktioniert der Kerberos Login nur mit Linux Installationen.
Für Windows-Nutzer wird der Web-Chat unter https://www.linux.rrze.fau.de/chat empfohlen.
Alternativ kann auch das „Windows Credentials“ Plugin für Pidgin verwendet werden.

Authentifizierung mit Kerberos — empfohlen!

Vorraussetzung für die Nutzung der Kerberos-Authentifizierung ist eine funktionierende Grundkonfiguration von Kerberos für Ihr System. Falls noch nicht geschehen führen Sie bitte die entsprechenden Einrichtungsschritte wie beschrieben durch bevor Sie dieser Anleitung weiter folgen.

Falls Sie der Grundkonfiguration von Kerberos gefolgt sind und ihr Domain-Realm Mapping per Default auf LINUX.FAU.DE zeigt müssen Sie nichts weiter tun.

Für den Fall einer abweichenden Konfiguration stellen Sie sicher das folgendes Mapping existiert:
linux-chat.rrze.fau.de ---map-to-realm---> LINUX.FAU.DE

Zertifikatscheck (FAU-CA)

Ggf. werden Sie aufgefordert dem Zertifikat des Chat-Servers zu vertrauen.
Entweder Sie prüfen die Informationen des präsentierten Zertifikats manuell oder folgen der Anleitung FAU-CA Zertifikat einbinden, um das FAU-CA-Zertifikat systemweit als vertrauenswürdig einzubinden.

DNS-Cache

Um eine evtl ungültige DNS-Konfiguration aus dem lokalen Cache zu entfernen sollte dieser zur Sicherheit noch geleert werden.

bash$ systemd-resolve --flush-caches

Pakete für Ubuntu 16.04/18.04

# PIDGIN
bash$ sudo apt-get -y install pidgin libsasl2-modules-gssapi-mit
# GAJIM
bash$ sudo apt-get install gajim python3-kerberos

Konfiguration

Einrichtung von System und Chat-Client.

XMPP-Client Einstellungen

Die Einstellungen für den XMPP-Client sind wie folgt vorzunehmen:

Protocol XMPP
Username [IdM-Benutzername]
Domain linux-chat.rrze.fau.de
Resource [frei wählbar, zB rrze, workstation, laptop, home, …]
Die Resource bezeichnet das Gerät, von dem aus die Verbindung aufgebaut wird.
Conference-Server
conference.linux-chat.rrze.fau.de

Weitere Einstellungen sind für den Zugriff aus den FAU-netzen nicht nötig.

Insbesondere ein evtl vorhandes Feld für ein Passwort muss für die Kerberos-Authentifizierung leer gelassen werden!


Für den Zugriff von außerhalb der FAU muss abweichend von der XMPP-Domain linux-chat.rrze.fau.de der Zugangsserver linux.rrze.fau.de (Port 5222) gesetzt werden. Hier ist momentan noch kein Zugang mittels Kerberos möglich.

 

 

Gruppen-Chats

Über Gruppen-Chats (sog. Multi-User-Chats oder kurz MUCs) können sich zwei oder mehr Personen austauschen.

Service: conference.linux-chat.rrze.fau.de

Gruppenchats können von jedem erstellt werden. Dazu einfach dem gewünschten Chat mit dem Chat-Client „joinen“ und ggf die Einstellungen anpassen.

Persistente Chats bleiben bestehen (inkl. History).
Temporäre Chats werden automatisch wieder vom Server entfernt sobald der letzte Benutzer den Chat verlässt.

 

Kontaktlisten / Contact List (Roster) Sharing

Kontaktlisten werden — zumindest teilweise — vom Server vorgegeben (evtl erlauben Clients auch das manuelle Pflegen von Einträgen).

Manuelle Kontaktlisten können Sie nach belieben lokal in Ihrem Chatclient pflegen. Achten Sie beim hinzufügen von Kontaken allerdings darauf immer die vollständige JID zu verwenden. Diese ist folgenermaßen aufgebaut: ${IDM-Benutzername}@linux-chat.rrze.fau.de

Serverseitige Kontaktlisten werden ausschließlich auf Basis von bestehenden Linux-Gruppen eingerichtet, die über die IdM-Gruppenverwaltung angelegt wurden.
Die Mitglieder der Kontaktliste werden entsprechend automatisch synchronisiert.

Damit nicht jeder jeden „sehen“ kann bzw. um eine gewisse Einteilung vorzugeben,  können Kontaktlisten anhand von Gruppenzugehörigkeiten in unserem LDAP automatisch gepflegt werden.

Beispielsweise haben wir eine Kontakliste „rrze_employee“ die auf der gleichnamigen LDAP-Gruppe basiert.
So können alle RRZE-Mitarbeiter sich gegenseitig leicht finden bzw „sehen“.

Haben Sie bereits eine Gruppe, die Sie als Kontakliste freischalten lassen möchten,
so schreiben Sie bitte Ihr Anliegen mit Gruppennamen an rrze-linux@fau.de.

 

Paralleles Login mit mehreren Clients

Die parallele Nutzung mehrerer Chat-Clients wird unterstützt, sofern jeder Client eine eigene Resource verwendet (siehe „XMPP-Client Einstellungen“) .
Die „Resource“ bezeichnet dabei das Endgerät/den Standort oder Einsatzzweck des Clients und kann prinzipiell frei gewählt werden. Viele Clients wählen auch eine zufallsgenerierte Resource.

Um das Ziel einer Nachricht eindeutig zu bestimmen bildet der Server eine Zieladresse in der Form
Benutzername@Domain/Resource

Erfolgt ein Login auf eine bereits angemeldete Resource, so wird die bestehende Verbindung getrennt.

 

Empfohlene Clients

Hier eine kleine Liste von Anwendungen, die wir zumindest schonmal selbst getestet haben.
Kein Anspruch auf Vollständigkeit oder Funktionalität.

Mobile: Apple/iOS

Mobile: Android

Desktop: Apple/Mac OS

Desktop: Linux

Desktop: Windows

 

Spezielle Server-Einstellungen

Hier werden einige spezielle Einstellungen des Chat-Servers dokumentiert, die evtl auch bei der Nutzung zu beachten sind.

Zustellung von Nachrichten an alle angemeldeten Resourcen

Entgegen dem Standard-Verhalten wurde der Server so konfiguriert, dass Nachrichen an einen Benutzer immer an alle angelmedeten Clients des Benutzers (Resourcen) weitergeleitet werden. Auf diese weise kann eine Synchronisation der Chat-Verläufe auf allen parallel angemeldeten Clients erreicht werden.

Diese Einstellung ignoriert evtl vergebene Prioritäten auf die angemeldeten Resourcen, mit Ausnahme von „-1“ (keine Zustellung).

(Referenz: route.all-resources/route.really-all-resources)

 

Supportete XMPP-Features

Das XMP-Protokoll besitzt zahlreiche Erweiterungen, welche nicht von allen Clients unterstützt werden.
Für Interessierte sind hier einige Informationen über die wichtigsten Erweiterungen zusammengetragen, welche auch von unserem Chat-Server unterstützt werden.

Der Web-Chat unter https://www.linux.rrze.fau.de/chat unterstützt alle aufgeführten Erweiterungen.

 

XEP-0363: HTTP File Upload

Unterstützt für das Hochladen von Dateien auf den Server und liefert einen Link zum erneuten Download der Datei.
Dies ist vor allem deshalb praktisch, da der oder die Empfänger der Datei nicht zum Zeitpunkt des Versendens online sein muss. Der Chatverlauf wird nach Upload der Datei einen Link enthalten unter dem diese auch zu einem späteren Zeitpunkt wieder heruntergeladen werden kann.

Derzeit ist der Upload von Dateien auf eine Größe von maximal 25MB beschränkt.
Die Dateien werden gelöscht, sobald der Speicherplatz zur neige geht oder der Chat-Server neu gestartet wird.

Siehe auch https://xmpp.org/extensions/xep-0363.html

——————–

Aktuelle Einschränkung:
Die Download Links funktionieren nur innerhalb des Uni-Netzes.  Das liegt aber nur an der Generierung des Links, was mit dem nächsten Update behoben wird.
Ersetzt man „https://linux-chat.rrze.fau.de:7443/“ durch „https://linux.rrze.fau.de/chat/“ so funktioniert es auch von außerhalb des Uni-Netzes.

Update (25.7.2019): Die Download Links werden jetzt korrekt generiert, so dass der Download auch außerhalb des Uninetzes fuktioniert.

 

XEP-0313: Message Archive Management

Unterstützt das Abrufen und Konfigurieren eine Nachrichtenprotokolls auf dem Chat-Server.
Clients können so den Verlauf eines Gesprächs Abrufen und Anzeigen, auch wenn das Gespräch mit einem anderen Client/auf einem anderen Gerät stattgefunden hat.

Derzeit werden alle Chat-Nachrichten der letzten 90 Tage im Archiv des Servers gespeichert und sind durch die Clients abrufbar.

Siehe auch https://xmpp.org/extensions/xep-0313.html

 

XEP-0280: Message Carbons

Unterstützt das Senden von Nachrichtenkopien an parallel eingeloggte Clients des selben Benutzers.
So kann der Nachrichtenverlauf auf allen Clients (Resourcen) synchron gehalten werden.

Siehe auch https://xmpp.org/extensions/xep-0280.html

——————–

Für Pidgin gibt es ein entsprechendes Plugin zum Download unter https://github.com/gkdr/carbons/releases
oder direkt per Shell mit

bash$ wget https://github.com/gkdr/carbons/releases/download/v0.2.2/carbons-0.2.2.so -O ~/.purple/plugins/carbons-0.2.2.so

 

XEP-0184: Message Receipts

Ermöglicht das Anfordern einer Empfangsbestätigung vom Empfänger einer Nachricht.
Clients können so das erfolgreiche Empfangen einer Nachricht anzeigen (zB mittels Häckchen).

Siehe auch https://xmpp.org/extensions/attic/xep-0184-1.0.html

 

XEP-0384: OMEMO Encryption

Ermöglicht Ende-zu-Ende Verschlüsselung in 1-zu-1 Chats.

Siehe auch https://xmpp.org/extensions/xep-0384.html

 

XEP-0048: Bookmarks

Ermöglicht das Speichern von Bookmarks aus Webseiten und Multi-User-Chaträume (MUCs).
So wird zB das automatische Beitreten zu MUCs (auto-join) beim Login ermöglicht.

Siehe auch https://xmpp.org/extensions/xep-0048.html

 

Pidgin Gnome Keyring

Speichert Passwörter verschlüsselt im Gnome Keyring ab. Damit wird die Klartext Speicherung in der accounts.xml Datei verhindert.

bash$ sudo apt install pidgin-gnome-keyring

Pidgin Encryption

Verschlüsselung mittels RSA-Keys. Plugin generiert, tauscht aus und verwaltet RSA-Keys zur Verschlüsselung. Gegenseite muss Plugin installiert haben.

bash$ sudo apt install pidgin-encryption

 

Pidgin Windows Credentials

  • Pidigin öffnen und „Extras“ => „Plugins“ auswählen
  • Im dann erscheinenden Fenster das Plugin „Windows Credentials“ auswählen und aktivieren
  • „Plugin konfigurieren“ auswählen
  • Im dann erscheinenden Fenster den Haken bei „Clear plaintext passwords from memory“ setzen
  • Die beiden Fenster (Windows Credentials und Erweiterungen) mit Klick auf „Schließen“ schließen

Ab jetzt wird das Chat-Passwort verschlüsselt im Windows-Passwort-Store gespeichert.
Wer das genannte Plugin „Windows Credentials“ in seinem installierten Pidgin nicht finden kann bitte bei der Windows-Gruppe melden.