Installa un server XMPP (Jabber) con Prosody [Aggiornato]


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


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   KZKG ^ Gaara suddetto

    Mi piace ... vediamo se una volta per tutte cambio OpenFire con ejabberd o questo Prosody 🙂

    1.    vivace suddetto

      Sto già facendo i test in VirtualBox proprio per quello .. perché se ti aspettiamo figlio mio .. ¬¬

      1.    KZKG ^ Gaara suddetto

        ^ - ^ U ... hehe ...
        Ora invio un ticket al provider di hosting chiedendo il record DNS di cui abbiamo bisogno per rimuovere il "jabber" .______

        1.    vivace suddetto

          Va bene. Jabber, IRC, Facebook, Gtalk, non so come o dove, ma connettiti ..

  2.   Ernest Infante suddetto

    Com'è l'integrazione con LDAP di Prosody? e il BD?

  3.   marcisce87 suddetto

    un paio di immagini per i meno informati non sarebbe male ^. ^

  4.   cacciatore suddetto

    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.

  5.   auroszx suddetto

    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? 😛

    1.    cacciatore suddetto

      Abilita la registrazione nella configurazione e dallo stesso client jabber vengono registrati spuntando l'opzione per creare un account sul server.

      allow_registration = vero;

  6.   Ferran suddetto

    Sto cercando pacchetti prosody in slackware, ottimo tutorial. Saluti

  7.   Arturo Molin suddetto

    Come posso verificare se un utente può autenticarsi? o come posso sapere se un utente è connesso al server?

  8.   @Jlcmux suddetto

    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?

    1.    ltd suddetto

      stesso dubbio! lo sapevi alla fine ?? Inizio con la prosodia ...

    2.    cacciatore suddetto

      Molto semplice, nel pidgin specificare l'ip del server nelle opzioni avanzate, l'altra opzione è montare un dns sulla propria LAN.

  9.   Francisco suddetto

    Questo argomento è molto interessante e volevo sapere se Prosody supporta i websocket. Sono interessato a creare un client web xmpp

    1.    @Jlcmux suddetto

      Potresti vedere questo. http://code.google.com/p/xmppwebchat/

  10.   Inukaz suddetto

    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.