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


Mange av oss bruker Gtalk o Facebook Chat uten å vite at protokollen vi bruker for å kommunisere er ingen ringere enn XMPP (Utvidbar protokoll for meldinger og tilstedeværelse) som også er åpen.

En GNU / Linux vi har flere applikasjoner for å sette opp vår egen server XMPP o Jabber som det også er kjent, noen mer kompliserte enn andre når de konfigureres. For eksempel har vi ejabberd, som er ganske enkelt og lett, men hvis vi vil optimalisere mye mer, har vi det prosodi.

Så forlater jeg deg en artikkel publisert i GUTL av en av brukerne våre (Hugo) og hvor han viser oss hvordan vi konfigurerer vår egen server XMPP med prosodi.

Innledning

Når du installerer en XMPP (Jabber) -server for interne meldinger i et lokalt nettverk, velger mange jabber, ejabberd eller openfire, men selv om disse funksjonene er funksjonelle, kan disse applikasjonene kreve mye ressurser.

Hvis du har et lite eller middels nettverk og bare vil ha en enkel chat-tjeneste, er det heldigvis et lett serveralternativ kalt prosody, som selv om det er programmert i LUA som er et tolket språk, ifølge utviklerne fungerer det veldig bra takk. til luajit.

Denne korte opplæringen vil forklare hvordan du installerer og konfigurerer prosody på Debian stabil.

Forberedelser og installasjon

Prosody-pakker er i Debian-depotet, men utviklerne av denne programvaren har utarbeidet et depot for Debian og derivater som inneholder nylige pakker og tilleggsmoduler, som vi kan bruke som følger:

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

Når depotet er lagt til, kan vi fortsette å installere prosody (i tillegg legge til moduler som skal brukes sasl som en autentiseringsmekanisme hvis nødvendig, som gjør det mulig å integrere prosody med pam, LDAPOsv.).

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

Vi fortsetter deretter med å generere selvsignerte sertifikater for domenet vårt:

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

Veiviseren vil be oss om en serie med data, der det viktigste er “Vanlig navn (f.eks. Server FQDN eller DITT navn) ”der vi må plassere domenet vårt, slik vi vil bruke det i seksjonen VirtualHost konfigurasjonsfil.

I tillegg, hvis vi er konfigurert på serveren der vi installerer prosody iptables Med standard avvisningsretningslinjer, må vi åpne de nødvendige portene for nettverket vårt, 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 state --state NEW -j ACCEPT

Konfigurasjon

Deretter fortsetter vi med å endre noen linjer i konfigurasjonsfilen, som vi må redigere for /etc/prosody/prosody.cfg.lua så det ser slik ut:

porter = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - standardalternativet er basert på select () -funksjonen, i stedet bruker libevent epoll (), som er mer effektiv og skalerbar. modules_enabled = {"liste"; "saslauth"; "tls"; "tilbakering"; "disk"; "privat"; "vcard"; "personvern"; "komprimering"; "legacyauth"; "versjon"; "oppetid"; "tid"; "ping"; "pep"; "registrere"; - ikke deaktiver denne modulen, det tillater ikke bare å registrere, men også å endre "adhoc" passord; "admin_adhoc"; "posix"; "bosh"; - legg til denne linjen hvis du vil aktivere jabber over http}; allow_registration = false; - deaktivert for sikkerhet - endre til sant hvis du vil aktivere opprettelse av kontoer fra selve klienten ssl = {key = "/etc/prosody/certs/localhost.key"; sertifikat = "/etc/prosody/certs/localhost.cert"; } lagring = "intern"; - standardlagringen er en xml-fil - valgfritt kan vi bruke "sql" -lagringsmetoden - dette gjør det mulig å bruke SQLite, MySQL eller PostgreSQL som en backend (selv om visse parametere må legges til) authentication = "internal_hashed"; - vi kan bruke "internal_plain" hvis klienten ikke støtter SCRAM-SHA-1 - hvis vi vil bruke sasl-metoden for senere å bruke LDAP, må vi bruke "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"; sertifikat = "/etc/prosody/certs/mydomain.cu.crt"; }

Når konfigurasjonsfilen er endret, starter vi tjenesten på nytt:

sudo service prosody trekke fra

Nå fortsetter vi med å opprette kontoene. I dette tilfellet, som i konfigurasjonsfilen, deaktiverer vi registreringen fra klientene, må kontoene opprettes manuelt på serveren. Autentiseringsmetoden som vi velger i konfigurasjonen (internal_hashed) gjør at passordene ikke lagres tydelig, men med mekanismen SCRAM-SHA-1. Hvis meldeklienten vi har tenkt å bruke ikke støtter denne mekanismen, kan "internal_plain" -metoden brukes i konfigurasjonen.

Først oppretter vi kontoene til administratorene av tjenesten som vi erklærer i konfigurasjonen (å erklære dem innebærer ikke at de blir opprettet automatisk):

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

Vi kan bruke den samme kommandoen for en hvilken som helst annen konto vi vil opprette.

Til slutt sjekker vi at tjenesten kjører:

sudo prosodyctl -status

Vi bør få en melding som følgende:

Prosody kjører med PID 1310

Klientkonfigurasjon

Konfigurasjonen avhenger av hver klient, men generelt er detaljene enkle. For eksempel for Pidgin:

"Grunnleggende" -fanen

Brukernavn: Juan
domene: mydomain.cu
funksjonen: pc-john

Fanen "Avansert"

Tilkoblingssikkerhet: Bruk kryptering hvis mulig
Tilkoblingsport: 5222
Koble til server: myserver.mydomain.cu

notater

Mer informasjon kan bli funnet (inkludert bruk av Cyrus SASL med LDAP og hvordan du lager oppføringer fra DNS) På denne artikkelen fra Debian Wiki.

En bruker kommenterer via DesdeLinux for å virkelig stoppe tjenesten du trengte å utføre pkill lua5.1


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   KZKG ^ Gaara sa

    Jeg liker det ... la oss se om jeg en gang for alle endrer OpenFire for ejabberd eller denne Prosody 🙂

    1.    livlig sa

      Jeg gjør allerede testene i VirtualBox nettopp for det .. for hvis vi venter på deg min sønn .. ¬¬

      1.    KZKG ^ Gaara sa

        ^ - ^ U ... hehe ...
        Nå sender jeg en billett til vertsleverandøren og spør om DNS-posten som vi trenger for å fjerne "jabber."

        1.    livlig sa

          Greit. Jabber, IRC, Facebook, Gtalk, jeg vet ikke hvordan eller hvor, men koble til ..

  2.   Ernest Infante sa

    Hvordan er integrasjonen med LDAP av Prosody? og BD?

  3.   råtner87 sa

    et par bilder for mindre kunnskapsrike ville ikke være dårlig ^. ^

  4.   dhunter sa

    Hjemme har jeg prosodi, jeg installerte den for å teste, og jeg likte den for sin enkelhet. En detalj når jeg stopper serveren, må jeg gjøre en luk5.1 for å virkelig stoppe den.

  5.   auroszx sa

    Wow, dette er interessant. Er det en måte som andre mennesker kan opprette brukere gjennom en GUI (kan være på nettet)? Hvordan vil du gjøre for å få et domene til å bruke det? 😛

    1.    dhunter sa

      Du aktiverer registreringen i konfigurasjonen og fra samme klientjabber blir de registrert ved å merke av for alternativet for å opprette konto på serveren.

      tillate_registrering = sant;

  6.   Ferran sa

    Jeg leter etter prosodipakker i slackware, utmerket opplæring. Jubel

  7.   Arturo Molina sa

    Hvordan kan jeg bekrefte om en bruker klarte å godkjenne? eller hvordan kan jeg vite om en bruker er koblet til serveren?

  8.   @Jlcmux sa

    Jeg lyktes 😀 Jeg klarte å installere og konfigurere det riktig. Installer serveren på en PC, og klienten er en annen PC. men jeg har et problem. For at klienten skal vite at serveren min med domenet (medellinlibre.org) er LOKAL. Jeg må legge til vertsfilen IPDELSERVIDOR medellinlibre.org. Hvis ikke, kobles det ikke av åpenbare grunner. Spørsmålet mitt er om det ikke er noen måte for alle PCene i nettverket å vite som standard at dette domenet er på LAN ved en gitt IP?

    1.    ltd sa

      samme tvil! visste du på slutten ?? Jeg begynner med prosodi ...

    2.    dhunter sa

      Veldig enkelt, i pidgin spesifiser ip til serveren i avanserte alternativer, det andre alternativet er å montere en dns på LAN.

  9.   Francisco sa

    Dette emnet er veldig interessant, og jeg ville vite om Prosody støtter websockets. Jeg er interessert i å lage en xmpp-webklient

    1.    @Jlcmux sa
  10.   Inukaze sa

    Hei, har du ikke en versjon av opplæringen med en konfigurasjon som bare er for et innenlandsk intranett? Ingen domene eller noe sånt. neppe slik at bare én datamaskin med Liñux er en server og de andre datamaskinene som kobles til den

    Det er utelukkende å kunne chatte mellom intranettdatamaskinene gjennom pidgin.