close
  • Xm chevron_right

    XMPP Schnellstart

    DebXWoody – pubsub.movim.eu / xmpp-messenger – Tuesday, 19 November - 17:16

Hier eine kurze Anleitung für den XMPP Schnellstart!

XMPP zu verwenden, erfolgt i.d.R. in 4 Schritten:

  • Provider auswählen
  • Account anlegen
  • Client installieren
  • Client konfigurieren

Provider auswählen

Zunächst sucht man sich einen Provider aus, bei dem man seinen XMPP Account haben möchte. Die Links unten helfen bei der Auswahl.

  • https://wiki.xmpp.org/web/Provider_Recommendations
  • https://www.freie-messenger.de/sys_xmpp/server
  • https://compliance.conversations.im
  • https://xmpp-servers.404.city
  • https://xmpp.net

Account anlegen

Es gibt zwei Möglichkeiten einen Account anzulegen. Viele Provider bieten auf der Homepage ein Formular einen Account anzulegen. Bei einigen Provider kann man den Account auch direkt im Client anlegen lassen. Hierzu muss der Provider und der Client diese Funktion zulassen.

Clients installieren

Welcher Client der richtig ist, ist abhängig von gewünschten Funktionalitäten, Betriebssystem und Geschmack.

Android

  • https://conversations.im
  • https://jabber.pix-art.de

Linux

  • https://gajim.org

Windows

  • https://gajim.org

iOS

  • https://chatsecure.org

Client konfigurieren

Im Client wird man jetzt seine JID eintragen: user@provider.tld und das gewählte Passwort.

Los geht's

Das war's!

  • favorite

    4 Like

    povoq , error , debacle , cantinah

  • Xm chevron_right

    XMPP Server prosody auf einem Debian Buster

    DebXWoody – pubsub.movim.eu / xmpp-messenger – Sunday, 17 November - 15:34 edit

XMPP Server prosody auf einem Debian Buster

Installation

Die Installation erfolgt einfach über aptitude

aptitude install prosody prosody-modules

Dieser Befehl installiert den Server sowie die Module für den Server:

Die Konfigurationsdateien liegen im Verzeichnis /etc/prosody/.

Domain Name System (DNS)

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 zwingend so benannte werden müssen.

  • xmpp.domain.tld
  • conference.domain.tld
  • uploads.domain.tld

domain.tld ist durch die eigene Domain zu ersetzen.

SRV-Record

_xmpp-server._tcp.domain.tld. 150 IN    SRV 5 0 5269 xmpp.domain.tld.
_xmpp-client._tcp.domain.tld. 150 IN    SRV 5 0 5222 xmpp.domain.tld.
_xmpps-client._tcp.domain.tld. 113 IN   SRV 0 5 5223 xmpp.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

Konfiguration

-- Eine Liste der Accounts für die Server Administratoren
admins = { "admin@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"

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 = {
        error = "/var/log/prosody/prosody.err";
        { levels = { "error" }; to = "syslog";  };
}

legacy_ssl_ports = { 5223 }

http_paths = {
  register_web = "/register";
}

VirtualHost "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"
  • Xm chevron_right

    XMPP Instant Messaging auf Android

    DebXWoody – pubsub.movim.eu / xmpp-messenger – Sunday, 17 November - 12:15 edit

Viele benutzen Instant Messaging auf dem Smartphone. XMPP lässt sich auch sehr gut aus Android Smartphones nutzen. Er spielt hierbei keine Rolle, ob du den Play Store verwendest oder F-Droid.

  • https://conversations.im
  • https://yaxim.org
  • https://quicksy.im
  • https://jabber.pix-art.de

Conversations

Conversations ist wohl der bekannteste XMPP Client für Android. Für nicht einmal 2,40 Euro kann man den Client im Play Store kaufen. Auf F-Droid wird der Client kostenlos angeboten.

Conversations

yaxim

yet another XMPP instant messenger ist auch ein sehr interessanter XMPP Client. Vielleicht läuft der Client auch noch gut auf alten Android Versionen. Der Client kommt jedoch ohne Verschlüsselung - was aber vielleicht auch nicht immer nötig ist.

quicksy

quicksy ist wie Conversations, jedoch hier wird die Handynummer als Account verwendet.

Pix-Art Messenger

Pix-Art Messenger ist ein Fork von Conversations

#XMPP #Android

  • Xm chevron_right

    Der XMPP Provider

    DebXWoody – pubsub.movim.eu / xmpp-messenger – Sunday, 17 November - 07:17 edit

Für die Nutzung von XMPP braucht man einen XMPP Account (eine JID). Dieser Account wird von einem Anbieter bereitgestellt. Das Konzept ist vergleichbar mit E-Mail. Die meisten E-Mail Nutzer haben eine E-Mail-Adresse bei einem Mail Provider.

Was ist der Vorteil an dem Account Konzept?

Auch wenn man wieder einen Account hat und sich wieder ein Passwort für den Account merken muss, hat die Kommunikation über einen Account Vorteile.

  1. Die Kommunikation erfolgt unabhängig von E-Mail oder Telefonnummer. D.h. man kann mit Personen kommunizieren, ohne andere persönliche Daten Preis zu geben.
  2. Es können unterschiedliche Account für verschiedene Dinge verwendet werden. So kann man die private und berufliche Kommunikation über verschiedene Accounts trennen.
  3. Man ist unabhängig und kann seinen Provider frei wählen

Wo finde ich XMPP Provider?

  • https://wiki.xmpp.org/web/Provider_Recommendations
  • https://www.freie-messenger.de/sys_xmpp/server
  • https://compliance.conversations.im
  • https://xmpp-servers.404.city
  • https://xmpp.net

Was sollte man bei der Wahl des Providers beachten?

Verfügbarkeit

Der Server sollte möglichst eine hohe Verfügbarkeit haben. Downtimes sind für Nutzer sehr ärgerlich.

XMPP Compliance

Das Protokoll XMPP ist erweiterbar. Viele Erweiterungen des Protokolls werden über XEPs abgedeckt. Es ist wichtig, dass der Server über die wichtigsten Erweiterungen verfügt und die Infrastruktur des Servers richtig konfiguriert wurde (DNS, XMPP via HTTP,..).

Datenschutz

Der Anbieter sollte auf seiner Homepage Informationen zum Datenschutz geben. Wie lange bzw. werden Daten vorgehalten, bis sie dann gelöscht werden. Hier gibt es nicht bei allen Punkte immer ein besser oder schlechter. Es ist vielmehr möchte ich dies oder möchte ich dies nicht.

Support und Ankündigungen

Ist der Server Provider via Support MUC / JID erreichbar? Gibt es ein MUC oder Blog für Ankündigungen bei Wartung am Server?

  • favorite

    2 Like

    cantinah , DebXWoody

  • Xm chevron_right

    Warum XMPP als Instant Messaging

    DebXWoody – pubsub.movim.eu / xmpp-messenger – Sunday, 17 November - 05:55 edit

Warum ich mich für XMPP entschieden habe,...

Smartphone, Desktop, Laptop oder SSH

Ich arbeite eigentlich sehr ungern auf meinem Smartphone. Ich nutze es zwar sehr oft, aber wenn ich die Wahl habe mich an mein Debian Desktop oder Laptop zu setzen oder mein LineageOS Smartphone zu verwenden, dann gewinnen meine Debian Systeme immer.

XMPP ermöglicht mir die Kommunikation über das Smartphone oder Desktop / Laptop zu verwenden und wenn es mal nicht anderes geht, dann eben per SSH mit profanity über einen Server.

  • https://conversations.im
  • https://jabber.pix-art.de
  • https://gajim.org
  • https://profanity-im.github.io

Verschlüsselung oder Klartext

Ich kann mit XMPP Nachrichten per Klartext übertragen, die Verschlüsselung via OMEMO nutzen oder das bekannte Verschlüsselungssystem OpenPGP nutzen. In viele Anwendungsfälle lässt sich XMPP sowohl auf dem Smartphone als auch auf dem Debian System mit einem Nitrokey oder Yubikey nutzen. In öffentlichen Gruppen, kann man auch die Nachrichten per Klartext übertragen.

Freie Wahl

In allen Bereichen des Instant Messaging habe ich die freie Wahl. Ich kann entscheiden welche Server Software ich verwende, wenn ich meine Dienst selber betreibe oder ich kann mir meinen Provider aussuchen, wenn ich den Dienst nicht selber betreibe. Ich kann mir den Client aussuchen, der für mich am besten passt.

Unabhängig

Bei XMPP handelt es sich um ein freies Protokoll. Man ist nicht an ein Unternehmen gebunden. Das Protokoll ist in einigen RFCs definiert. Die Erweiterungen (XEPs) werden von der XMPP Standards Foundation (XSF) verwaltet.

XMPP is an open technology, so the simple answer is: no one.

It is not a programming language, or a tool you can download and use. You can’t buy it or pay for a licence to use it.

It is a protocol (a set of standards) that the XMPP Standards Foundation maintains. There is also an active community of open-source and commercial developers who produce a wide variety of XMPP-based software.

In essence, XMPP belongs to the vibrant community that develops and cares for it.

Quelle: https://xmpp.org/about/faq.html

Privatsphäre

Für die Verwendung von XMPP benötigt man einen XMPP-Account (JID). Die meisten mir bekannten XMPP Provider, benötigen für die Registrierung keine persönlichen Daten. Das hat den Vorteil, dass man keine persönlichen Informationen bekannt geben muss. Für die Verwendung von XMPP sind weder Zugriff auf die Kontaktdaten des Adressbuches nötig noch Handynummer / E-Mail-Adresse oder ähnliches.

XMPP-Messenger Projekt

Um XMPP zu unterstützen, habe ich das XMPP-Messenger Projekt gestartet https://xmpp-messenger.de. Das Ziel ist es, die Verwendung, Administration, Entwicklung von XMPP zu unterstützen.

Die Community

Bis jetzt sind mir die Menschen ( ich hoffe es waren alles Menschen und keine KI :-D ), mit denen ich Kontakt hatten und auch habe, immer besonders freundlich und sehr hilfsbereit aufgefallen. Hat man Fragen, braucht Hilfe oder Verständnis Probleme, so bekommt man in den öffentlichen Multi-User-Chats sicherlich die benötigen Informationen.

Deutschsprachige MUCs

  • xmpp:xmpp-messenger@conference.anoxinon.me?join

Englischsprachige MUCs

  • xmpp:profanity@rooms.dismail.de?join - MUC für den Client profanity

#XMPP #OpenPGP #Nitrokey

  • favorite

    1 Like

    cantinah

  • Xm chevron_right

    Hat OpenPGP heutzutage noch eine Bedeutung?

    DebXWoody – pubsub.movim.eu / xmpp-messenger – Monday, 28 October - 21:08

Meiner Meinung nach, “Ja!”.

Ich bin kein Experte der Kryptographie. Ich kenne mich eigentlich sehr wenig damit aus. Jedoch ist meiner Meinung dazu die Folgende.

Ich bin ein OpenPGP / GnuPG Fan. Ich finde die Idee der Prüfung von öffentlichen Schlüsseln gut und auch das Konzept vom Web-of-Trust finde ich super. Das ist jedoch meiner persönliche Meinung, deswegen zurück auf die Frage,..

Alle folgenden Informationen können gerne auf Korrektheit geprüft werden (wenn jemand Plan davon hat) und auch gerne Feedback im Issue geben:

Issue auf Codeberg zu XMPP und OpenPGP

OMEMO ist ein Protokoll was Perfect Forward Secrecy (PFS) verwenden. Mein Verständnis ist hierbei, dass die Nachrichten nur innerhalb einer “Sitzung” entschlüsselt werden können. Bei OMEMO ist es wohl nicht die “Session” selber, vielleicht ist hier die “Session” mehr zeitlich orientiert (ich weiß es nicht).

Unabhängig davon, muss die Nachricht wegen der “Perfect Forward Secrecy” auf dem Client entschlüsselt werden. Da man später die Nachricht nicht mehr entschlüsselt kann! Das ist ja auch die Idee dahinter. Ferner ist OMEMO Geräte basierten, was auf der einen Seite sicherlich gut ist (z.b. kein Vertrauen von Geräten wie Smartphone oder Web-Apps, aber dem Desktop Client). Jedoch ist die Lösung auch ab und zu nicht immer Perfekt.

Bei OpenPGP ist der Schlüssel einer Person und nicht einem Gerät zugeordnet. Unabhängig welches Gerät ich später verwende, können Nachrichten noch gelesen werden. Da OpenPGP kein (PFS) verwenden, muss man auch die Nachrichten nicht auf dem Client entschlüssel und speichern. Man kann die Nachrichten währen der Laufzeit entschlüsseln und anzeigen. Die Nachricht selber bleibt verschlüsselt.

Die Token wie Nitrokey und Yubikey können verwenden werden, um den privaten Schlüssel zu verwalten. Kleine Erinnerung: Der private Schlüssel ist geheim zu halten und hierbei ist fraglich, ob ein Schlüssel etwas auf einem Server oder Smartphone verloren hat!

Es gibt kein “blindes” Vertrauen - bzw. mir ist es nicht bekannt. Ein Verschlüsselungsverfahren hat etwas mit Vertrauen zu tun. Wenn ich jedem einfach blind vertraue (also davon ausgehen, dass der öffentlich Schlüssel / Fingerprint zu einer Person passt), dann ist der Nutzen von Verschlüsselung etwas fragwürdig :-) Das Web-of-Trust wie es bzw. bei GnuPG / OpenPGP verwendet wird, ist sicherzustellen, dass ein öffentlicher Schlüssel genau der Person gehört (Zertifizierung - unterschreiben des öffentlichen Schlüssels einer anderen Person) und das Verwenden von Trust-Level und Trust-DB bildet die Möglichkeit Schlüssel als Gültig zu betrachten, ohne den Schlüssel selber signiert zu haben.

Fazit: Ich finde OpenPGP immer noch ein wichtiges und sehr gutes Konzept und würde mich freuen, wenn es auch in XMPP mehr einsetzt findet.

#XMPP #OpenPGP #GnuPG #Nitokey #Yubikey #OMEMO

  • favorite

    1 Like

    cantinah

  • Xm chevron_right

    XMPP-Messenger - Hawkbit-Bot

    DebXWoody – pubsub.movim.eu / xmpp-messenger – Sunday, 27 October - 18:14 edit

Hawkbit-Bot ist ein XMPP Bot.

Der Bot ist in C++ geschrieben und verwendet die XMPP C++ lib gloox.

Der erste Entwurf ist im master Branch von git Repository auf Codeberg: Hawkbit-Bot auf Codeberg.

Aktuell habe ich 3 Module

  1. Core Module
  2. System Shell Module
  3. Codeberg Module

Module

Core Module

Das Core Module wird den join in ein operator MUC veranlassen. Damit kann der Supervisor den Bot steuern und die Informationen werden über den MUC wieder an die Benutzer gegeben.

System Shell Module

Ein Modul zum ausführen von Shell Befehlen auf dem Host-System.

Codeberg Module

Der Bot startet ein listen auf ein TCP Port und kann so die Befehle von einem Codeberg Webhook entgegen nehmen.

XMPP-Bot