Багато з нас використовують Gtalk o facebook чат не знаючи, що протокол, який ми використовуємо для спілкування, є не інакше, як XMPP (Розширюваний протокол повідомлень та присутності) який також відкритий.
En GNU / Linux у нас є кілька програм для створення нашого власного сервера XMPP o тріскотня як відомо, деякі з них складніші, ніж інші при налаштуванні. Наприклад, маємо ejabberd, який досить простий і легкий, але якщо ми хочемо оптимізувати набагато більше, маємо Просодія.
Тоді я залишаю вас Стаття опубліковано в КУШКА одним з наших користувачів (Hugo) і де він показує нам, як налаштувати наш власний сервер XMPP з Просодія.
Введення
Встановлюючи сервер XMPP (Jabber) для внутрішнього обміну повідомленнями в локальній мережі, багато хто вибирає jabber, ejabberd або openfire, але хоча і функціональні, ці програми можуть вимагати великих ресурсів.
Якщо у вас невелика або середня мережа і вам потрібна лише проста послуга обміну миттєвими повідомленнями, на щастя, існує легка серверна альтернатива, що називається просодією, яка, хоча і запрограмована на LUA, яка є інтерпретованою мовою, на думку розробників, вона працює дуже добре до луаджіть.
Цей короткий підручник пояснить, як встановити та налаштувати просодію на Debian stable.
Підготовка та монтаж
Пакети Prosody знаходяться у сховищі Debian, але розробники цього програмного забезпечення підготували сховище для Debian та похідні файли, що містять останні пакети та додаткові модулі, які ми можемо використовувати наступним чином:
echo "deb http://packages.prosody.im/debian стабільний основний" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - оновлення aptitude sudo
Після додавання сховища ми можемо приступати до встановлення просодії (додатково додаючи модулі для використання sasl
як механізм автентифікації, якщо це необхідно, що дозволяє інтегрувати просодію з pam
, LDAPІ т.д.).
sudo aptitude встановити sasl2-bin libsasl2-modules-ldap prosody liblua5.1- {sec0, cyrussasl0, event-prosody0}
Потім ми продовжуємо створювати самопідписані сертифікати для нашого домену:
cd / etc / prosody / certs sudo openssl req -new -x509 -days 1095 -nodes -out "mydomain.cu.cert" -keyout "mydomain.cu.key"
Майстер запитає у нас ряд даних, серед яких справді важливим є «Загальне ім'я (наприклад, сервер ІМЯ або ВАШЕ ім'я) », де ми повинні розмістити наш домен, оскільки ми будемо використовувати його в розділі VirtualHost файл конфігурації.
Крім того, якщо на сервері, де ми встановлюємо просодію, ми налаштували iptables
із політиками заборони за замовчуванням нам потрібно відкрити необхідні порти для нашої мережі, наприклад:
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 СТВОРЕНО, ПОВ'ЯЗАНО -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
конфігурація
Далі ми переходимо до модифікації деяких рядків конфігураційного файлу, для яких ми повинні відредагувати /etc/prosody/prosody.cfg.lua
так це виглядає так:
-
порти = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - параметр за замовчуванням базується на функції select (), натомість libevent використовує epoll (), яка є більш ефективною та масштабованою. modules_enabled = {"реєстр"; «саслаут»; "tls"; "зворотний дзвінок"; «диск»; «приватний»; "vcard"; "приватність"; «стиснення»; "legacyauth"; "версія"; «час безвідмовної роботи»; «час»; «пінг»; «бадьорість»; «реєстр»; - не вимикати цей модуль, він дозволяє не тільки реєструватись, а й змінювати "adhoc" паролі; "admin_adhoc"; "posix"; «бош»; - додайте цей рядок, якщо хочете увімкнути jabber через http}; allow_registration = false; - вимкнено для безпеки - змініть на true, якщо хочете увімкнути створення облікових записів від самого клієнта ssl = {key = "/etc/prosody/certs/localhost.key"; сертифікат = "/etc/prosody/certs/localhost.cert"; } зберігання = "внутрішнє"; - типовим сховищем є файл xml - за бажанням ми можемо використовувати метод зберігання "sql" - це дозволяє використовувати SQLite, MySQL або PostgreSQL як серверну систему (хоча певні параметри потрібно додати) authentication = "Internal_hashed"; - ми можемо використовувати "internal_plain", якщо клієнт не підтримує SCRAM-SHA-1 - якщо ми хочемо використовувати метод sasl для подальшого використання LDAP, ми повинні використовувати "cyrus" log = {error = "/ var / log / prosody / просодія. помилка "; 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"; сертифікат = "/etc/prosody/certs/mydomain.cu.crt"; }
Після того, як файл конфігурації був змінений, ми перезапускаємо службу:
sudo service prosody відняти
Тепер ми приступимо до створення облікових записів. У цьому випадку, як і у файлі конфігурації, ми відключаємо реєстр від клієнтів, облікові записи доведеться створювати вручну на сервері. Метод автентифікації, який ми обираємо в конфігурації (internal_hashed), робить так, щоб паролі не зберігалися чітко, а за допомогою механізму SCRAM-SHA-1
. Якщо клієнт обміну повідомленнями, який ми плануємо використовувати, не підтримує цей механізм, у конфігурації може бути використаний метод "internal_plain".
Спочатку ми створимо облікові записи адміністраторів служби, які ми заявляємо в конфігурації (їх оголошення не означає, що вони створюються автоматично):
sudo prosodyctl adduser juan@mydomain.cu sudo prosodyctl adduser pedro@mydomain.cu
Ми можемо використовувати ту саму команду для будь-якого іншого облікового запису, який ми хочемо створити.
Нарешті, перевіряємо, чи працює служба:
sudo prosodyctl статус
Ми повинні отримати таке повідомлення:
Просодія працює з PID 1310
Конфігурація клієнта
Конфігурація залежить від клієнта, але загалом деталі прості. Наприклад, для Піджин:
Вкладка "Основні"
Ім'я користувача: Джон
Область: mydomain.cu
Ресурс: ПК-Хуан
Вкладка "Додатково"
Безпека з'єднання: За можливості використовуйте шифрування
Порт підключення: 5222
Підключення до сервера: myserver.mydomain.cu
примітки
Більше інформації можна знайти (включаючи використання Cyrus SASL з LDAP і як створити записи з DNS) У ця стаття з Debian Wiki.
Користувач коментує через DesdeLinux щоб справді зупинити службу, яку потрібно було виконати pkill lua5.1
Мені це подобається ... давайте подивимось, чи раз і назавжди я зміню OpenFire на ejabberd або цю Просодію 🙂
Я вже роблю тести у VirtualBox саме для цього .. тому що якщо ми почекаємо вас, синку .. ¬¬
^ - ^ U ... хе-хе ...
Тепер я надсилаю квиток хостинг-провайдеру із запитом про запис DNS, який нам потрібно видалити `` jabber ''.
Добре. Jabber, IRC, Facebook, Gtalk, я не знаю, як і де, але підключайся ..
Як здійснюється інтеграція з LDAP Просодії? а BD?
Ось як це зробити: http://blog.marc-seeger.de/2009/12/30/setting-up-prosody-to-authenticate-against-ldap/
пара зображень для менш обізнаних було б не погано ^. ^
Вдома у мене є просодія, я встановив її для тестування і мені сподобалась простотою. Деталь під час зупинки сервера я повинен зробити pkill lua5.1, щоб справді зупинити його.
Ого, це цікаво. Чи є спосіб, за допомогою якого інші люди можуть створювати користувачів за допомогою графічного інтерфейсу (це може бути Інтернет)? Як би ви взяли домен для його використання? 😛
Ви вмикаєте реєстрацію в конфігурації, і з того самого клієнта jabber вони реєструються, встановивши прапорець для створення облікового запису на сервері.
allow_registration = true;
Я шукаю пакети просодій у слак-програмі, чудовий підручник. На ура
Як я можу перевірити, чи може користувач пройти автентифікацію? або як я можу дізнатися, чи користувач підключений до сервера?
Мені це вдалося 😀 Я зміг правильно встановити та налаштувати його. Встановіть сервер на одному ПК, а клієнт - інший ПК. але у мене проблема. Для того, щоб клієнт знав, що мій сервер з доменом (medellinlibre.org) є МІСЦЕВИМ. Я повинен додати до файлу хостів IPDELSERVIDOR medellinlibre.org. Якщо ні, це не підключається, зі зрозумілих причин. Моє запитання полягає в тому, чи немає можливості для всіх ПК у мережі за замовчуванням знати, що цей домен знаходиться в локальній мережі за даним IP?
той самий сумнів! ти знав наприкінці ?? Я починаю з просодії ...
Дуже просто, у pidgin вкажіть ip сервера в розширених параметрах, інший варіант - встановити dns у вашій локальній мережі.
Ця тема дуже цікава, і я хотів би знати, чи підтримує Prosody веб-сокети.Я зацікавлений у створенні веб-клієнта xmpp
Ви могли це побачити. http://code.google.com/p/xmppwebchat/
Привіт, у вас немає версії навчального посібника з конфігурацією, призначеною лише для внутрішньої інтрамережі? Ні домену, нічого подібного. ледь так, що лише 1 комп'ютер з Liñux є сервером та іншими комп'ютерами, які до нього підключаються
Це виключно можливість спілкуватися між комп’ютерами інтрамережі через pidgin.