Instal server XMPP (Jabber) dengan Prosody [Diperbarui]


Banyak dari kita menggunakan Gtalk o Facebook chat tanpa mengetahui bahwa protokol yang kita gunakan untuk berkomunikasi tidak lain adalah XMPP (Perpanjangan Perpesanan dan Protokol Kehadiran) yang juga terbuka.

En GNU / Linux kami memiliki beberapa aplikasi untuk menyiapkan server kami sendiri XMPP o Mengoceh seperti yang juga diketahui, beberapa lebih rumit daripada yang lain saat mengonfigurasi. Misalnya, kami punya ejabberd, yang cukup sederhana dan ringan, tetapi jika kami ingin mengoptimalkan lebih banyak, kami punya Prosodi.

Lalu aku meninggalkanmu sebuah artikel diterbitkan di GUTL oleh salah satu pengguna kami (Hugo) dan di mana dia menunjukkan kepada kami cara mengkonfigurasi server kami sendiri XMPP dengan Prosodi.

Pengantar

Saat menginstal server XMPP (Jabber) untuk olahpesan internal di jaringan lokal, banyak yang memilih jabber, ejabberd atau openfire, tetapi meskipun berfungsi, aplikasi ini dapat menuntut banyak sumber daya.

Jika Anda memiliki jaringan kecil atau menengah dan Anda hanya menginginkan layanan pesan instan sederhana, untungnya ada alternatif server ringan yang disebut prosody, yang meskipun diprogram dalam LUA yang merupakan bahasa tafsir, menurut pengembangnya ia bekerja dengan sangat baik berkat luajit.

Tutorial singkat ini akan menjelaskan cara menginstal dan mengkonfigurasi prosodi di Debian stable.

Persiapan dan pemasangan

Paket prosodi ada di repositori Debian, tetapi pengembang software ini telah menyiapkan repositori untuk Debian dan turunannya yang berisi paket terbaru dan modul tambahan, yang bisa kita gunakan sebagai berikut:

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 - pembaruan sudo aptitude

Setelah repositori ditambahkan, kita dapat melanjutkan untuk menginstal prosody (sebagai tambahan menambahkan modul untuk digunakan sasl sebagai mekanisme otentikasi jika perlu, yang memungkinkan untuk mengintegrasikan prosodi dengan pam, LDAP, Dll).

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

Kami kemudian melanjutkan untuk menghasilkan sertifikat yang ditandatangani sendiri untuk domain kami:

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

Wizard akan menanyakan kita serangkaian data, yang mana yang paling penting adalah “Nama Umum (mis. Server FQDN atau nama ANDA) ”di mana kami harus meletakkan domain kami, karena kami akan menggunakannya di bagian VirtualHost file konfigurasi.

Selain itu, jika di server tempat kami menginstal prosodi yang telah kami konfigurasikan iptables Dengan kebijakan deny default, kita perlu membuka port yang diperlukan untuk jaringan kita, misalnya:

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 - saya eth1 -s 192.168.0.0/24 -p tcp -m tcp -m multiport --dports 5222,5223,5269 -m state --state NEW -j ACCEPT

konfigurasi

Selanjutnya, kami melanjutkan untuk memodifikasi beberapa baris file konfigurasi, yang harus kami edit /etc/prosody/prosody.cfg.lua jadi terlihat seperti ini:

port = {5222, 5269} ssl_ports = {5223} admin = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - opsi default didasarkan pada fungsi select (), alih-alih libevent menggunakan epoll (), yang lebih efisien dan skalabel. modules_enabled = {"daftar"; "saslauth"; "tls"; "dialback"; "disk"; "pribadi"; "vcard"; "pribadi"; "kompresi"; "legacyauth"; "Versi: kapan"; "uptime"; "waktu"; "ping"; "semangat"; "daftar"; - jangan nonaktifkan modul ini, modul ini memungkinkan tidak hanya untuk mendaftar tetapi juga untuk mengubah kata sandi "adhoc"; "admin_adhoc"; "posix"; "omong kosong"; - tambahkan baris ini jika Anda ingin mengaktifkan jabber melalui http}; allow_registration = false; - dinonaktifkan untuk keamanan - ubah ke true jika Anda ingin mengaktifkan pembuatan akun dari klien itu sendiri ssl = {key = "/etc/prosody/certs/localhost.key"; sertifikat = "/etc/prosody/certs/localhost.cert"; } penyimpanan = "internal"; - penyimpanan default adalah file xml - secara opsional kita dapat menggunakan metode penyimpanan "sql" - ini memungkinkan penggunaan SQLite, MySQL atau PostgreSQL sebagai backend (walaupun parameter tertentu harus ditambahkan) authentication = "internal_hashed"; - kita dapat menggunakan "internal_plain" jika klien tidak mendukung SCRAM-SHA-1 - jika kita ingin menggunakan metode sasl untuk menggunakan LDAP nanti, kita harus menggunakan "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"; }

Setelah file konfigurasi diubah, kami memulai ulang layanan:

sudo layanan prosody kurangi

Sekarang kita akan melanjutkan untuk membuat akun. Dalam kasus ini, seperti dalam file konfigurasi kami menonaktifkan pendaftaran dari klien, akun harus dibuat secara manual di server. Metode otentikasi yang kita pilih pada konfigurasi (internal_hashed) membuat password tidak disimpan dengan jelas tetapi dengan mekanisme SCRAM-SHA-1. Jika klien perpesanan yang ingin kami gunakan tidak mendukung mekanisme ini, metode "internal_plain" dapat digunakan dalam konfigurasi.

Pertama kita akan membuat akun administrator layanan yang kita nyatakan dalam konfigurasi (menyatakannya tidak berarti bahwa mereka dibuat secara otomatis):

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

Kita dapat menggunakan perintah yang sama untuk akun lain yang ingin kita buat.

Akhirnya, kami memeriksa bahwa layanan sedang berjalan:

status sudo prosodyctl

Kita harus mendapatkan pesan seperti berikut:

Prosody berjalan dengan PID 1310

Konfigurasi klien

Konfigurasi tergantung pada klien, tetapi secara umum detailnya sederhana. Misalnya untuk Pidgin:

Tab "Dasar"

Nombre de usuario: John
Domain: mydomain.cu
Sumber: pc-john

"Tab Lanjutan

Keamanan koneksi: Gunakan enkripsi jika memungkinkan
Port koneksi: 5222
Sambungkan ke server: myserver.mydomain.cu

Uang kertas

Informasi lebih lanjut dapat ditemukan (termasuk penggunaan Cyrus SASL dengan LDAP dan cara membuat entri dari DNS) Dalam Artikel ini dari Debian Wiki.

Seorang pengguna berkomentar melalui DesdeLinux bahwa untuk benar-benar menghentikan layanan yang perlu Anda jalankan pkill lua5.1


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   KZKG ^ Gaara dijo

    Saya menyukainya ... mari kita lihat apakah sekali dan untuk selamanya saya mengubah OpenFire untuk ejabberd atau Prosody ini 🙂

    1.    hidup dijo

      Saya sudah melakukan tes di VirtualBox tepatnya untuk itu .. karena jika kami menunggu Anda anak saya .. ¬¬

      1.    KZKG ^ Gaara dijo

        ^ - ^ U ... hehe ...
        Sekarang saya mengirim tiket ke penyedia Hosting menanyakan tentang catatan DNS yang kita perlukan untuk menghapus 'omong kosong.'______

        1.    hidup dijo

          Baik. Jabber, IRC, Facebook, Gtalk, saya tidak tahu bagaimana atau di mana, tapi terhubung ..

  2.   Ernest Infante dijo

    Bagaimana integrasi dengan LDAP dari Prosody? dan BD?

  3.   busuk87 dijo

    beberapa gambar untuk yang kurang berpengetahuan tidak akan buruk ^. ^

  4.   pemburu dijo

    Di rumah saya memiliki prosodi, saya menginstalnya untuk diuji dan saya menyukainya karena kesederhanaannya. Detail ketika menghentikan server saya harus melakukan pkill lua5.1 untuk benar-benar menghentikannya.

  5.   auroszx dijo

    Wah, ini menarik. Adakah cara agar orang lain dapat membuat pengguna melalui GUI (bisa jadi web)? Bagaimana cara Anda mendapatkan domain untuk menggunakannya? 😛

    1.    pemburu dijo

      Anda mengaktifkan pendaftaran di konfigurasi dan dari jabber klien yang sama mereka terdaftar dengan mencentang opsi untuk membuat akun di server.

      allow_registration = benar;

  6.   Ferran dijo

    Saya mencari paket prosodi di slackware, tutorial yang sangat baik. Bersulang

  7.   Arturo Molina dijo

    Bagaimana cara memverifikasi apakah pengguna dapat mengautentikasi? atau bagaimana saya tahu jika pengguna terhubung ke server?

  8.   @Lcmux dijo

    Saya berhasil 😀 Saya dapat menginstal dan mengkonfigurasinya dengan benar. Instal server di satu PC dan klien adalah PC lain. tapi saya punya masalah. Agar klien mengetahui bahwa server saya dengan domain (medellinlibre.org) adalah LOKAL. Saya harus menambahkan ke file host IPDELSERVIDOR medellinlibre.org. Jika tidak, itu tidak terhubung, karena alasan yang jelas. Pertanyaan saya adalah apakah tidak ada cara bagi semua PC di jaringan untuk mengetahui secara default bahwa domain ini ada di LAN pada IP tertentu?

    1.    ltd dijo

      keraguan yang sama! tahukah kamu pada akhirnya ?? Saya mulai dengan prosodi ...

    2.    pemburu dijo

      Sangat sederhana, di pidgin tentukan ip server dalam opsi lanjutan, opsi lainnya adalah memasang dns di LAN Anda.

  9.   Francisco dijo

    Topik ini sangat menarik dan saya ingin tahu apakah Prosody mendukung websockets. Saya tertarik untuk membuat klien web xmpp

    1.    @Lcmux dijo

      Anda bisa melihat ini. http://code.google.com/p/xmppwebchat/

  10.   Inukaze dijo

    Hai, bukankah Anda memiliki versi tutorial dengan konfigurasi yang hanya untuk intranet domestik? Tidak ada domain atau semacamnya. sehingga hanya 1 komputer dengan Liñux yang merupakan server dan komputer lain yang terhubung dengannya

    Ini hanya untuk dapat mengobrol antar komputer di intranet melalui pidgin.