messenger:jabber_xmpp
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| messenger:jabber_xmpp [2021-04-16 00:19:03] – ["Prosody" auf FreeBSD 12 installieren] manfred | messenger:jabber_xmpp [2021-04-16 00:43:20] (aktuell) – ["Prosody" auf FreeBSD 12 installieren] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Jabber / XMPP ====== | ||
| + | |||
| + | [[https:// | ||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | [[https:// | ||
| + | |||
| + | |||
| + | ===== Jabber-Server installieren ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | |||
| + | ==== " | ||
| + | |||
| + | **Prosody in der Version 0.11.2 kann schon Verschlüsselung mit "TLS 1.3" | ||
| + | |||
| + | Eigentlich wollte ich eJabber haben aber als mir die Konfiguration zu kompliziert wurde, habe ich mich für Prosody entschieden. | ||
| + | |||
| + | als erstes das Programm installieren | ||
| + | > pkg install net-im/ | ||
| + | |||
| + | Die Besonderheit von [[https:// | ||
| + | Deshalb werden wir uns gleich einen SSL-Schlüssel mit selbst signiertem Zertifikat erstellen. | ||
| + | Für einen öffentlichen Server sollte man sich schon ein ordentliches holen aber als Familien-Chat und für Freunde, reicht ein selbst signiertes Zertifikat aus. | ||
| + | Denn verschlüsseln tun beide genauso gut (oder schlecht). | ||
| + | > openssl req -rand / | ||
| + | > chmod 0600 / | ||
| + | > chown prosody: | ||
| + | |||
| + | Konfigurationsdatei bearbeiten (ggf. die Modul-Zeile an die richtige stelle eintragen, die E-Mail-Adresse und den Hostnamen eintragen): | ||
| + | > vi / | ||
| + | ... | ||
| + | plugin_paths = { "/ | ||
| + | ... | ||
| + | |||
| + | startfähig machen | ||
| + | > echo ' | ||
| + | |||
| + | ... hier meine Version: | ||
| + | <file lua / | ||
| + | -- Prosody Example Configuration File | ||
| + | -- | ||
| + | -- Information on configuring Prosody can be found on our | ||
| + | -- website at https:// | ||
| + | -- | ||
| + | -- Tip: You can check that the syntax of this file is correct | ||
| + | -- when you have finished by running this command: | ||
| + | -- | ||
| + | -- If there are any errors, it will let you know what and where | ||
| + | -- they are, otherwise it will keep quiet. | ||
| + | -- | ||
| + | -- The only thing left to do is rename this file to remove the .dist ending, and fill in the | ||
| + | -- blanks. Good luck, and happy Jabbering! | ||
| + | |||
| + | |||
| + | ---------- Server-wide settings ---------- | ||
| + | -- Settings in this section apply to the whole server and are the default settings | ||
| + | -- for any virtual hosts | ||
| + | |||
| + | -- This is a (by default, empty) list of accounts that are admins | ||
| + | -- for the server. Note that you must create the accounts separately | ||
| + | -- (see https:// | ||
| + | -- Example: admins = { " | ||
| + | admins = { " | ||
| + | |||
| + | -- Enable use of libevent for better performance under high load | ||
| + | -- For more information see: https:// | ||
| + | --use_libevent = true | ||
| + | |||
| + | -- Prosody will always look in its source directory for modules, but | ||
| + | -- this option allows you to specify additional locations where Prosody | ||
| + | -- will look for modules first. For community modules, see https:// | ||
| + | --plugin_paths = {} | ||
| + | plugin_paths = { "/ | ||
| + | |||
| + | -- This is the list of modules Prosody will load on startup. | ||
| + | -- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too. | ||
| + | -- Documentation for bundled modules can be found at: https:// | ||
| + | modules_enabled = { | ||
| + | |||
| + | -- Generally required | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | -- Not essential, but recommended | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | -- Nice to have | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | --" | ||
| + | --" | ||
| + | |||
| + | -- Admin interfaces | ||
| + | " | ||
| + | --" | ||
| + | |||
| + | -- HTTP modules | ||
| + | --" | ||
| + | --" | ||
| + | --" | ||
| + | |||
| + | -- Other specific functionality | ||
| + | --" | ||
| + | --" | ||
| + | --" | ||
| + | --" | ||
| + | --" | ||
| + | --" | ||
| + | --" | ||
| + | --" | ||
| + | --" | ||
| + | } | ||
| + | |||
| + | -- These modules are auto-loaded, | ||
| + | -- to disable them then uncomment them here: | ||
| + | modules_disabled = { | ||
| + | -- " | ||
| + | -- " | ||
| + | -- " | ||
| + | -- " | ||
| + | } | ||
| + | |||
| + | -- Disable account creation by default, for security | ||
| + | -- For more information see https:// | ||
| + | --allow_registration = false | ||
| + | allow_registration = true | ||
| + | |||
| + | -- Force clients to use encrypted connections? | ||
| + | -- prevent clients from authenticating unless they are using encryption. | ||
| + | |||
| + | c2s_require_encryption = true | ||
| + | |||
| + | -- Force servers to use encrypted connections? | ||
| + | -- prevent servers from authenticating unless they are using encryption. | ||
| + | |||
| + | s2s_require_encryption = true | ||
| + | |||
| + | -- Force certificate authentication for server-to-server connections? | ||
| + | |||
| + | s2s_secure_auth = false | ||
| + | |||
| + | -- Some servers have invalid or self-signed certificates. You can list | ||
| + | -- remote domains here that will not be required to authenticate using | ||
| + | -- certificates. They will be authenticated using DNS instead, even | ||
| + | -- when s2s_secure_auth is enabled. | ||
| + | |||
| + | --s2s_insecure_domains = { " | ||
| + | |||
| + | -- Even if you disable s2s_secure_auth, | ||
| + | -- certificates for some domains by specifying a list here. | ||
| + | |||
| + | --s2s_secure_domains = { " | ||
| + | |||
| + | -- Wenn diese pidfile-Sektion nicht an dieser Stelle steht, | ||
| + | -- dann bekommt man beim Start die folgende Fehlermeldung: | ||
| + | -- There is no ' | ||
| + | -- | ||
| + | -- Required for init scripts and prosodyctl | ||
| + | --pidfile = "/ | ||
| + | pidfile = "/ | ||
| + | |||
| + | -- Select the authentication backend to use. The ' | ||
| + | -- use Prosody' | ||
| + | |||
| + | authentication = " | ||
| + | |||
| + | -- Select the storage backend to use. By default Prosody uses flat files | ||
| + | -- in its configured data directory, but it also supports more backends | ||
| + | -- through modules. An " | ||
| + | -- additional dependencies. See https:// | ||
| + | |||
| + | --storage = " | ||
| + | |||
| + | -- For the " | ||
| + | --sql = { driver = " | ||
| + | --sql = { driver = " | ||
| + | --sql = { driver = " | ||
| + | |||
| + | |||
| + | -- Archiving configuration | ||
| + | -- If mod_mam is enabled, Prosody will store a copy of every message. This | ||
| + | -- is used to synchronize conversations between multiple clients, even if | ||
| + | -- they are offline. This setting controls how long Prosody will keep | ||
| + | -- messages in the archive before removing them. | ||
| + | |||
| + | archive_expires_after = " | ||
| + | |||
| + | -- You can also configure messages to be stored in-memory only. For more | ||
| + | -- archiving options, see https:// | ||
| + | |||
| + | -- Logging configuration | ||
| + | -- For advanced logging see https:// | ||
| + | log = { | ||
| + | info = " | ||
| + | error = " | ||
| + | -- " | ||
| + | -- " | ||
| + | } | ||
| + | |||
| + | -- Uncomment to enable statistics | ||
| + | -- For more info see https:// | ||
| + | -- statistics = " | ||
| + | |||
| + | -- Certificates | ||
| + | -- Every virtual host and component needs a certificate so that clients and | ||
| + | -- servers can securely verify its identity. Prosody will automatically load | ||
| + | -- certificates/ | ||
| + | -- For more information, | ||
| + | -- (from e.g. Let's Encrypt) see https:// | ||
| + | |||
| + | -- Location of directory to find certificates in (relative to main config file): | ||
| + | certificates = " | ||
| + | |||
| + | -- HTTPS currently only supports a single certificate, | ||
| + | --https_certificate = "/ | ||
| + | |||
| + | ----------- Virtual hosts ----------- | ||
| + | -- You need to add a VirtualHost entry for each domain you wish Prosody to serve. | ||
| + | -- Settings under each VirtualHost entry apply *only* to that host. | ||
| + | |||
| + | --VirtualHost " | ||
| + | VirtualHost " | ||
| + | |||
| + | --VirtualHost " | ||
| + | -- certificate = "/ | ||
| + | certificate = "/ | ||
| + | |||
| + | ------ Components ------ | ||
| + | -- You can specify components to add hosts that provide special services, | ||
| + | -- like multi-user conferences, | ||
| + | -- For more information on components, see https:// | ||
| + | |||
| + | ---Set up a MUC (multi-user chat) room server on conference.example.com: | ||
| + | --Component " | ||
| + | --- Store MUC messages in an archive and allow users to access it | ||
| + | --modules_enabled = { " | ||
| + | |||
| + | ---Set up an external component (default component port is 5347) | ||
| + | -- | ||
| + | -- External components allow adding various services, such as gateways/ | ||
| + | -- transports to other networks like ICQ, MSN and Yahoo. For more info | ||
| + | -- see: https:// | ||
| + | -- | ||
| + | --Component " | ||
| + | -- component_secret = " | ||
| + | </ | ||
| + | |||
| + | Ich habe die folgenden Sektionen angepasst: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ACHTUNG!\\ | ||
| + | Wenn die Sektion "'' | ||
| + | There is no ' | ||
| + | |||
| + | |||
| + | > / | ||
| + | Started | ||
| + | | ||
| + | > / | ||
| + | Prosody is running with PID 25683 | ||
| + | |||
| + | Wenn der Server gestartet ist, dann sollten die üblichen Ports offen sein: | ||
| + | > netstat -anNp tcp | fgrep ' | ||
| + | tcp4 | ||
| + | tcp6 | ||
| + | tcp4 | ||
| + | tcp6 | ||
| + | |||
| + | So, und jetzt einen XMPP-fähigen Client installieren und los geht der Spaß. | ||
| + | |||
| + | |||
| + | === " | ||
| + | |||
| + | <file bash about> | ||
| + | # prosodyctl about | ||
| + | Prosody 0.11.4 | ||
| + | |||
| + | # Prosody directories | ||
| + | Data directory: | ||
| + | Config directory: | ||
| + | Source directory: | ||
| + | Plugin directories: | ||
| + | / | ||
| + | / | ||
| + | |||
| + | |||
| + | # Lua environment | ||
| + | Lua version: | ||
| + | |||
| + | Lua module search paths: | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | Lua C module search paths: | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | LuaRocks: | ||
| + | |||
| + | # Network | ||
| + | |||
| + | Backend: select | ||
| + | |||
| + | # Lua module versions | ||
| + | lfs: LuaFileSystem 1.6.3 | ||
| + | lxp: LuaExpat 1.3.0 | ||
| + | socket: | ||
| + | ssl: 0.9 | ||
| + | </ | ||
| + | |||
| + | auch kann man noch ein paar Basis-Kontrollen durchlauen lassen: | ||
| + | # prosodyctl check | ||
| + | |||
| + | die Benutzer kann man so anlegen: | ||
| + | # prosodyctl adduser fritz@domain.lan | ||
| + | |||
| + | die Passwörter der Benutzer kann man so ändern: | ||
| + | # prosodyctl passwd fritz@domain.lan | ||
| + | |||
| + | einen Benutzer kann man so löschen: | ||
| + | # prosodyctl deluser fritz@domain.lan | ||
| + | |||
| + | |||
| + | ===== Jabber-Client ===== | ||
| + | |||
| + | |||
| + | ==== Unix/ | ||
| + | |||
| + | |||
| + | === " | ||
| + | |||
| + | **Leider unterstützt PidGin z.Z. (2019) noch nicht die OMEMO-Verschlüsselung! Als Alternative sei [[https:// | ||
| + | |||
| + | Als erstes laden wir [[https:// | ||
| + | |||
| + | Die Konfiguration erfolgt dann jetzt in sechs Bildern: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Das letzte Bild kommen nur, weil wir ein selbst signiertes Zertifikat verwenden. | ||
| + | |||
| + | Um eine Verbindung aufzbauen, benötigt man einen Kontakt. | ||
| + | Das Menü, zum hinzufügen von Kontakten kann man entweder mit '' | ||
| + | In diesem Menü muß der Kontakt in "'' | ||
| + | Die anderen Felder kann man ausfüllen, muss es aber nicht. | ||
| + | |||
| + | Jetzt bekommt der " | ||
| + | Wenn er das auch tut, wirst Du auch eine Anfrage zum authorisieren bekommen. | ||
| + | |||
| + | __Nur wenn beide sich gegenseitig auf diese Weise authorisiert haben, können sie sich gegenseitig Nachrichten schreiben.__ | ||
| + | |||
| + | |||
| + | ==== Windows ==== | ||
| + | |||
| + | [[https:// | ||
| + | * **'' | ||
| + | * [[https:// | ||
| + | * **'' | ||
| + | * [[https:// | ||
| + | * **'' | ||
| + | |||
| + | |||
| + | ==== Android ==== | ||
| + | |||
| + | * **'' | ||
| + | * [[https:// | ||
| + | * **'' | ||
| + | |||
