Cài đặt máy chủ XMPP (Jabber) với Prosody [Đã cập nhật]


Nhiều người trong chúng ta sử dụng Gtalk o Facebook Chat mà không biết rằng giao thức chúng tôi sử dụng để giao tiếp không phải là gì khác hơn XMPP (Giao thức hiện diện và nhắn tin có thể mở rộng) cũng đang mở.

En GNU / Linux chúng tôi có một số ứng dụng để thiết lập máy chủ của riêng mình XMPP o lời nói không rỏ như nó cũng được biết đến, một số phức tạp hơn những cái khác khi cấu hình. Ví dụ, chúng tôi có ejabberd, khá đơn giản và nhẹ nhàng, nhưng nếu chúng ta muốn tối ưu hóa nhiều hơn nữa, chúng ta có Thịnh vượng.

Sau đó tôi rời xa bạn một bài viết xuất bản năm GUTL bởi một trong những người dùng của chúng tôi (Hugo) và nơi anh ấy chỉ cho chúng tôi cách định cấu hình máy chủ của riêng chúng tôi XMPP với Thịnh vượng.

Giới thiệu

Khi cài đặt máy chủ XMPP (Jabber) để nhắn tin nội bộ trên mạng cục bộ, nhiều người chọn jabber, ejabberd hoặc openfire, nhưng mặc dù có chức năng nhưng những ứng dụng này có thể đòi hỏi nhiều tài nguyên.

Nếu bạn có một mạng vừa hoặc nhỏ và bạn chỉ muốn có một dịch vụ nhắn tin tức thời đơn giản, may mắn thay có một giải pháp thay thế máy chủ nhẹ được gọi là prosody, mặc dù nó được lập trình bằng LUA, một ngôn ngữ thông dịch, theo các nhà phát triển nó hoạt động rất tốt. sang luajit.

Hướng dẫn ngắn này sẽ giải thích cách cài đặt và cấu hình prosody trên Debian ổn định.

Chuẩn bị và cài đặt

Các gói prosody nằm trong kho lưu trữ Debian, nhưng các nhà phát triển phần mềm này đã chuẩn bị một kho lưu trữ cho Debian và các dẫn xuất có chứa các gói gần đây và các mô-đun bổ sung, chúng ta có thể sử dụng như sau:

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

Sau khi thêm kho lưu trữ, chúng tôi có thể tiến hành cài đặt prosody (bổ sung thêm các mô-đun để sử dụng sasl như một cơ chế xác thực nếu cần, cho phép tích hợp prosody với pam, LDAP, Vv).

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

Sau đó, chúng tôi tiến hành tạo chứng chỉ tự ký cho miền của chúng tôi:

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

Trình hướng dẫn sẽ hỏi chúng ta một loạt dữ liệu, trong đó dữ liệu thực sự cần thiết là “Tên chung (ví dụ: máy chủ FQDN hoặc tên của BẠN) ”nơi chúng tôi phải đặt miền của mình, vì chúng tôi sẽ sử dụng nó trong phần Máy chủ ảo tập tin cấu hình.

Ngoài ra, nếu trên máy chủ mà chúng tôi cài đặt prosody, chúng tôi đã cấu hình iptables với các chính sách từ chối mặc định, chúng tôi cần mở các cổng cần thiết cho mạng của mình, ví dụ:

sudo iptables -A INPUT -i lo -j CHẤP NHẬN sudo iptables -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m state --state ĐƯỢC THIẾT LẬP, LIÊN QUAN -j CHẤP NHẬN 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 MỚI -j CHẤP NHẬN

cấu hình

Tiếp theo, chúng tôi tiến hành sửa đổi một số dòng của tệp cấu hình mà chúng tôi phải chỉnh sửa /etc/prosody/prosody.cfg.lua vì vậy nó trông như thế này:

port = {5222, 5269} ssl_ports = {5223} administrator = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - tùy chọn mặc định dựa trên hàm select (), thay vào đó, libevent sử dụng epoll (), hiệu quả hơn và có thể mở rộng. modules_enabled = {"danh sách"; "saslauth"; "tls"; "Quay số lại"; "đĩa"; "riêng tư"; "vcard"; "riêng tư"; "nén"; "quyền thừa kế"; "phiên bản"; "thời gian hoạt động"; "thời gian"; "ping"; "pép"; "Đăng ký"; - Không vô hiệu hóa mô-đun này, nó không chỉ cho phép đăng ký mà còn cho phép thay đổi mật khẩu "adhoc"; "admin_adhoc"; "posix"; "bosh"; - thêm dòng này nếu bạn muốn bật jabber qua http}; allow_registration = false; - bị vô hiệu hóa để bảo mật - đổi thành true nếu bạn muốn cho phép tạo tài khoản từ chính ứng dụng khách ssl = {key = "/etc/prosody/certs/localhost.key"; chứng chỉ = "/etc/prosody/certs/localhost.cert"; } lưu trữ = "nội bộ"; - lưu trữ mặc định là tệp xml - tùy chọn chúng ta có thể sử dụng phương thức lưu trữ "sql" - điều này cho phép sử dụng SQLite, MySQL hoặc PostgreSQL làm chương trình phụ trợ (mặc dù phải thêm một số tham số nhất định) verify = "internal_hashed"; - chúng ta có thể sử dụng "internal_plain" nếu máy khách không hỗ trợ SCRAM-SHA-1 - nếu chúng ta muốn sử dụng phương thức sasl để sau này sử dụng LDAP, chúng ta phải sử dụng "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"; chứng chỉ = "/etc/prosody/certs/mydomain.cu.crt"; }

Khi tệp cấu hình đã được sửa đổi, chúng tôi khởi động lại dịch vụ:

dịch vụ sudo prosody trừ

Bây giờ chúng ta sẽ tiến hành tạo các tài khoản. Trong trường hợp này, giống như trong tệp cấu hình, chúng tôi vô hiệu hóa sổ đăng ký khỏi máy khách, các tài khoản sẽ phải được tạo thủ công trên máy chủ. Phương pháp xác thực mà chúng tôi chọn trong cấu hình (internal_hashed) làm cho mật khẩu không được lưu rõ ràng nhưng với cơ chế SCRAM-SHA-1. Nếu ứng dụng nhắn tin mà chúng tôi định sử dụng không hỗ trợ cơ chế này, thì phương thức "internal_plain" có thể được sử dụng trong cấu hình.

Đầu tiên, chúng tôi sẽ tạo tài khoản của các quản trị viên của dịch vụ mà chúng tôi khai báo trong cấu hình (khai báo chúng không có nghĩa là chúng được tạo tự động):

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

Chúng ta có thể sử dụng lệnh tương tự cho bất kỳ tài khoản nào khác mà chúng ta muốn tạo.

Cuối cùng, chúng tôi kiểm tra xem dịch vụ đang chạy:

tình trạng sudo prosodyctl

Chúng ta sẽ nhận được một thông báo như sau:

Prosody đang chạy với PID 1310

Cấu hình máy khách

Cấu hình tùy thuộc vào khách hàng, nhưng nhìn chung các chi tiết rất đơn giản. Ví dụ, cho Pidgin:

Tab "Cơ bản"

Nombre de Junior Member: John
Tên miền: mydomain.cu
Nguồn: pc-john

Tab "Nâng cao"

Bảo mật kết nối: Sử dụng mã hóa nếu có thể
Cổng kết nối: 5222
Kết nối với máy chủ: myserver.mydomain.cu

Notas

Có thể tìm thấy thêm thông tin (bao gồm cả việc sử dụng Cyrus SASL với LDAP và cách tạo mục nhập từ DNS) Trong Bài viết này từ Wiki Debian.

Một người dùng bình luận thông qua DesdeLinux để thực sự dừng dịch vụ bạn cần thực thi pkill lua5.1


18 bình luận, để lại của bạn

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   KZKG ^ Gaara dijo

    Tôi thích nó ... hãy xem nếu một lần và mãi mãi tôi thay đổi OpenFire cho ejabberd hoặc Prosody này 🙂

    1.    sống động dijo

      Tôi đã thực hiện các bài kiểm tra trong VirtualBox chính xác cho điều đó .. bởi vì nếu chúng tôi đợi con, con trai của tôi .. ¬¬

      1.    KZKG ^ Gaara dijo

        ^ - ^ Ư ... hehe ...
        Bây giờ tôi gửi một vé tới nhà cung cấp Dịch vụ lưu trữ hỏi về bản ghi DNS mà chúng tôi cần xóa 'jabber .'______

        1.    sống động dijo

          Được chứ. Jabber, IRC, Facebook, Gtalk, tôi không biết bằng cách nào hoặc ở đâu, nhưng kết nối ..

  2.   Ernest Infante dijo

    Việc tích hợp với LDAP của Prosody như thế nào? và BD?

  3.   thối87 dijo

    một vài hình ảnh cho những người ít hiểu biết sẽ không tệ ^. ^

  4.   thợ săn dijo

    Ở nhà tôi có prosody, tôi đã cài đặt nó để thử nghiệm và tôi thích nó vì sự đơn giản của nó. Một chi tiết khi dừng máy chủ mình phải làm pkill lua5.1 mới thực sự dừng được.

  5.   auroszx dijo

    Wow, điều này thật thú vị. Có cách nào mà người khác có thể tạo người dùng thông qua GUI (có thể là web) không? Bạn sẽ làm thế nào để có được một miền để sử dụng nó? 😛

    1.    thợ săn dijo

      Bạn kích hoạt đăng ký trong cấu hình và từ cùng một jabber máy khách, chúng được đăng ký bằng cách chọn tùy chọn tạo tài khoản trên máy chủ.

      allow_registration = true;

  6.   Địa ngục dijo

    Tôi đang tìm kiếm các gói prosody trong slackware, hướng dẫn tuyệt vời. Chúc mừng

  7.   Arturo Molina dijo

    Làm cách nào để xác minh xem người dùng được quản lý để xác thực hay không? hoặc làm thế nào tôi có thể biết nếu một người dùng được kết nối với máy chủ?

  8.   @Jlcmux dijo

    Tôi đã thành công 😀 Tôi đã có thể cài đặt và cấu hình nó một cách chính xác. Cài đặt máy chủ trên một PC và máy khách là một PC khác. Nhưng tôi có một vấn đề. Để khách hàng biết rằng máy chủ của tôi với miền (medellinlibre.org) là ĐỊA PHƯƠNG. Tôi phải thêm vào tệp máy chủ IPDELSERVIDOR medellinlibre.org. Nếu không, nó không kết nối, vì những lý do rõ ràng. Câu hỏi của tôi là nếu không có cách nào để tất cả các PC trên mạng biết theo mặc định rằng miền này nằm trong mạng LAN tại một IP nhất định?

    1.    Ltd dijo

      cùng nghi ngờ! cuối cùng bạn đã biết chưa ?? Tôi đang bắt đầu với ...

    2.    thợ săn dijo

      Rất đơn giản, trong pidgin chỉ định ip của máy chủ trong tùy chọn nâng cao, tùy chọn khác là gắn kết dns trên mạng LAN của bạn.

  9.   Francisco dijo

    Chủ đề này rất thú vị và tôi muốn biết liệu Prosody có hỗ trợ websockets không. Tôi quan tâm đến việc tạo một ứng dụng web xmpp

    1.    @Jlcmux dijo

      Bạn có thể thấy điều này. http://code.google.com/p/xmppwebchat/

  10.   Inukaze dijo

    Xin chào, bạn không có phiên bản hướng dẫn với cấu hình chỉ dành cho mạng nội bộ trong nước? Không có miền hoặc bất kỳ thứ gì tương tự. hầu như chỉ có 1 máy tính có Liñux là máy chủ và các máy tính khác kết nối với nó

    Nó chỉ có thể trò chuyện giữa các máy tính trong mạng nội bộ thông qua pidgin.