Installera en XMPP (Jabber) -server med Prosody [Uppdaterad]


Många av oss använder gtalk o Facebook Chat utan att veta att protokollet vi använder för att kommunicera är ingen annan än XMPP (Utökbart meddelandeprotokoll) som också är öppen.

En GNU / Linux vi har flera applikationer för att skapa vår egen server XMPP o Jabber som det också är känt, några mer komplicerade än andra vid konfigurering. Till exempel har vi ejabberd, vilket är ganska enkelt och lätt, men om vi vill optimera mycket mer, har vi det Prosodi.

Då lämnar jag dig en artikel publicerad i GUTL av en av våra användare (Hugo) och där han visar oss hur vi konfigurerar vår egen server XMPP med Prosodi.

Inledning

När du installerar en XMPP-server (Jabber) för intern meddelandehantering i ett lokalt nätverk, väljer många jabber, ejabberd eller openfire, men även om de är funktionella kan dessa applikationer kräva mycket resurser.

Om du har ett litet eller medelstort nätverk och bara vill ha en enkel snabbmeddelandetjänst finns det lyckligtvis ett lätt serveralternativ som kallas prosody, som även om det är programmerat i LUA som är ett tolkat språk, enligt dess utvecklare fungerar det mycket bra tack till luajit.

Den här korta handledningen kommer att förklara hur man installerar och konfigurerar prosody på Debian stabil.

Förberedelser och installation

Prosody-paket finns i Debian-förvaret, men utvecklarna av denna programvara har förberett ett förvar för Debian och derivat som innehåller senaste paket och ytterligare moduler, som vi kan använda på följande sätt:

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

När förvaret har lagts till kan vi fortsätta att installera prosody (dessutom lägga till moduler att använda sasl som en autentiseringsmekanism om det behövs, vilket gör det möjligt att integrera prosody med pam, LDAPEtc.).

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

Vi fortsätter sedan med att generera självsignerade certifikat för vår domän:

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

Guiden kommer att be oss om en serie data, av vilka den väsentliga är ”Common Name (t.ex. server FQDN eller DITT namn) ”där vi måste placera vår domän, eftersom vi kommer att använda den i avsnittet VirtualHost konfigurationsfil.

Dessutom, om vi har konfigurerat på servern där vi installerar prosody iptables med standard nekande policyer måste vi öppna de portar som krävs för vårt nätverk, till exempel:

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 tillstånd --stat NYTT -j ACCEPT

konfiguration

Därefter fortsätter vi med att ändra några rader i konfigurationsfilen, som vi måste redigera för /etc/prosody/prosody.cfg.lua så det ser ut så här:

hamnar = {5222, 5269} ssl_ports = {5223} administratörer = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - standardalternativet är baserat på select () -funktionen, istället använder libevent epoll (), vilket är mer effektivt och skalbart. modules_enabled = {"roster"; "saslauth"; "tls"; "återuppringning"; "disk"; "privat"; "vcard"; "Integritet"; "kompression"; "legacyauth"; "version"; "drifttid"; "tid"; "ping"; "pep"; "Registrera"; - inaktivera inte den här modulen, den tillåter inte bara att registrera utan också ändra "adhoc" -lösenord; "admin_adhoc"; "posix"; "bosh"; - lägg till den här raden om du vill aktivera jabber över http}; allow_registration = false; - inaktiverad för säkerhet - ändra till true om du vill aktivera skapande av konton från klienten själv ssl = {key = "/etc/prosody/certs/localhost.key"; certifikat = "/etc/prosody/certs/localhost.cert"; } lagring = "internt"; - standardlagring är en xml-fil - valfritt kan vi använda lagringsmetoden "sql" - detta gör det möjligt att använda SQLite, MySQL eller PostgreSQL som en backend (även om vissa parametrar måste läggas till) authentication = "internal_hashed"; - vi kan använda "internal_plain" om klienten inte stöder SCRAM-SHA-1 - om vi vill använda sasl-metoden för att senare använda LDAP måste vi använda "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 har ändrats startar vi om tjänsten:

sudo service prosody subtrahera

Nu fortsätter vi med att skapa kontona. I det här fallet, som i konfigurationsfilen inaktiverar vi registret från klienterna, måste kontona skapas manuellt på servern. Verifieringsmetoden som vi väljer i konfigurationen (internal_hashed) gör att lösenorden inte sparas tydligt utan med mekanismen SCRAM-SHA-1. Om den meddelandeklient som vi tänker använda inte stöder den här mekanismen kan metoden "internal_plain" användas i konfigurationen.

Först kommer vi att skapa konton för administratörerna av tjänsten som vi deklarerar i konfigurationen (att deklarera dem innebär inte att de skapas automatiskt):

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

Vi kan använda samma kommando för alla andra konton vi vill skapa.

Slutligen kontrollerar vi att tjänsten körs:

sudo prosodyctl -status

Vi borde få ett meddelande som följande:

Prosody körs med PID 1310

Klientkonfiguration

Konfigurationen beror på klienten, men i allmänhet är detaljerna enkla. Till exempel för pidgin:

Fliken "Grundläggande"

Användarnamn: John
domain: mydomain.cu
funktion: pc-john

Fliken "Avancerat"

Anslutningssäkerhet: Använd kryptering om möjligt
Anslutningsport: 5222
Anslut till servern: myserver.mydomain.cu

anteckningar

Mer information finns (inklusive användning av Cyrus SASL med LDAP och hur man skapar poster från DNS) i den här artikeln från Debian Wiki.

En användare kommenterar via FromLinux att för att verkligen stoppa tjänsten han var tvungen att utföra pkill lua5.1


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

18 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   KZKG ^ Gaara sade

    Jag gillar det ... låt oss se om jag en gång för alla ändrar OpenFire för ejabberd eller denna Prosody 🙂

    1.    elav sade

      Jag gör redan testen i VirtualBox just för det .. för om vi väntar på dig min son .. ¬¬

      1.    KZKG ^ Gaara sade

        ^ - ^ U ... hehe ...
        Nu skickar jag en biljett till värdleverantören som frågar om DNS-posten som vi behöver för att ta bort "jabber." ______

        1.    elav sade

          Okej. Jabber, IRC, Facebook, Gtalk, jag vet inte hur eller var, men anslut ..

  2.   ernesto Infante sade

    Hur är integrationen med LDAP av Prosody? och BD?

  3.   Rötter87 sade

    ett par bilder för de mindre kunniga skulle inte vara dåligt ^. ^

  4.   djägare sade

    Hemma har jag prosody, jag installerade det för att testa och jag gillade det för sin enkelhet. En detalj när jag stoppar servern måste jag göra en pkill lua5.1 för att verkligen stoppa den.

  5.   auroszx sade

    Wow, det här är intressant. Finns det ett sätt som andra kan skapa användare via ett GUI (kan vara webb)? Hur skulle du göra för att få en domän att använda den? 😛

    1.    djägare sade

      Du aktiverar registreringen i konfigurationen och från samma jabberklient registreras de genom att markera alternativet att skapa konto på servern.

      allow_registration = sant;

  6.   Ferran sade

    Jag letar efter prosodipaket i slackware, utmärkt handledning. Skål

  7.   Arturo Molina sade

    Hur kan jag verifiera om en användare lyckades autentisera? eller hur kan jag veta om en användare är ansluten till servern?

  8.   @Jlcmux sade

    Jag lyckades 😀 Jag kunde installera och konfigurera det korrekt. Installera servern på en dator och klienten är en annan dator. men jag har ett problem. För att klienten ska veta att min server med domänen (medellinlibre.org) är LOKAL. Jag måste lägga till värdfilen IPDELSERVIDOR medellinlibre.org. Om inte, ansluter den inte av uppenbara skäl. Min fråga är om det inte finns något sätt för alla datorer i nätverket att veta som standard att den här domänen finns på LAN vid en given IP?

    1.    ltd sade

      samma tvivel! visste du i slutet ?? Jag börjar med prosody ...

    2.    djägare sade

      Mycket enkelt, i pidgin ange servern ip i avancerade alternativ, det andra alternativet är att montera en dns på ditt LAN.

  9.   Francisco sade

    Detta ämne är väldigt intressant och jag ville veta om Prosody stöder webbuttag. Jag är intresserad av att skapa en xmpp webbklient

    1.    @Jlcmux sade
  10.   Inukaze sade

    Hej, har du inte en version av självstudien med en konfiguration som endast är för ett inhemskt intranät? Ingen domän eller något liknande. knappt så att endast en dator med Liñux är en server och de andra datorerna som ansluter till den

    Det är bara för att kunna chatta mellan datorerna på intranätet via pidgin.