Mag-install ng isang server ng XMPP (Jabber) na may Prosody [Nai-update]


Marami sa atin ang gumagamit gtalk o Facebook Chat nang hindi alam na ang protokol na ginagamit namin upang makipag-usap ay walang iba kundi ang XMPP (Extensible Messaging at Presence Protocol) na bukas din.

En GNU / Linux marami kaming mga application upang mai-set up ang aming sariling server XMPP o Jabber tulad ng nalalaman din, ilang mas kumplikado kaysa sa iba kapag nag-configure. Halimbawa, mayroon kaming ejabberd, na kung saan ay medyo simple at magaan, ngunit kung nais naming i-optimize ang higit pa, mayroon kaming Prosody.

Tapos iniiwan kita isang artikulo nai-publish sa GUTL ng isa sa aming mga gumagamit (Hugo) at kung saan ipinakita niya sa amin kung paano i-configure ang aming sariling server XMPP sa Prosody.

Pagpapakilala

Kapag nag-install ng isang server ng XMPP (Jabber) para sa panloob na pagmemensahe sa isang lokal na network, marami ang pumili ng jabber, ejabberd o openfire, ngunit kahit na gumagana, ang mga application na ito ay maaaring mangailangan ng maraming mga mapagkukunan.

Kung mayroon kang isang maliit o katamtamang network at nais mo lamang ng isang simpleng serbisyo sa instant na pagmemensahe, sa kabutihang palad mayroong isang magaan na kahalili ng server na tinatawag na prosody, na kahit na ito ay na-program sa LUA na isang naisaling wika, ayon sa mga nag-develop nito gumagana ito nang mahusay kay luajit.

Ang maikling tutorial na ito ay magpapaliwanag kung paano mag-install at mag-configure ng prosody sa Debian stable.

Paghahanda at pag-install

Ang mga package ng prosody ay nasa repository ng Debian, ngunit ang mga tagabuo ng software na ito ay naghanda ng isang lalagyan para sa Debian at mga derivatives na naglalaman ng mga kamakailang mga pakete at karagdagang mga module, na maaari naming gamitin tulad ng sumusunod:

echo "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 - pag-update ng sudo aptitude

Kapag naidagdag na ang imbakan, maaari kaming magpatuloy upang mag-install ng prosody (bilang karagdagan pagdaragdag ng mga module na gagamitin sasl bilang isang mekanismo ng pagpapatotoo kung kinakailangan, na nagbibigay-daan upang isama ang prosody pam, LDAP, atbp.).

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

Pagkatapos ay nagpapatuloy kaming bumuo ng mga self-sign na sertipiko para sa aming domain:

cd / etc / prosody / certs sudo openssl req -new -x509 -day 1095 -nodes -out "mydomain.cu.cert" -keyout "mydomain.cu.key"

Tatanungin kami ng wizard ng isang serye ng data, kung saan ang talagang mahalaga ay "Karaniwang Pangalan (hal. Server FQDN o IYONG pangalan) "kung saan kailangan naming ilagay ang aming domain, dahil gagamitin namin ito sa seksyon VirtualHost file ng pagsasaayos.

Bilang karagdagan, kung sa server kung saan kami nag-i-install ng prosody ay na-configure namin iptables na may mga default na patakaran sa pagtanggi, kailangan naming buksan ang mga kinakailangang port para sa aming network, halimbawa:

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 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 estado - estado ng BAGONG -j ACCEPT

configuration

Susunod, nagpapatuloy kaming baguhin ang ilang mga linya ng file ng pagsasaayos, kung saan dapat naming i-edit /etc/prosody/prosody.cfg.lua kaya ganito ang hitsura:

ports = {5222, 5269} ssl_ports = {5223} admin = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - ang default na pagpipilian ay batay sa piling function na (), sa halip ang libevent ay gumagamit ng epoll (), na mas mahusay at masusukat. modules_enified = {"roster"; "saslauth"; "tls"; "dialback"; "disk"; "pribado"; "vcard"; "privacy"; "compression"; "legacyauth"; "bersyon"; "uptime"; "oras"; "ping"; "pep"; "magparehistro"; - huwag paganahin ang modyul na ito, pinapayagan nito hindi lamang upang magparehistro ngunit upang baguhin din ang mga "adhoc" na password; "admin_adhoc"; "posix"; "bosh"; - idagdag ang linyang ito kung nais mong paganahin ang jabber sa paglipas ng http}; allow_registro = false; - hindi pinagana para sa seguridad - baguhin sa totoo kung nais mong paganahin ang paglikha ng mga account mula sa kliyente mismo ssl = {key = "/etc/prosody/certs/localhost.key"; sertipiko = "/etc/prosody/certs/localhost.cert"; } imbakan = "panloob"; - ang default na imbakan ay isang xml file - opsyonal na maaari nating gamitin ang paraan ng pag-iimbak ng "sql" - pinapayagan nito ang paggamit ng SQLite, MySQL o PostgreSQL bilang backend (bagaman ang ilang mga parameter ay dapat idagdag) pagpapatotoo = "panloob na_hash"; - maaari naming gamitin ang "panloob na_plain" kung hindi sinusuportahan ng kliyente ang SCRAM-SHA-1 - kung nais naming gamitin ang pamamaraan ng sasl upang magamit sa paglaon ang LDAP, dapat naming gamitin ang "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"; sertipiko = "/etc/prosody/certs/mydomain.cu.crt"; }

Kapag nabago ang config file, i-restart namin ang serbisyo:

sudo serbisyo prosody ibawas

Ngayon ay magpapatuloy kami upang likhain ang mga account. Sa kasong ito, tulad ng sa pagsasaayos ng file hindi namin pinagana ang pagpapatala mula sa mga kliyente, ang mga account ay kailangang nilikha nang manu-mano sa server. Ang pamamaraan ng pagpapatotoo na pinili namin sa pagsasaayos (panloob na_hash) ay gumagawa na ang mga password ay hindi nai-save nang malinaw ngunit may mekanismo SCRAM-SHA-1. Kung ang client ng pagmemensahe na nais naming gamitin ay hindi sumusuporta sa mekanismong ito, maaaring magamit ang configure na "internal_plain" sa pagsasaayos.

Lilikha muna namin ang mga account ng mga administrador ng serbisyo na idineklara namin sa pagsasaayos (ang pagdeklara sa kanila ay hindi nangangahulugang awtomatiko silang nilikha):

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

Maaari naming gamitin ang parehong utos para sa anumang iba pang account na nais naming likhain.

Panghuli, sinusuri namin na tumatakbo ang serbisyo:

sudo prosodyctl katayuan

Dapat kaming makakuha ng isang mensahe tulad ng sumusunod:

Tumatakbo ang prosody kasama ang PID 1310

Ang pagsasaayos ng kliyente

Ang pagsasaayos ay nakasalalay sa bawat kliyente, ngunit sa pangkalahatan ang mga detalye ay simple. Halimbawa, para sa magkakahalong salita:

Tab na "Pangunahin"

Username: John
Domain: mydomain.cu
Mapagkukunan: pc-john

Tab na "advanced"

Seguridad sa koneksyon: Gumamit ng pag-encrypt kung maaari
Port ng koneksyon: 5222
Kumonekta sa Server: myserver.mydomain.cu

tala

Makakakita ng mas maraming impormasyon (kasama ang paggamit ng Cyrus SASL sa LDAP at kung paano lumikha ng mga entry mula sa DNS) Sa Ang artikulong ito mula sa Debian Wiki.

Un usuario comenta via DesdeLinux que para detener realmente el servicio ha necesitado ejecutar pkill lua5.1


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   KZKG ^ Gaara dijo

    Gusto ko ito ... tingnan natin kung minsan at para sa lahat binago ko ang OpenFire para sa ejabberd o ang Prosody na ito 🙂

    1.    masigla dijo

      Ginagawa ko na ang mga pagsubok sa VirtualBox nang tiyak para doon .. sapagkat kung hihintayin ka namin anak ko .. ¬¬

      1.    KZKG ^ Gaara dijo

        ^ - ^ U ... hehe ...
        Nagpadala ako ngayon ng isang tiket sa provider ng Hosting na nagtatanong tungkol sa rekord ng DNS na kailangan naming alisin ang 'jabber .'______

        1.    masigla dijo

          Sige. Jabber, IRC, Facebook, Gtalk, hindi ko alam kung paano o saan, ngunit kumonekta ..

  2.   Ernest Infante dijo

    Paano ang pagsasama sa LDAP ng Prosody? at ang BD?

  3.   Nabulok87 dijo

    ang isang pares ng mga imahe para sa mas kaunting kaalaman ay hindi magiging masama ^. ^

  4.   dhunter dijo

    Sa bahay mayroon akong prosody, na-install ko ito upang subukan at nagustuhan ko ito para sa pagiging simple nito. Isang detalye kapag pinahinto ang server kailangan kong gawin ang isang pkill lua5.1 upang talaga itong ihinto.

  5.   auroszx dijo

    Wow, nakakainteres ito. Mayroon bang isang paraan na ang ibang mga tao ay maaaring lumikha ng mga gumagamit sa pamamagitan ng isang GUI (maaaring maging web)? Paano ka makakakuha ng isang domain upang magamit ito? 😛

    1.    dhunter dijo

      Pinapagana mo ang pagpaparehistro sa config at mula sa parehong client jabber nakarehistro sila sa pamamagitan ng pag-check sa pagpipilian upang lumikha ng account sa server.

      allow_registro = totoo;

  6.   ferran dijo

    Naghahanap ako ng mga prosody packages sa slackware, mahusay na tutorial. Cheers

  7.   Arturo Molina dijo

    Paano ko mave-verify kung pinatunayan ng isang gumagamit? o paano ko malalaman kung ang isang gumagamit ay konektado sa server?

  8.   @Jlcmux dijo

    Nagtagumpay ako 😀 Na-install ko at na-configure ito nang tama. I-install ang server sa isang PC at ang client ay isa pang PC. pero may problema ako. Upang malaman ng kliyente na ang aking server na may domain (medellinlibre.org) ay LOKAL. Dapat kong idagdag sa file ng mga host na IPDELSERVIDOR medellinlibre.org. Kung hindi, hindi ito kumokonekta, para sa halatang mga kadahilanan. Ang aking katanungan ay kung walang paraan para sa lahat ng mga PC sa network na malaman sa pamamagitan ng default na ang domain na ito ay nasa LAN sa isang naibigay na IP?

    1.    ltd dijo

      parehong pag-aalinlangan! alam mo ba sa huli ?? Nagsisimula ako sa prosody ...

    2.    dhunter dijo

      Napakasimple, sa pidgin tukuyin ang ip ng server sa mga advanced na pagpipilian, ang iba pang pagpipilian ay i-mount ang isang dns sa iyong LAN.

  9.   Francisco dijo

    Ang paksang ito ay napaka-kagiliw-giliw at nais kong malaman kung sinusuportahan ng Prosody ang mga websockets. Interesado akong gumawa ng isang xmpp web client

    1.    @Jlcmux dijo

      Maaari mo itong makita. http://code.google.com/p/xmppwebchat/

  10.   Inukaze dijo

    Kumusta, wala ka bang isang bersyon ng tutorial na may isang pagsasaayos na para lamang sa isang domestic intranet? Walang domain o anumang katulad nito. mahirap na sa 1 computer lamang na may Liñux ang isang server at ang iba pang mga computer na kumonekta dito

    Ito lamang ang makapag-chat sa pagitan ng mga intranet computer sa pamamagitan ng pidgin.