• chevron_right

      hawkbit-info

      Stefan · pubsub.movim.eu / xmpp-messenger · Monday, 9 December, 2019 - 20:14 edit · 1 minute

    hawkbit-info ist ein XMPP Programm basierend auf gloox. Das Programm prüft den Status eines Server (supported XEPs) und gibt Informationen zu dem angegebenen XMPP Account.

    Das Programm lässt sich wie eine Shell bedienen. Nach Angabe von Benutzer und Passwort verbindet sich das Programm zum Server. Danach kann der Anwender über die Befehle den XMPP Server / Account prüfen.

    Das Projekt soll auch als Hilfestellung für die Programmierung von XMPP Anwendung mit gloox dienen.

    Viel Spaß beim programmieren!

    % ./hawkbit-info     
    JID: hawkbit@domain.tld
    Passwort: 
    Connect...
    Zertifikat
    certificate: OK
    Resource bind: HawkbitInfo OK
    Server connected: OK
    XMPP> help
    bookmarks
    xep
    discover
    exit
    XMPP> xep
    Discovering Information About a Jabber Entity
    Identity Prosody (im)server
    Identity Prosody (pep)pubsub
    XEP-0092: OK
    XEP-0050: OK
    XEP-0021: OK
    XEP-0030: OK
    urn:xmpp:blocking: OK
    XEP-0049: OK
    XEP-0199: OK
    XEP-0060: #publish OK
    XEP-0077: OK
    XEP-0202: OK
    XEP-0160: OK
    jabber:iq:roster: OK
    XEP-0054: OK
    Discovering the Items Associated with a Jabber Entity: domain.tld
    Item  (proxy.domain.tld)
    Item  (conference.domain.tld)
    Item  (search.domain.tld)
    Item  (upload.domain.tld)
    Item  (pubsub.domain.tld)
    XMPP> discover
    discoveringService
    5
    Discovering the Items Associated with a Jabber Entity: proxy.domain.tld
    Discovering the Items Associated with a Jabber Entity: conference.domain.tld
    Item room1 (room1@conference.domain.tld)
    Item room2 (room2@conference.domain.tld)
    Item room3 (room3@conference.domain.tld)
    Discovering the Items Associated with a Jabber Entity: search.domain.tld
    Discovering the Items Associated with a Jabber Entity: uploads.domain.tld
    Discovering the Items Associated with a Jabber Entity: pubsub.domain.tld
    Item  (pubsub.domain.tld)rss_abc3
    Item  (pubsub.domain.tld)rss_abc2
    Item  (pubsub.domain.tld)rss_abc1
    XMPP> exit
    

    #XMPP #hawkbit

    • chevron_right

      hawkbit-bot - Codeberg Webhook Module

      Stefan · pubsub.movim.eu / xmpp-messenger · Friday, 6 December, 2019 - 18:25 edit

    https://upload.movim.eu/files/04638dac6e7f7f0330099e0c0fc21a1b8425c2ab/dKhnvf2G3TSvIJDW5A0JTBwuvjvig28FngSNNuqu/Codeberg-Module.jpg

    Das Codeberg Webhook Module vom hawkbit-bot.

    Codeberg info via Webhook an den Bot. Der Bot schreibt die Info in einen XMPP MUC.

    Codeberg Webhook

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • chevron_right

      XMPP Schnellstart

      Stefan · pubsub.movim.eu / xmpp-messenger · Tuesday, 19 November, 2019 - 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!

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • favorite

      4 Like

      debacle, povoq, eevvoor, cantinista

    • chevron_right

      XMPP Server prosody auf einem Debian Buster

      Stefan · pubsub.movim.eu / xmpp-messenger · Sunday, 17 November, 2019 - 15:34 edit · 1 minute

    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"
    
    • wifi_tethering open_in_new

      This post is public

      de.movim.eu

    • chevron_right

      XMPP Instant Messaging auf Android

      Stefan · pubsub.movim.eu / xmpp-messenger · Sunday, 17 November, 2019 - 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

    • chevron_right

      Der XMPP Provider

      Stefan · pubsub.movim.eu / xmpp-messenger · Sunday, 17 November, 2019 - 07:17 edit · 1 minute

    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?

    • wifi_tethering open_in_new

      This post is public

      de.movim.eu

    • chevron_right

      Warum XMPP als Instant Messaging

      Stefan · pubsub.movim.eu / xmpp-messenger · Sunday, 17 November, 2019 - 05:55 edit · 2 minutes

    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 anders 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

    • chevron_right

      Hat OpenPGP heutzutage noch eine Bedeutung?

      Stefan · pubsub.movim.eu / xmpp-messenger · Monday, 28 October, 2019 - 21:08 · 2 minutes

    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

    • chevron_right

      XMPP-Messenger - Hawkbit-Bot

      Stefan · pubsub.movim.eu / xmpp-messenger · Sunday, 27 October, 2019 - 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

    • wifi_tethering open_in_new

      This post is public

      nl.movim.eu

    • Pictures 1 image

    • visibility