XMPP

I tuoi amici nerd ti bullizzano perché usi ancora software proprietario come Telegram e non sei migrato a Matrix?
Rilancia hostando con Prosody il tuo server XMPP personale! (Sì, il vecchio caro Jabber di fine anni ’90…)

Consumando solo una 40ina di MB di RAM e pochi MB di disco può girare su piccoli server virtuali, sistemi embedded, hardware di recupero…
Grazie alle librerie di gateway Slidge puoi creare dei bridge verso altri network come WhatsApp o Telegram proprio come fa Matrix.

Per rendere il server XMPP ancora più sicuro e far rosicare i tuoi amici consiglio di non renderlo disponibile in chiaro su Internet, ma tramite reti anonime come TOR, Yggdrasil o I2P.

Basterà installare il pacchetto “prosody” sulla vostra distro preferita e configurarlo come segue:

Se vogliamo lasciare che i nuovi utenti possano creare un account basterà scrivere nel file di configurazione /etc/prosody/prosody.cfg.lua

allow_registration = true

Altrimenti (scelta consigliata se vogliamo gestire una piattaforma per pochi intimi) possiamo creare manualmente gli utenti col comando

prosodyctl adduser

A seguire un esempio di file prosody.cfg.lua
È stata permessa la creazione di utenti e oltre al server principale su Yggdrasil ci sono due virtualhost su TOR e I2P.
Non ho abilitato tls perché non mi serve dato che lo uso su reti già cifrate, mentre il modulo “muc” serve per la creazione di stanze

/etc/prosody/prosody.cfg.lua

daemonize = true
pidfile = "/run/prosody/prosody.pid"

modules_enabled = {
"roster"; "saslauth";
-- "tls";
"dialback"; "disco";#/etc/prosody/prosody.cfg.lua
"carbons"; "pep";
"private"; "blocklist";
"vcard4"; "vcard_legacy";
"version"; "uptime";
"time"; "ping";
"admin_shell";
--"muc";
}

allow_registration = false
authentication = "internal_hashed"
storage = "internal"
log = {
info = "/var/log/prosody/prosody.log";
error = "/var/log/prosody/prosody.err";
}
c2s_require_encryption = false
s2s_secure_auth = false
interfaces = { "127.0.0.1", "::1" }
VirtualHost "blablablablabalbalblablablablabalblabalbalblablabalba.b32.i2p"
enabled = true
Component "conference.blablablablabalbalblablablablabalblabalbalblablabalba.b32.i2p" "muc"
muc_room_cache_size = 100
restrict_room_creation = "local"
VirtualHost "blablablablabalbalblablablablabalblabalbalblablabalbalbalb.onion"
enabled = true
Component "conference.blablablablabalbalblablablablabalblabalbalblablabalbalbalb.onion" "muc"
muc_room_cache_size = 100
restrict_room_creation = "local"

A seguire anche le modifiche sui file di configurazione di TOR e I2P

/etc/tor/torrc

HiddenServiceDir /var/lib/tor/xmpp/
HiddenServicePort 5222 127.0.0.1:5222

/etc/i2pd/tunnels.conf

[xmpp]
type = server
host = 127.0.0.1
port = 5222
keys = xmpp.dat