Hace unas semanas se comenta que ya es posible en XMPP la federación entre onions, además de un onion con un no-onion, y al revés.

Lo primero es tener Prosody instalado, aquí podeis ver como hacerlo.

Ahora crearemos nuestro hidden de Tor, en el torrc añadimos esto:

DataDirectory /var/lib/tor HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServicePort 5269 127.0.0.1:5269 HiddenServicePort 5222 127.0.0.1:5222

Y reiniciamos Tor:

/etc/init.d/tor restart

Ahora ya tenemos nuestro hidden escuchando en los puertos de XMPP.

Instalamos las dependencias necesarias para mod_onions:

apt-get install liblua5.1-bitop0 liblua5.1-bitop-dev lua-bitop

Instalamos mercurial y clonamos los modulos de prosody:

apt-get install mercurial

hg clone https://hg.prosody.im/prosody-modules/ prosody-modules

Copiamos el módulo que nos interesa al directorio correspondiente:

cp prosody-modules/mod_onions/mod_onions.lua /usr/lib/prosody/modules/

Al Virtualhost que ya tengamos sólamente tenemos que añadirle esto:

VirtualHost "elbinario.net" modules_enabled = { "onions" };

Luego añadimos otro con este contenido:

VirtualHost "binario5yvaed5ie.onion" modules_enabled = { "onions" }; onions_tor_all = true onions_only = false onions_map = { ["jabber.calyxinstitute.org"] = "ijeeynrc6x2uy5ob.onion"; ["riseup.net"] = "4cjw6cwpeaeppfqz.onion"; ["autistici.org"] = "wi7qkxyrdpu5cmvr.onion"; ["inventati.org"] = "wi7qkxyrdpu5cmvr.onion"; ["jabber.otr.im"] = "5rgdtlawqkcplz75.onion"; }

Si tenemos MUC y queremos que sea accesible via .onion, lo dejamos así:

Component "salas.elbinario.net" "muc" modules_enabled = { "onions" } onions_tor_all = true onions_only = false

Sólo nos queda reiniciar prosody y disfrutar de Tor!

prosodyctl restart