User Tools

Site Tools


doc:appunti:linux:sa:ejabberd

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://<host>:5280/admin e loggarsi con l'utente niccolo@rigacci.org.

Certificato SSL

Vedere gli appunti per 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.<domain>, dove <domain> è 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

<php>echo '<a rel=“me” href=“https://profiles.google.com/100662196154811835450”>Profilo Google+</a>' . “\n”;</php>

doc/appunti/linux/sa/ejabberd.txt · Last modified: 2013/02/02 16:44 by niccolo