Internet è il postino dei nostri tempi che nessun cane azzannerà.
Proseguiamo con la "noiosa" parte che prevede la configurazione del servizi accessori a jabberd. A vedere qui questa lista di file di configurazione sembra tutto facile, ma vi assicuro che non ci sono arrivato in cinque minuti... ma quanto è buona la pappa pronta ? :-D
Non mi dilungo sui principi di funzionamento di Jabber, invito i più curiosi a leggere la documentazione ufficiale non di facile reperibilità, confesso che ci ho messo un po' a trovarla. Ma magari sono un po' svampito io.
Bando alle ciance, iniziamo.
I file di configurazione di jabberd 2 sono in formato xml e ne esiste uno per ogni "componente" (o "pluging", o "servizio" non sò mai come chiamarli) che usiamo. Jabberd 2 ne fornisce cinque di base a cui ne abbiamo aggiunto noi uno manualmente (muc, Multi User Conference). Dei "componenti" di base a noi ne serviranno solo tre a cui aggiunegeremo, appunto, in nostro muc.
Jabberd 2 supporta diversi "formati" o "schemi" per autenticazione e per la memorizzazione, in questo caso io ho scelto PAM per l'autenticazione (in questo modo la base utente/password è sempre la stessa che già uso, ma se non vi và potreste usare MySQL ad esempio) e MySQL come "scatolone" dove salvare i dati delle sessioni di chat e dei "roster" degli utenti (che sono il variopinto modo in cui jabber chiama la lista dei contatti).
Dobbiamo innanzitutto decidere il nome del nostro server IM e fare in modo che questo sia risolvibile dal DNS. Nel mio caso ho due nomi :
Se avete seguito la mia guida DNS/DHCP basta inserirli nel file /etc/dnshost:
192.168.20.1 archi im rooms
Iniziamo con il creare le tabelle e il database. Non ci dobbiamo inventare nulla, Jabberd già mi fornisce un comodo dump che mi crea al volo tutto il necessario. MySQL dovrebbe essere già installato, altrimenti fatelo ora come già spiegato nel capitolo LAMP.
Colleghiamoci al database server :
sudo mysql -uroot -p
\. /usr/share/jabberd/db-setup.mysql
\. /admin/mu-conference_0.7/mu-conference.sql
GRANT ALL PRIVILEGES ON jabberd2.* TO 'jabber'@'localhost' IDENTIFIED BY 'secret' WITH GRANT OPTION;
Configuriamo PAM fornendo il file delle "regole". In questo caso stò usando openLDAP per l'autenticazione:
sudo nano /etc/pam.d/jabberd
#%PAM-1.0
auth sufficient pam_ldap.so
auth required pam_unix.so nullok
account sufficient pam_ldap.so
account required pam_unix.so
Nota : se non usate openLDAP come schema di autenticazione si può usare un duplicato del file /etc/pam.d/other. Basta copiarlo : cp /etc/pam.d/other /etc/pam.d/jabberd.
In questo modo verranno usati gli utenti locali Linux di /etc/passwd.
Un po' di sicurezza non guasta, anzi, usando PAM per l'autenticazione è quasi un obbligo crittografare il colloquio specie se vogliamo fare in modo che utenti "mobili" esterni di colleghino al server. Ecco come fare.
Ricordo che la chiave generata è "self-signed", cioè autofirmata e dunque non rilasciata da un ente apposito autorizzato. Questo produce un warning nel client (almeno in PSI che ho usato io) che andremo a disattivare. Sopportabile, ma i più smaliziati potrebbero voler acquistare una chiave vera. Libertà di decisione.
Per generare la chiave spostiamoci in /etc/jabberd e digitiamo il comando (su una unica riga):
openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem
Ora rimuoviamo la passphrase dalla nostra chiave privata (digitando la passphrase di prima) :
openssl rsa -in privkey.pem -out privkey.pem
cat privkey.pem >> server.pem
rm privkey.pem
chown jabber:jabber /etc/jabberd/server.pem
chmod 640 /etc/jabberd/server.pem
La prossima volta ci prenderemo cura finalmente della configurazione di Jabberd. Nel frattempo potete approfondire leggendo come funziona la sua architettura. Molto interessante e istruttivo, ve lo consiglio.
A presto.
Recent comments
1 min 12 sec ago
1 week 1 day ago
3 weeks 20 hours ago
4 weeks 3 days ago
7 weeks 6 days ago
13 weeks 1 hour ago
13 weeks 3 days ago
15 weeks 5 days ago
16 weeks 3 days ago
19 weeks 22 hours ago