Molti di noi usano Gtalk o Facebook Chat senza sapere che il protocollo che usiamo per comunicare non è altro che XMPP (Protocollo di messaggistica e presenza estensibile) che è anche aperto.
En GNU / Linux abbiamo diverse applicazioni per configurare il nostro server XMPP o Jabber come è anche noto, alcuni più complicati di altri durante la configurazione. Ad esempio, abbiamo eiaculato, che è abbastanza semplice e leggero, ma se vogliamo ottimizzare molto di più, lo abbiamo Prosodia.
Allora ti lascio un articolo pubblicato in GUTL da uno dei nostri utenti (Hugo) e dove ci mostra come configurare il nostro server XMPP con Prosodia.
Introduzione
Quando si installa un server XMPP (Jabber) per la messaggistica interna su una rete locale, molti scelgono jabber, ejabberd o openfire, ma sebbene funzionanti, queste applicazioni possono richiedere molte risorse.
Se hai una rete piccola o media e desideri solo un semplice servizio di messaggistica istantanea, fortunatamente esiste un'alternativa server leggera chiamata prosody, che sebbene sia programmata in LUA che è un linguaggio interpretato, secondo i suoi sviluppatori funziona molto bene grazie a luajit.
Questo breve tutorial spiegherà come installare e configurare prosody su Debian stable.
Preparazioni e installazione
I pacchetti Prosody si trovano nel repository Debian, ma gli sviluppatori di questo software hanno preparato un repository per Debian e derivati contenente pacchetti recenti e moduli aggiuntivi, che possiamo usare come segue:
echo "deb http://packages.prosody.im/debian stabile principale" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - aggiornamento sudo aptitude
Una volta aggiunto il repository, possiamo procedere all'installazione di prosody (aggiungendo inoltre i moduli da utilizzare sasl
come meccanismo di autenticazione se necessario, che consente di integrare la prosodia con pam
, LDAP, Ecc).
sudo aptitude install sasl2-bin libsasl2-modules-ldap prosody liblua5.1- {sec0, cyrussasl0, event-prosody0}
Quindi procediamo con la generazione di certificati autofirmati per il nostro dominio:
cd / etc / prosody / certs sudo openssl req -new -x509 -days 1095 -nodes -out "miodominio.cu.cert" -keyout "miodominio.cu.key"
Il wizard ci chiederà una serie di dati, di cui quello veramente essenziale è “Common Name (es. Server FQDN o IL TUO nome) "dove dobbiamo mettere il nostro dominio, come lo useremo nella sezione VirtualHost file di configurazione.
Inoltre, se sul server in cui installiamo prosody abbiamo configurato iptables
con i criteri di negazione predefiniti, dobbiamo aprire le porte richieste per la nostra rete, ad esempio:
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m state --state ESTABLISHED, RELATED -j ACCEPT sudo iptables -A INPUT - i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m multiport --dports 5222,5223,5269 -m state --state NEW -j ACCEPT
Configurazione
Successivamente, procediamo a modificare alcune righe del file di configurazione, per il quale dobbiamo modificare /etc/prosody/prosody.cfg.lua
quindi sembra così:
-
ports = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - l'opzione predefinita è basata sulla funzione select (), invece libevent usa epoll (), che è più efficiente e scalabile. modules_enabled = {"roster"; "saslauth"; "tls"; "dialback"; "disco"; "privato"; "vcard"; "privacy"; "compressione"; "legacyauth"; "versione"; "uptime"; "tempo"; "ping"; "pep"; "Registrati"; - non disabilitare questo modulo, permette non solo di registrarsi ma anche di cambiare password "ad hoc"; "admin_adhoc"; "posix"; "bosh"; - aggiungi questa riga se vuoi abilitare jabber su http}; allow_registration = false; - disabilitato per sicurezza - cambia in true se vuoi abilitare la creazione di account dal client stesso ssl = {key = "/etc/prosody/certs/localhost.key"; certificate = "/etc/prosody/certs/localhost.cert"; } storage = "internal"; - lo storage di default è un file xml - opzionalmente possiamo usare il metodo di storage "sql" - questo permette di usare SQLite, MySQL o PostgreSQL come backend (sebbene debbano essere aggiunti alcuni parametri) authentication = "internal_hashed"; - possiamo usare "internal_plain" se il client non supporta SCRAM-SHA-1 - se vogliamo usare il metodo sasl per utilizzare successivamente LDAP, dobbiamo usare "cyrus" log = {error = "/ var / log / prosody / prosody. err "; info = "/var/log/prosody/prosody.log"; } pidfile = "/var/run/prosody/prosody.pid"; VirtualHost "localhost" VirtualHost "miodominio.cu" ssl = {key = "/etc/prosody/certs/mydomain.cu.key"; certificate = "/etc/prosody/certs/mydomain.cu.crt"; }
Una volta modificato il file di configurazione, riavviamo il servizio:
sudo servizio prosody subtract
Ora procederemo con la creazione degli account. In questo caso, poiché nel file di configurazione disabilitiamo la registrazione dai client, gli account dovranno essere creati manualmente sul server. Il metodo di autenticazione che scegliamo nella configurazione (internal_hashed) fa in modo che le password non vengano salvate in chiaro ma con il meccanismo SCRAM-SHA-1
. Se il client di messaggistica che intendiamo utilizzare non supporta questo meccanismo, nella configurazione potrebbe essere utilizzato il metodo "internal_plain".
Per prima cosa creeremo gli account degli amministratori del servizio che dichiariamo nella configurazione (dichiararli non implica che vengano creati automaticamente):
sudo prosodyctl adduser juan@mydomain.cu sudo prosodyctl adduser pedro@mydomain.cu
Possiamo usare lo stesso comando per qualsiasi altro account che vogliamo creare.
Infine, controlliamo che il servizio sia in esecuzione:
stato di sudo prosodictl
Dovremmo ricevere un messaggio come il seguente:
Prosody funziona con PID 1310
Configurazione client
La configurazione dipende da ogni client, ma in generale i dettagli sono semplici. Ad esempio, per Pidgin:
Scheda "Base"
Nome utente: Giovanni
dominio: miodominio.cu
caratteristiche: pc-john
Scheda "Avanzate"
Sicurezza della connessione: Usa la crittografia se possibile
Porta di connessione: 5222
Connetti al server: myserver.mydomain.cu
note:
È possibile trovare ulteriori informazioni (incluso l'uso di Cyrus SASL con LDAP e come creare voci da DNS) On questo articolo dal Wiki Debian.
Un utente commenta tramite DesdeLinux quello per interrompere davvero il servizio che dovevi eseguire pkill lua5.1
Mi piace ... vediamo se una volta per tutte cambio OpenFire con ejabberd o questo Prosody 🙂
Sto già facendo i test in VirtualBox proprio per quello .. perché se ti aspettiamo figlio mio .. ¬¬
^ - ^ U ... hehe ...
Ora invio un ticket al provider di hosting chiedendo il record DNS di cui abbiamo bisogno per rimuovere il "jabber" .______
Va bene. Jabber, IRC, Facebook, Gtalk, non so come o dove, ma connettiti ..
Com'è l'integrazione con LDAP di Prosody? e il BD?
Ecco come farlo: http://blog.marc-seeger.de/2009/12/30/setting-up-prosody-to-authenticate-against-ldap/
un paio di immagini per i meno informati non sarebbe male ^. ^
A casa ho la prosodia, l'ho installata da testare e mi è piaciuta per la sua semplicità. Un dettaglio quando fermo il server devo fare un pkill lua5.1 per fermarlo davvero.
Wow, questo è interessante. C'è un modo in cui altre persone possono creare utenti tramite una GUI (potrebbe essere web)? Come faresti per ottenere un dominio per utilizzarlo? 😛
Abilita la registrazione nella configurazione e dallo stesso client jabber vengono registrati spuntando l'opzione per creare un account sul server.
allow_registration = vero;
Sto cercando pacchetti prosody in slackware, ottimo tutorial. Saluti
Come posso verificare se un utente può autenticarsi? o come posso sapere se un utente è connesso al server?
Sono riuscito 😀 Sono stato in grado di installarlo e configurarlo correttamente. Installa il server su un PC e il client è un altro PC. ma ho un problema. Affinché il cliente sappia che il mio server con il dominio (medellinlibre.org) è LOCALE. Devo aggiungere al file hosts IPDELSERVIDOR medellinlibre.org. In caso contrario, non si connette, per ovvi motivi. La mia domanda è se non c'è modo per tutti i PC sulla rete di sapere per impostazione predefinita che questo dominio si trova sulla LAN a un dato IP?
stesso dubbio! lo sapevi alla fine ?? Inizio con la prosodia ...
Molto semplice, nel pidgin specificare l'ip del server nelle opzioni avanzate, l'altra opzione è montare un dns sulla propria LAN.
Questo argomento è molto interessante e volevo sapere se Prosody supporta i websocket. Sono interessato a creare un client web xmpp
Potresti vedere questo. http://code.google.com/p/xmppwebchat/
Ciao, non hai una versione del tutorial con una configurazione che è solo per una intranet domestica? Nessun dominio o qualcosa del genere. appena così che solo 1 computer con Liñux è un server e gli altri computer che si connettono ad esso
È solo per poter chattare tra i computer sulla intranet tramite pidgin.