Installare e configurare ejabberd su ubuntu server

In questo tutorial vedremo come installare e configurare ejabberd su ubuntu server. La versione di ubuntu a cui faccio riferimeno è la 10.04 ma la maggior parte degli step dovrebbe funzionare anche su altre versioni di ubuntu, nonché sulle macchine debian.

Ejabberd è uno dei server XMPP più famosi e più utilizzati in circolazione. Nonostante questo la documentazione a riguardo (soprattutto in italiano) è scarna se non proprio inesistente.
1. Preparare il sistema

Per sicurezza, prima di installare ejabberd, assicuriamoci che il sistema sia aggiornato. Eseguiamo, quindi, i due comandi:

sudo apt-get update

sudo apt-ge upgrade

2. Installare ejabberd

Ora possiamo procedere con linstallazione di ejabberd direttamente dai repository di ubuntu, con il comando:

sudo apt-get install ejabberd

Molto probabilmente linstallazione si porterà dietro un bel po di pacchetti aggiuntivi, soprattutto quelli legati al linguaggio erlang, con il quale ejabberd è scritto.
3. Qualche test veloce

Una volta completata linstallazione, possiamo gestire il server ejabberd con il comando:

sudo /etc/init.d/ejabberd

Che può prendere i parametri stop, start o restart in base alloperazione che vogliamo compiere.
Inoltre, è possibile controllare se il server è avviato o meno, controllando la presenza del processo beam tra quelli in esecuzione, con il comando:

ps -e | grep beam

4. Configurazione dellhost

Il file di configurazione di ejabberd si trova a questo path:

/etc/ejabberd/ejabberd.cfg

Aprite questo file con il vostro editor di testo preferito (ricordandovi di essere root) e iniziamo col modificarlo.
Fate attenzione, questo file è scritto in una sintassi terribile e rischiate di sputtanare tutto dimenticandovi una virgola o una parentesi.

La prima cosa da modificare è lhost. Portatevi quindi nella sezione Hostname dove troverete già lhost localhost inserito. Se avete intenzione di fare dei test in locale potete lasciarlo, altrimenti cancellatelo.
In questa sezione va inserito lhost del sito sul quale girerà il server ejabberd. Supponendo che stiate mettendo in piedi una chat per www.miosito.it dovrete inserire lhost miosito.it.

Una cosa importante (che nessuno dice) è che in questa sezione va indicato obbligatoriamente anche il nome host della macchina sulla quale il server risiede. Quindi, sempre supponendo che stiamo lavorando per il dominio miosito.it, se la macchina dove sta girando ubuntu si chiama miosito-serverweb dovremmo inserire nel file di configurazione questa riga:

{hosts, [“localhost”, “miosito-serverweb”, “miosito.it”]}

Se avete più domini (es. miosito.com, miosito.org) basta semplicemente aggiungerli sulla stessa riga.
5. Configurazione delle porte

Ejabberd ha tutta una serie di funzionalità legate al mondo delle chat (chat anonima, chat di gruppo, protocolli aggiuntivi, chat SSL, ecc). Per ognuno di questi servizi è necessario lasciare una porta in ascolto.

Spostiamoci più in basso, nel file di configurazione, fino ad arrivare nella sezione Listening ports dove troverete già una serie di porte configurate e abbondantemente commentate.

Se non volete utilizzare nessuno dei servizi aggiuntivi, le uniche due porte che dovete lasciare attive sono la 5222 e la 5280 necessarie, rispettivamente, per la connessione da client XMPP (es. iChat, Google Talk, Kopete, ecc.) e da client web (es. jappix, JWchat, Candy, ecc).
6. Configurazione dei moduli

Come ho detto prima, ejabberd ha tantissime funzionalità aggiuntive. Ad ognuna di essa è legata un modulo. Scendiamo un altro po nel file di configurazione fino a portarci nella sezione Modules dove troveremo lelenco di moduli disponibili. Alcuni moduli sono commentati, altri no. Fate riferimento alla documentazione sui moduli, per sapere cosa fa esattamente ognuno di essi.

Date unocchiata allelenco di moduli e disattivate quelli non necessari, facendo attenzione ad eventuali dipendenze. Consiglio di disattivare i moduli non necessari perché in questo modo si alleggerisce notevolmente il carico del server XMPP.
7. Admin web

Ejabberd offre anche un pannello di amministrazione web, abbastanza scarno a dire la verità. Se volete utilizzarlo (ad es. per vedere le statistiche di utilizzo della chat) dovete prima aggiungere una riga nel file di configurazione per indicare quale utente ha il permesso di accedervi. Aggiungete allinizio o alla fine del file questa riga (di solito si trova allinizio):

{acl, admin, {user, utente, miosito.it}}

Dove al posto dellutente utente dovrete inserire lusername dellutente che avrà i permessi di amministratore e, ovviamente, al posto di miosito.it dovrete aggiungere il dominio inserito al punto 4.

Ricordate che lutente in questione deve essere un utente registrato a ejabberd e quindi presente in database.

Per accedere al pannello di amministrazione web, digitate il seguente indirizzo nel vostro browser:

http://www.miosito.it:5280/admin

Conclusione

Abbiamo Finito! Nei prossimi giorni ci sarà un altro articolo su come utilizzare ejabberd con un database mysql al posto di quello interno (mnesia). Per ora vi lascio con alcuni link utili per approfondire largomento.