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
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 🙂
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 .. ¬¬
^ - ^ Ư ... 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 .'______
Đượ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 ..
Việc tích hợp với LDAP của Prosody như thế nào? và BD?
Đây là cách thực hiện: http://blog.marc-seeger.de/2009/12/30/setting-up-prosody-to-authenticate-against-ldap/
một vài hình ảnh cho những người ít hiểu biết sẽ không tệ ^. ^
Ở 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.
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ó? 😛
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;
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
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ủ?
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?
cùng nghi ngờ! cuối cùng bạn đã biết chưa ?? Tôi đang bắt đầu với ...
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.
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
Bạn có thể thấy điều này. http://code.google.com/p/xmppwebchat/
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.