Установите сервер XMPP (Jabber) с помощью Prosody [Обновлено]


Многие из нас используют Gtalk o facebook чат не зная, что протокол, который мы используем для связи, не что иное, как XMPP (Расширяемый протокол обмена сообщениями и присутствия) который также открыт.

En GNU / Linux у нас есть несколько приложений для настройки собственного сервера XMPP o трескотня как известно, одни сложнее других при настройке. Например, у нас есть Ejabberd, что довольно просто и легко, но если мы хотим еще больше оптимизировать, у нас есть просодия.

Тогда я оставлю тебя статья опубликовано в ГУТЛ одним из наших пользователей (Хьюго) и где он показывает нам, как настроить наш собственный сервер XMPP con просодия.

Введение

При установке сервера XMPP (Jabber) для внутреннего обмена сообщениями в локальной сети многие выбирают jabber, ejabberd или openfire, но, несмотря на свою функциональность, эти приложения могут потребовать много ресурсов.

Если у вас небольшая или средняя сеть, и вам просто нужна простая служба обмена мгновенными сообщениями, к счастью, есть легкая альтернатива сервера, называемая prosody, которая, хотя она запрограммирована на LUA, который является интерпретируемым языком, по словам разработчиков, он работает очень хорошо, спасибо луаджит.

Это короткое руководство объяснит, как установить и настроить prosody в стабильной версии Debian.

Подготовка и установка

Пакеты Prosody находятся в репозитории Debian, но разработчики этого программного обеспечения подготовили репозиторий для Debian и производных, содержащий последние пакеты и дополнительные модули, которые мы можем использовать следующим образом:

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

Как только репозиторий добавлен, мы можем приступить к установке prosody (дополнительно добавляя модули для использования sasl в качестве механизма аутентификации при необходимости, что позволяет интегрировать просодию с pam, LDAPИ т.д.).

sudo aptitude install 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 ESTABLISHED, RELATED -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 так это выглядит так:

ports = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - опция по умолчанию основана на функции select (), вместо этого libevent использует epoll (), который более эффективен и масштабируем. modules_enabled = {"список"; "саслаут"; "tls"; "обратный звонок"; «диск»; "частный"; "визитка"; "Конфиденциальность"; «сжатие»; "легасьяут"; "версия"; "время безотказной работы"; "время"; "пинг"; «бодрость»; "регистр"; - не отключайте этот модуль, он позволяет не только регистрироваться, но и менять пароли "adhoc"; "admin_adhoc"; "posix"; "чушь"; - добавьте эту строку, если хотите включить jabber через http}; allow_registration = false; - отключено для безопасности - измените значение на true, если вы хотите разрешить создание учетных записей из самого клиента ssl = {key = "/etc/prosody/certs/localhost.key"; сертификат = "/etc/prosody/certs/localhost.cert"; } storage = "внутренний"; - хранилище по умолчанию - файл xml - при желании мы можем использовать метод хранения «sql» - это позволяет использовать SQLite, MySQL или PostgreSQL в качестве бэкэнда (хотя должны быть добавлены определенные параметры) authentication = "internal_hashed"; - мы можем использовать "internal_plain", если клиент не поддерживает SCRAM-SHA-1 - если мы хотим использовать метод sasl для дальнейшего использования LDAP, мы должны использовать "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"; сертификат = "/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 статус

Мы должны получить такое сообщение:

Prosody работает с 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.   КЗКГ ^ Гаара сказал

    Мне нравится ... Посмотрим, поменяю ли я раз и навсегда OpenFire на ejabberd или эту Просодию 🙂

    1.    Elav сказал

      Я уже делаю тесты в VirtualBox именно для этого .. потому что если мы будем ждать тебя сын мой .. ¬¬

      1.    КЗКГ ^ Гаара сказал

        ^ - ^ У ... хе-хе ...
        Теперь я отправляю хостинг-провайдеру запрос о DNS-записи, которая нам нужна для удаления «jabber».

        1.    Elav сказал

          Ладно. Jabber, IRC, Facebook, Gtalk, не знаю как и где, но подключаюсь ..

  2.   Эрнесто Инфанте сказал

    Как проходит интеграция Prosody с LDAP? а БД?

    1.    Elav сказал
  3.   Ротс87 сказал

    пара изображений для менее знающих было бы неплохо ^. ^

  4.   Данхантер сказал

    Дома у меня есть просодия, установил на тест и понравился простотой. Деталь при остановке сервера Мне нужно сделать pkill lua5.1, чтобы действительно остановить его.

  5.   АуросZx сказал

    Вау, это интересно. Есть ли способ, которым другие люди могут создавать пользователей через графический интерфейс (может быть через Интернет)? Как бы вы подобрали домен для его использования? 😛

    1.    Данхантер сказал

      Вы включаете регистрацию в конфиге и с того же клиентского jabber они регистрируются, отметив опцию создания учетной записи на сервере.

      разрешить_регистрация = истина;

  6.   Ферран сказал

    Я ищу пакеты prosody в Slackware, отличный учебник. С уважением

  7.   Артуро Молина сказал

    Как я могу проверить, удалось ли пользователю пройти аутентификацию? или как я могу узнать, подключен ли пользователь к серверу?

  8.   @Jlcmux сказал

    Получилось 😀 смог правильно установить и настроить. Установите сервер на один компьютер, а клиент - это другой компьютер. но у меня проблема. Для того, чтобы клиент знал, что мой сервер с доменом (medellinlibre.org) ЛОКАЛЬНЫЙ. Я должен добавить в файл hosts IPDELSERVIDOR medellinlibre.org. В противном случае он не подключается по понятным причинам. У меня вопрос: нет ли возможности для всех ПК в сети узнать по умолчанию, что этот домен находится в локальной сети с заданным IP?

    1.    ltd сказал

      такие же сомнения! вы знали в конце ?? Начну с просодии ...

    2.    Данхантер сказал

      Очень просто, в pidgin укажите IP-адрес сервера в расширенных параметрах, другой вариант - смонтировать DNS в вашей локальной сети.

  9.   Франциско сказал

    Эта тема очень интересна, и я хотел узнать, поддерживает ли Prosody веб-сокеты. Я заинтересован в создании веб-клиента xmpp.

    1.    @Jlcmux сказал

      Вы могли это видеть. http://code.google.com/p/xmppwebchat/

  10.   Инукадзе сказал

    Привет, у вас нет версии руководства с конфигурацией, предназначенной только для внутренней интрасети? Без домена или чего-то подобного. вряд ли так, что только 1 компьютер с Liñux является сервером, а другие компьютеры, которые к нему подключаются

    Это только для того, чтобы иметь возможность общаться между компьютерами в интрасети через pidgin.