Installer en XMPP (Jabber) server med Prosody [Opdateret]


Mange af os bruger Gtalk o Facebook Chat uden at vide, at den protokol, vi bruger til at kommunikere, er ingen ringere end XMPP (Protokol til udvidelse af beskeder og tilstedeværelse) som også er åben.

En GNU / Linux vi har flere applikationer til at oprette vores egen server XMPP o Jabber som det også er kendt, nogle mere komplicerede end andre ved konfiguration. For eksempel har vi det ejabberd, hvilket er ret simpelt og let, men hvis vi vil optimere meget mere, har vi det prosody.

Så forlader jeg dig en artikel offentliggjort i GUTL af en af ​​vores brugere (Hugo), og hvor han viser os, hvordan vi konfigurerer vores egen server XMPP med prosody.

Indledning

Når du installerer en XMPP (Jabber) -server til intern besked på et lokalt netværk, vælger mange jabber, ejabberd eller openfire, men selvom de er funktionelle, kan disse applikationer kræve en masse ressourcer.

Hvis du har et lille eller mellemstort netværk og kun ønsker en simpel instant messaging-tjeneste, er der heldigvis et let serveralternativ kaldet prosody, som selv om det er programmeret i LUA, som er et fortolket sprog, ifølge dets udviklere fungerer det meget godt tak til luajit.

Denne korte vejledning forklarer, hvordan man installerer og konfigurerer prosody på Debian-stabil.

Forberedelser og installation

Prosody-pakker findes i Debian-arkivet, men udviklerne af denne software har forberedt et lager til Debian og derivater, der indeholder nylige pakker og yderligere moduler, som vi kan bruge som følger:

ekko "deb http://packages.prosody.im/debian stabil main" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - sudo aptitude opdatering

Når arkivet er tilføjet, kan vi fortsætte med at installere prosody (derudover tilføje moduler til brug sasl som en godkendelsesmekanisme, hvis det er nødvendigt, som gør det muligt at integrere prosody med pam, LDAP, Etc.).

sudo aptitude installer sasl2-bin libsasl2-modules-ldap prosody liblua5.1- {sec0, cyrussasl0, event-prosody0}

Vi fortsætter derefter med at generere selvsignerede certifikater til vores domæne:

cd / etc / prosody / certs sudo openssl req -ny -x509-dage 1095 -noder -out "mydomain.cu.cert" -keyout "mydomain.cu.key"

Guiden beder os om en række data, hvoraf den virkelig vigtige er “Almindeligt navn (f.eks. Server FQDN eller DIT navn) ”hvor vi er nødt til at placere vores domæne, da vi vil bruge det i sektionen VirtualHost konfigurationsfil.

Derudover hvis vi er konfigureret på den server, hvor vi installerer prosody iptables med standardafvisningspolitikker skal vi åbne de nødvendige porte til vores netværk, for eksempel:

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 tilstand --tilstand NY -j ACCEPT

konfiguration

Dernæst fortsætter vi med at ændre nogle linjer i konfigurationsfilen, som vi skal redigere for /etc/prosody/prosody.cfg.lua så det ser sådan ud:

porte = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - standardindstillingen er baseret på select () -funktionen, i stedet bruger libevent epoll (), som er mere effektiv og skalerbar. modules_enabled = {"liste"; "saslauth"; "tls"; "dialback"; "disk"; "privat"; "vcard"; "privatliv"; "kompression"; "legacyauth"; "version"; "oppetid"; "tid"; "ping"; "pep"; "Tilmeld"; - deaktiver ikke dette modul, det tillader ikke kun at registrere, men også at ændre "adhoc" adgangskoder; "admin_adhoc"; "posix"; "bosh"; - tilføj denne linje, hvis du vil aktivere jabber over http}; allow_registration = false; - deaktiveret for sikkerhed - skift til sandt, hvis du vil aktivere oprettelse af konti fra selve klienten ssl = {key = "/etc/prosody/certs/localhost.key"; certifikat = "/etc/prosody/certs/localhost.cert"; } storage = "intern"; - standardlageret er en xml-fil - valgfrit kan vi bruge "sql" -lagringsmetoden - dette tillader brug af SQLite, MySQL eller PostgreSQL som en backend (selvom visse parametre skal tilføjes) authentication = "internal_hashed"; - vi kan bruge "internal_plain", hvis klienten ikke understøtter SCRAM-SHA-1 - hvis vi vil bruge sasl-metoden til senere at bruge LDAP, skal vi bruge "cyrus" log = {error = "/ var / log / prosody / prosody. err "; info = "/var/log/prosody/prosody.log"; } pidfile = "/var/run/prosody/prosody.pid"; VirtualHost "localhost" VirtualHost "mydomain.cu" ssl = {key = "/etc/prosody/certs/mydomain.cu.key"; certifikat = "/etc/prosody/certs/mydomain.cu.crt"; }

Når konfigurationsfilen er blevet ændret, genstarter vi tjenesten:

træk fra sudo service prosody

Nu fortsætter vi med at oprette kontiene. I dette tilfælde, som i konfigurationsfilen, deaktiverer vi registreringen fra klienterne, skal kontiene oprettes manuelt på serveren. Godkendelsesmetoden, som vi vælger i konfigurationen (internal_hashed), gør, at adgangskoderne ikke gemmes tydeligt, men med mekanismen SCRAM-SHA-1. Hvis den messaging-klient, vi agter at bruge, ikke understøtter denne mekanisme, kan metoden "intern_plain" bruges i konfigurationen.

Først opretter vi konti for administratorerne af den service, som vi erklærer i konfigurationen (at erklære dem betyder ikke, at de oprettes automatisk):

sudo prosodyctl adduser juan@mydomain.cu sudo prosodyctl adduser pedro@mydomain.cu

Vi kan bruge den samme kommando til enhver anden konto, som vi vil oprette.

Endelig kontrollerer vi, at tjenesten kører:

sudo prosodyctl -status

Vi skulle få en besked som følgende:

Prosody kører med PID 1310

Klientkonfiguration

Konfigurationen afhænger af klienten, men generelt er detaljerne enkle. For eksempel til Pidgin:

Fanen "Grundlæggende"

Brugernavn: John
domæne: mydomain.cu
funktion: pc-john

Fanen "Avanceret"

Forbindelsessikkerhed: Brug om muligt kryptering
Forbindelsesport: 5222
Opret forbindelse til server: myserver.mydomain.cu

noter

Flere oplysninger (inklusive brugen af ​​Cyrus SASL med LDAP og hvordan man opretter poster fra DNS) I denne artikel fra Debian Wiki.

En bruger kommenterer via DesdeLinux for virkelig at stoppe den service, du skulle udføre pkill lua5.1


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   KZKG ^ Gaara sagde han

    Jeg kan godt lide det ... lad os se, om jeg en gang for alle ændrer OpenFire til ejabberd eller denne Prosody 🙂

    1.    Elav sagde han

      Jeg laver allerede testene i VirtualBox netop for det .. for hvis vi venter på dig min søn .. ¬¬

      1.    KZKG ^ Gaara sagde han

        ^ - ^ U ... hehe ...
        Nu sender jeg en billet til hostingudbyderen og spørger om DNS-posten, som vi har brug for for at fjerne 'jabber''______.

        1.    Elav sagde han

          Okay. Jabber, IRC, Facebook, Gtalk, jeg ved ikke hvordan eller hvor, men forbind ..

  2.   Ernest Infante sagde han

    Hvordan er integrationen med LDAP af Prosody? og BD?

  3.   rådner87 sagde han

    et par billeder for de mindre kyndige ville ikke være dårlige ^. ^

  4.   djæger sagde han

    Derhjemme har jeg prosodi, jeg installerede det til at teste, og jeg kunne godt lide det på grund af dets enkelhed. En detalje, når jeg stopper serveren, skal jeg lave en pkill lua5.1 for virkelig at stoppe den.

  5.   auroszx sagde han

    Wow, dette er interessant. Er der en måde, hvorpå andre mennesker kan oprette brugere via en GUI (kan være web)? Hvordan vil du gå til at få et domæne til at bruge det? 😛

    1.    djæger sagde han

      Du aktiverer registreringen i konfigurationen og fra den samme klientjabber registreres de ved at markere muligheden for at oprette konto på serveren.

      tillad_registrering = sand;

  6.   Ferran sagde han

    Jeg leder efter prosodipakker i slackware, fremragende tutorial. Skål

  7.   Arturo Molina sagde han

    Hvordan kan jeg kontrollere, om en bruger formåede at godkende? eller hvordan kan jeg vide, om en bruger er forbundet til serveren?

  8.   @Jlcmux sagde han

    Det lykkedes 😀 Jeg var i stand til at installere og konfigurere det korrekt. Installer serveren på en pc, og klienten er en anden pc. men jeg har et problem. For at klienten skal vide, at min server med domænet (medellinlibre.org) er LOKAL. Jeg skal føje til værtsfilen IPDELSERVIDOR medellinlibre.org. Hvis ikke, forbinder det ikke af åbenlyse grunde. Mit spørgsmål er, om der ikke er nogen måde for alle pc'er på netværket at vide som standard, at dette domæne er på LAN ved en given IP?

    1.    ltd sagde han

      samme tvivl! vidste du i slutningen ?? Jeg begynder med prosodi ...

    2.    djæger sagde han

      Meget simpelt, i pidgin skal du specificere serverens ip i avancerede indstillinger, den anden mulighed er at montere en dns på dit LAN.

  9.   Francisco sagde han

    Dette emne er meget interessant, og jeg ville gerne vide, om Prosody understøtter websockets. Jeg er interesseret i at oprette en xmpp-webklient

    1.    @Jlcmux sagde han
  10.   Inukaze sagde han

    Hej, har du ikke en version af selvstudiet med en konfiguration, der kun er til et indenlandsk intranet? Intet domæne eller noget lignende. næppe så kun 1 computer med Liñux er en server og de andre computere, der opretter forbindelse til den

    Det er udelukkende at kunne chatte mellem intranetcomputere gennem pidgin.