====== ejabberd ======
===== Configurazione =====
La configurazione va in **''/etc/ejabberd/ejabberd.cfg''**, in particolare si deve definire l'utente amministratore e il nome di dominio:
%% Admin user
{acl, admin, {user, "niccolo", "rigacci.org"}}.
%% Hostname
{hosts, ["rigacci.org"]}.
Con questa configurazione dovrebbe essere possibile puntare il browser su **''%%http://:5280/admin%%''** e loggarsi con l'utente ''%%niccolo@rigacci.org%%''.
===== Certificato SSL =====
Vedere gli appunti per [[ssl_cert#ejabber|creare il certificato SSL]].
===== Migrazione ejabberd =====
Sul vecchio server Lutra (versione ejabberd 2.1.5) si esegue il backup del database:
ejabberdctl backup /tmp/ejabberd-lutra.backup
scp /tmp/ejabberd-lutra.backup paguma:/tmp
Sul nuovo server Paguma (versione ejabberd 2.1.10) si deve modificare il nome del nodo prima di effettuare il restore:
chown ejabberd.ejabberd /tmp/ejabberd-lutra.backup
ejabberdctl mnesia_change_nodename ejabberd@lutra ejabberd@paguma \
/tmp/ejabberd-lutra.backup /tmp/ejabberd-paguma.backup
ejabberdctl install_fallback /tmp/ejabberd-paguma.backup
ejabberdctl stop
ps uax | grep ejabberd
# Kill all ejabberd processes:
kill ...
/etc/init.d/ejabberd start
Se fosse necessario cancellare il database di ejabberd:
/etc/init.d/ejabberd stop
ps uax | grep ejabberd
# Kill all ejabberd processes:
kill ...
rm /var/lib/ejabberd/*
/etc/init.d/ejabberd start
===== Problema del nome FQDN e autorizzazione negata a Pidgin =====
Si può incappare in un errore di autorizzazione se il nome host usato dal client Pidgin per la connessione non corrisponde al nome FQDN usato dal server stesso.
Se in Pidgin non viene indicato un nome nel //Connect server// (impostazioni avanzate), viene interrogato il DNS per il record SVR **''_xmpp-client._tcp.''**, dove ''%%%%'' è la parte alla destra della "@" nel nome dell'account.
**ATTENZIONE** la risoluzione di un record SVR **potrebbe non funzionare**, ad esempio con un DNS proxy come **dnsmasq**. Per verificare il buon funzionamento:
host -t SRV _xmpp-client._tcp.faunalia.it
Il client Pidgin quindi contatta tale host. Se il nome restituito dal record SRV non corrisponde al FQDN dell'host stesso (eseguire il comando **''hostname -f''** sul server), l'autorizzazione fallisce in quanto il digest-uri viene
calcolato su due nomi di host diversi dal client e dal server, questo il messaggio di errore in ''/var/log/ejabberd/ejabberd.log'':
D(<0.394.0>:cyrsasl_digest:72) : User login not authorized because digest-uri seems invalid:
"xmpp/xmpp.faunalia.it" (checking for Host "faunalia.it", FQDN "paguma.faunalia.it")
Bisogna aver attivato un livello di debug adeguato in ''/etc/ejabberd/ejabberd.cfg'':
{loglevel, 5}.
In definitiva Pidgin **deve contattare l'hostname FQDN esatto del server stesso**, non un suo alias. Lo può fare sia con le impostazioni //Connect server// oppure tramite risoluzione del record SRV nel DNS.
Ecco un esempio di come configurare il DNS:
_jabber._tcp IN SRV 5 0 5269 paguma
_xmpp-server._tcp IN SRV 5 0 5269 paguma
_xmpp-client._tcp IN SRV 5 0 5222 paguma
----
echo 'Profilo Google+' . "\n";