Встановіть XMPP (Jabber) сервер з Prosody [Оновлено]


Багато з нас використовують 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


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   KZKG ^ Гаара - сказав він

    Мені це подобається ... давайте подивимось, чи раз і назавжди я зміню OpenFire на ejabberd або цю Просодію 🙂

    1.    елав - сказав він

      Я вже роблю тести у VirtualBox саме для цього .. тому що якщо ми почекаємо вас, синку .. ¬¬

      1.    KZKG ^ Гаара - сказав він

        ^ - ^ U ... хе-хе ...
        Тепер я надсилаю квиток хостинг-провайдеру із запитом про запис DNS, який нам потрібно видалити `` jabber ''.

        1.    елав - сказав він

          Добре. Jabber, IRC, Facebook, Gtalk, я не знаю, як і де, але підключайся ..

  2.   Ернесто Інфанте - сказав він

    Як здійснюється інтеграція з LDAP Просодії? а BD?

  3.   Гнилі87 - сказав він

    пара зображень для менш обізнаних було б не погано ^. ^

  4.   dhunter - сказав він

    Вдома у мене є просодія, я встановив її для тестування і мені сподобалась простотою. Деталь під час зупинки сервера я повинен зробити pkill lua5.1, щоб справді зупинити його.

  5.   auroszx - сказав він

    Ого, це цікаво. Чи є спосіб, за допомогою якого інші люди можуть створювати користувачів за допомогою графічного інтерфейсу (це може бути Інтернет)? Як би ви взяли домен для його використання? 😛

    1.    dhunter - сказав він

      Ви вмикаєте реєстрацію в конфігурації, і з того самого клієнта jabber вони реєструються, встановивши прапорець для створення облікового запису на сервері.

      allow_registration = true;

  6.   Ферран - сказав він

    Я шукаю пакети просодій у слак-програмі, чудовий підручник. На ура

  7.   Артуро Моліна - сказав він

    Як я можу перевірити, чи може користувач пройти автентифікацію? або як я можу дізнатися, чи користувач підключений до сервера?

  8.   @Jlcmux - сказав він

    Мені це вдалося 😀 Я зміг правильно встановити та налаштувати його. Встановіть сервер на одному ПК, а клієнт - інший ПК. але у мене проблема. Для того, щоб клієнт знав, що мій сервер з доменом (medellinlibre.org) є МІСЦЕВИМ. Я повинен додати до файлу хостів IPDELSERVIDOR medellinlibre.org. Якщо ні, це не підключається, зі зрозумілих причин. Моє запитання полягає в тому, чи немає можливості для всіх ПК у мережі за замовчуванням знати, що цей домен знаходиться в локальній мережі за даним IP?

    1.    Ltd - сказав він

      той самий сумнів! ти знав наприкінці ?? Я починаю з просодії ...

    2.    dhunter - сказав він

      Дуже просто, у pidgin вкажіть ip сервера в розширених параметрах, інший варіант - встановити dns у вашій локальній мережі.

  9.   Франциско - сказав він

    Ця тема дуже цікава, і я хотів би знати, чи підтримує Prosody веб-сокети.Я зацікавлений у створенні веб-клієнта xmpp

    1.    @Jlcmux - сказав він

      Ви могли це побачити. http://code.google.com/p/xmppwebchat/

  10.   Інукадзе - сказав він

    Привіт, у вас немає версії навчального посібника з конфігурацією, призначеною лише для внутрішньої інтрамережі? Ні домену, нічого подібного. ледь так, що лише 1 комп'ютер з Liñux є сервером та іншими комп'ютерами, які до нього підключаються

    Це виключно можливість спілкуватися між комп’ютерами інтрамережі через pidgin.