Instal·lar un servidor de XMPP (Jabber) amb Prosody [Actualitzat]


molts fem servir Gtalk o Facebook Xat sense saber que el protocol que fem servir per comunicar-nos no és altre que XMPP (Extensible Messaging and Presence Protocol) que és obert a més.

En GNU / Linux tenim diverses aplicacions per a muntar el nostre propi servidor de XMPP o Jabber com també se li coneix, unes més complicades que altres a l'hora de configurar. Per exemple, tenim ejabberd, El qual és bastant simple i lleuger, però si volem optimitzar molt més, tenim Prosòdia.

A continuació els deixo un article publicat en GUTL per un del nostre usuaris (Hugo) i on ens mostra com configurar el nostre propi servidor XMPP amb Prosòdia.

Introducció

A l'hora d'instal·lar un servidor de el protocol XMPP (Jabber) per missatgeria interna a una xarxa local, molts trien jabber, ejabberd o Openfire, però encara funcionals, aquestes aplicacions poden arribar a demanar prou recursos.

Si un posseeix una xarxa petita o mitjana i només desitja un simple servei de missatgeria instantània, afortunadament hi ha una alternativa de servidor lleuger anomenada Prosody, que encara que està programat en LUA que és un llenguatge interpretat, segons els seus desenvolupadors funciona molt bé gràcies a luajit.

Aquest petit tutorial explicarà com instal·lar i configurar Prosody en Debian stable.

Preparatius i instal·lació

Els paquets de Prosody es troben en el repositori de Debian, però els desenvolupadors d'aquest programari han preparat un repositori per a Debian i derivades que conté paquets recents i mòduls addicionals, que podem utilitzar de la següent manera:

echo "deb http://packages.prosody.im/debian stable main" | suo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - suo aptitude update

Un cop afegit el repositori, podem procedir a instal·lar Prosody (addicionalment agregant mòduls per utilitzar sasl com a mecanisme d'autenticació en cas necessari, la qual cosa permet integrar Prosody amb pam, LDAPEtc.).

suo aptitude install sasl2-bin libsasl2-modules-ldap Prosody liblua5.1- {sec0, cyrussasl0, event-prosody0}

Procedim llavors a generar certificats autofirmados per al nostre domini:

cd / etc / Prosody / certs suo openssl req -NEW -x509 -days 1095 -nodes out "midominio.cu.cert" -keyout "midominio.cu.key"

L'assistent ens preguntarà una sèrie de dades, dels quals el realment imprescindible és "Common Name (eg server FQDN or YOUR name) "on hem de posar el nostre domini, com mateix ho utilitzarem en la secció VirtualHost de l'arxiu de configuració.

Addicionalment, si al servidor on vam instal·lar Prosody tenim configurat iptables amb polítiques de denegació per defecte, necessitem obrir els ports requerits per a la nostra xarxa, per exemple:

suo iptables -A INPUT -i ho -j ACCEPT suo iptables -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m state --state ESTABLISHED, RELATED -j ACCEPT suo 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

Configuració

A continuació, procedim a modificar algunes línies de l'arxiu de configuració, per a això hem d'editar /etc/prosody/prosody.cfg.lua de manera que quedi aproximadament així:

ports = {5222, 5269} ssl_ports = {5223} admins = { "juan@midominio.cu", "pedro@midominio.cu"} use_libevent = true; - l'opció per defecte es basa en la funció select (), en canvi libevent utilitza epoll (), que és més eficient i escalable. modules_enabled = { "roster"; "Saslauth"; "Tls"; "Dialback"; "Disc"; "Private"; "Vcard"; "Privacy"; "Compression"; "Legacyauth"; "Version"; "Uptime"; "Time"; "Ping"; "Pep"; "Register"; - no desactivar aquest mòdul, permet no només registrar sinó també canviar contrasenyes "adhoc"; "Admin_adhoc"; "Posix"; "Bosh"; - afegir aquesta línia si es vol habilitar jabber sobre http}; allow_registration = false; - deshabilitat per seguretat - canviar a true si es vol habilitar la creació de comptes des del propi client SSL = {key = "/etc/prosody/certs/localhost.key"; certificate = "/etc/prosody/certs/localhost.cert"; } Storage = "internal"; - l'emmagatzematge per defecte és un arxiu xml - opcionalment podem utilitzar el mètode d'emmagatzematge "sql" - això permet utilitzar SQLite, MySQL o PostgreSQL com backend (encara que han d'agregar certs paràmetres) authentication = "internal_hashed"; - podem utilitzar "internal_plain" si el client no suporta SCRAM-SHA-1 - si volem utilitzar el mètode sasl per posteriorment emprar LDAP, hem d'utilitzar "Cyrus" log = {error = "/ var / log / Prosody / Prosody. err "; info = "/var/log/prosody/prosody.log"; } PidFile = "/var/run/prosody/prosody.pid"; VirtualHost "localhost" VirtualHost "midominio.cu" ssl = {key = "/etc/prosody/certs/midominio.cu.key"; certificate = "/etc/prosody/certs/midominio.cu.crt"; }

Un cop modificat l'arxiu de configuració, reiniciarmos el servei:

suo service Prosody restar

Ara procedirem a crear els comptes. En aquest cas, com en el fitxer de configuració deshabilitem el registre des dels clients, caldrà crear els comptes manualment al servidor. El mètode d'autenticació que triem en la configuració (internal_hashed) fa que les contrasenyes no es guarden en clar sinó amb el mecanisme SCRAM-SHA-1. Si el client de missatgeria que pretenem utilitzar no suporta aquest mecanisme, podria utilitzar-se el mètode "internal_plain" en la configuració.

Primerament crearem els comptes dels administradors de el servei que declarem en la configuració (declarar-les no implica que es creïn automàticament):

suo prosodyctl adduser juan@midominio.cu suo prosodyctl adduser pedro@midominio.cu

Podem utilitzar el mateix ordre per a qualsevol altre compte que desitgem crear.

Finalment, vam comprovar que el servei està corrent:

suo prosodyctl estatus

Hauríem obtenir un missatge com el següent:

Prosody is running with PID 1310

Configuració de el client

La configuració depèn de cada client, però en general els detalls són simples. Per exemple, per Pidgin:

La pestanya «Bàsica»

Nom d'usuari: Joan
domini: midomini.cu
recurs: pc-juan

Pestanya «Avançades»

Seguretat de la connexió: Utilitzar xifrat si és possible
Port de connexió: 5222
Connectar amb el Servidor: miservidor.midomini.cu

notes

Es pot trobar més informació (incloent l'ús de Cyrus SASL amb LDAP i com crear entrades de DNS) En aquest article de la Wiki de Debian.

Un usuari comenta via DesdeLinux que per aturar realment el servei ha necessitat executar pkill lua5.1


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   KZKG ^ Gaara va dir

    I like it ... a veure si d'una vegada i per totes canvi Openfire per ejabberd o aquest Prosody 🙂

    1.    ILAV va dir

      Ja estic fent les proves en VirtualBox precisament per això .. perquè si esperem per tu fill meu .. ¬¬

      1.    KZKG ^ Gaara va dir

        ^ - ^ U ... jeje ...
        Ara envio un tiquet a proveïdor de l'Hosting preguntant sobre el registre DNS que necessitem per treure el 'jabber .'______

        1.    ILAV va dir

          Ok. Jabber, IRC, Facebook, Gtalk, no sé com o per on, però connecta't ..

  2.   Ernesto Infant va dir

    Com es fa la integració amb LDAP de l'Prosody? i la BD?

  3.   Rots87 va dir

    un parell d'imatges per als menys coneixedors no estaria malament ^. ^

  4.   caçador va dir

    A casa tinc Prosody, el vaig instal·lar per provar i m'ha agradat pel simple. Un detall a l'aturar el servidor he de fer un pkill lua5.1 per aturar de veritat.

  5.   AurosZx va dir

    Vaja, doncs això està interessant. Hi ha manera que altres persones puguin crear usuaris mitjançant una interfície gràfica d'usuari (pogués ser web)? Com es faria per aconseguir un domini per a usar-lo? 😛

    1.    caçador va dir

      Habilites el registre a la configuració i des del mateix client jabber es registren marcant l'opció crear compte al servidor.

      allow_registration = true;

  6.   Ferran va dir

    Estic buscant paquets de Prosody en slackware, excel·lent tutorial. Salutacions

  7.   Arturo Molina va dir

    Com puc verificar si un usuari assoliment autenticar? o com puc saber si un usuari està connectat a el servidor?

  8.   @Jlcmux va dir

    El vaig aconseguir 😀 Vaig poder instal·lar-lo i configurar-lo correctament. Instal·leu el servidor en un PC i el client és una altra PC. però em sorgeix un inconvenient. Per poder que el client sàpiga que el meu servidor amb el domini (medellinlibre.org) és LOCAL. He d'afegir a l'arxiu de hosts IPDELSERVIDOR medellinlibre.org. Sinó no connecta, Per òbvies raons. La meva inquietud és si no hi ha una manera de que tots els PC de la xarxa sàpiguen per defecte que aquest domini està en LAN a una IP determinada?

    1.    ltd va dir

      mateix dubte! vas saber a la fin ?? estic començant amb Prosody ...

    2.    caçador va dir

      Molt simple, en el pidgin especifica la ip de l'server en opcions avançades, l'altra opció és muntar un dns al teu LAN.

  9.   Francisco va dir

    És molt interessant aquest tema i volia saber si Prosody suporta WebSockets m'interessa fer un client web de xmpp

    1.    @Jlcmux va dir
  10.   Inukaze va dir

    Bones, No tens una versió de l'tutorial amb una configuració que sigui únicament per a una intranet domestica ?, sense domini ni res d'això. amb prou feines perquè només 1 equip amb Linux sigui servidor i els altres equips que es connectin a aquest

    És únicament per poder xatejar entre els equips de la intranet a través de pidgin.