Рассмотрим установку сервера ejabberd на компьютеры под управлением ОС Windows в стандартной конфигурации для использования в локальной сети с открытым доступом из Интернет и с использованием службы DynDNS.
Предполагается, что у Вас уже установлена операционная система, настроен доступ в Интернет, а доменное имя на DynDNS (допустим, это будет myjabber.ath.cx) указывает на внешний адрес Вашего компьютера (либо тот, который доступен из Вашей локальной сети, если Вы настраиваете сервер без возможности подключения к нему из Интернета).
Первым делом скачайте программу-установщик на свой компьютер, сделать это можно на официальном сайте Process One на странице загрузки. После скачивания запустите файл и приступайте к установке.
Установка сервера[править]
После запуска установщика первым делом появится диалог выбора языка. Выберите русский и нажмите «OK«. Запустится мастер установки, который поможет выполнить Вам все необходимые шаги. Во время работы мастера Вам придется ответить на следующие вопросы:
- Принятие лицензионного соглашения. Ejabberd распространяется на условиях лицензии GPL.
- Каталог для установки программы. Здесь будут находиться основные исполняемые файлы сервера и файлы конфигурации, а также база данных пользовательских аккаунтов под названием Mnesia.
- Доменное имя сервера. Как уже говорили выше, пусть это будет myjabber.ath.cx.
- Логин администратора. Вместе с доменным именем он составит Jabber ID администратора сервера.
- Пароль администратора.
- Вариант конфигурации сервера. Кластеры используются только на высоконагруженных серверах, поэтому отвечаем «Нет«.
После ответа на эти вопросы начнется процесс установки, во время которого будут выполнены основные настройки сервера. После установки сервер займет на диске около 15 Мб. Для окончания установки осталось выполнить лишь несколько шагов.
-
Выбираем язык
-
Запуск мастера установки и настройки
-
Знакомимся с лицензионным соглашением
-
Выбираем каталог для установки
-
Вводим домен сервера
-
Вводим логин администратора
-
Вводим пароль администратора
-
Выбираем тип конфигурации сервера
-
Установка сервера
-
Установка завершена
Запуск сервера[править]
Сервер добавляет себя в список сервисов системы, но не запускается автоматически. Для запуска в ручном режиме сделайте двойной щелчок по ярлыку «Запустить ejabberd» на рабочем столе, а для запуска сервера при старте системы измените в «Панель управления -> Администрирование -> Сервисы» тип запуска сервиса ejabberd с «Ручной» на «Автоматический«.
Если при попытке запуска сервера возникает следующее сообщение об ошибке:
Starting ejabberd... ./ejabberdctl: erl.exe: can't execute: (14001) Error 14001 There is a problem starting Erlang. If the error you see is 14001, you need to install: Microsoft Visual C++ 2005 SP1 Redistributable Package You can download that installer from www.microsoft.com You can also check the ejabberd Administrator Guide
то потребуется дополнительно установить Microsoft Visual C++ 2005 SP1, скачать его можно с официального сайта Microsoft.
После успешного запуска сервера откроется информационная веб-страница в браузере.
Панель администратора и клиент, подключенный к серверу
С этого момента к Вашему серверу можно подключаться с других компьютеров, пользователи могут заводить учетные записи, общаться между собой и устраивать конференции.
Используя свой администраторский аккаунт, Вы можете выполнять некоторые административные функции прямо из своего Jabber-клиента, например, можно создавать новые учетные записи и просматривать список подключенных пользователей. Эти функции доступны через браузер сервисов. Также становятся доступны стандартные функции администратора — рассылка массовых сообщений для всех пользователей и установка так называемого «Сообщения дня».
Кроме того, Вы можете получить доступ к веб-интерфейсу, через который можно управлять настройками сервера и смотреть статистику.
Авторизация в панели администратора
Этот интерфейс доступен на Вашем компьютере по адресу http://localhost:5280/admin. Для авторизации введите в поле «Пользователь» полный Jabber ID администратора, а в поле «Пароль» — пароль, введенный Вами при установке сервера.
Ссылки[править]
- Настройка ведения логов в конференции
Время на прочтение4 мин
Количество просмотров9.9K
Prosody — это легковесный кроссплатформенный XMPP-сервер, написанный на языке программирования Lua. На хабре есть несколько статей по настройке prosody в стандартном варианте — в linux. Настройка в windows содержит несколько подводных камней, о которых я постараюсь рассказать.
Сперва расскажу о плюсах и минусах данного решения. Плюсы: экстремальная легковесность.
На скриншоте — типичное потребление ресурсов prosody+служебной утилиты srvany, которую я использовал для создания службы. Ещё к плюсам можно отнести модульность и поддержку многих XEP.
И минусы: отсутствие GUI (для кого-то это не минус), для настройки под windows нужно поработать напильником. Настройка под windows сложнее аналогичной настройки под linux.
Первый подводный камень ожидает нас уже на этапе скачивания дистрибутива. Для windows можно скачать, как инсталлятор, так и просто архив с prosody. Дело в том, что все до единого bat-файлы содержат строчку
if exist Uninstall.exe set datastore=%APPDATA%\Prosody
Это значит, что если найден деинсталлятор, то все данные сервера будут храниться в %APPDATA% запустившего сервер пользователя. Это не то, что нам нужно, поэтому, для того, чтобы хранить данные там же, где хранится всё остальное, нужно либо использовать дистрибутив с архивом вместо инсталлятора, либо переименовать после инсталляции файл uninstall.exe, например, в uninstall.bkp.exe. Скачиваем и устанавливаем необходимый дистрибутив.
Второй подводный камень — prosody под windows не имеет службы. Будем считать, что вас не устраивает каждый раз для запуска prosody логиниться под пользователя и запускать bat-файл prosody.bat. Для создания службы prosody я предлагаю использовать утилиту srvany, входящую в Windows Server 2003 Resource Kit Tools. Даже если ОС на вашем сервере будет отличаться от server 2003, srvany должна нам помочь.
- Устанавливаем resource kit, соглашаемся с предупреждениями о несовместимости с ОС, если они будут.
- Открываем командную строку cmd от имени администратора, выполняем следующее (вставьте свой путь к srvany):
instsrv.exe Prosody "C:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe"
- Открывaем regedit, идём в «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Prosody«
- Создаём раздел «Parameters«.
- В разделе «Parameters» создаём строковый параметр «Application» со значением «C:\Program Files (x86)\Prosody\prosody.bat» (подставьте свой путь).
Служба создана, можно выставить ей тип запуска «автоматически«. Внимание! Остановить созданную таким образом службу нельзя, для остановки завершите процессы srvany и lua. До тех пор, пока не сделаны все настройки, службу запускать не надо.
Настроим prosody. Для этого запустим bat-файл editconfig.bat. Все опции документированы, я не буду описывать всю настройку досконально. Документация по модулям может быть найдена на официальном сайте.
Рекомендуется использовать tls для шифрования сессий. Есть несколько вариантов настройки tls:
- Можно получить бесплатный сертификат на год у StartCom. Если вы планируете открыть доступ к jabber-серверу из интернета.
- Можно использовать самоподписанный сертификат. При первоначальном подключении к такому серверу клиенты, обычно, выдают множественные предупреждения.
Генерация самоподписанного сертификата
Использовать prosodyctl для генерации сертификата в windows мы не можем, т.к. эта утилита не портирована. Необходимо
- скачать openssl для windows
- Указать конфигурационный файл openssl.cnf из поставки prosody (лежит в папке cert). Для этого необходимо открыть командную строку и выполнить следующее (указав свой путь):
set OPENSSL_CONF=C:\Program Files (x86)\Prosody\certs\openssl.cnf
- Перейти в директорию с распаковынным openssl и сгенерировать сертификаты:
openssl req -new -x509 -days 1825 -nodes -out "prosody.crt" -newkey rsa:2048 -keyout "prosody.key"
- Можно просто отключить модуль tls (хоть он и помечен, как generally required) или не указывать путь к сертификатам в конфигурационном файле. Это подойдёт для небольшого корпоративного офиса.
Если вы настраиваете корпоративный сервер, то вам понадобится включить модуль groups для общего ростера.
Необходимо раскомментировать соответствующую строчку в конфиге для того, чтобы загружать модуль groups при старте сервера, подготовить текстовый файл с описанием групп и указать путь к файлу:
modules_enabled = {
-- Other modules
"groups"; -- Enable mod_groups
}
groups_file = "groups.txt"
Создадим groups.txt в поддиректории data. Если вы планируете использовать кириллицу, то правьте файл с помощью notepad++ или любого другого продвинутого текстового редактора в режиме UTF-8. Следующий пример файла взят из официальной документации:
[Support Team]
support@example.com
john.doe@example.com
[Development Team]
hardworkingdeveloper@example.net=Joe Coder
other.dev@example.com=Mel
Здесь есть один нюанс. Пользователи каждой группы видят только тех, кто входит в эту же группу. О других случаях официальная документация молчит. Взглянув на исходный код модуля видно, что если поставить + перед названием группы, то она становится общей — эту группу видят все.
[+Support Team]
support@example.com
john.doe@example.com
[+Development Team]
hardworkingdeveloper@example.net=Joe Coder
other.dev@example.com=Mel
Добавлять в группу можно даже несуществующих на данный момент пользователей.
Во время конфигурации можно запускать prosody из стартового скрипта prosody.bat для проверки результата. Запускайте скрипт от администратора во избежание проблем. После окончательной настройки запустите созданную ранее службу prosody. Управлять prosody на ходу можно, используя модули admin_adhoc и admin_telnet.
2022. AstraChat — open-source чат для локальной сети на базе XMPP
Похоже, что Slack уйдет из России. А на российские мессенджеры в условиях кибервойны и аварий в дата-центрах — тоже нельзя будет положиться. Поэтому заменять Slack лучше сразу мессенджером, который можно установить на собственный сервер и полностью его контролировать. Из open-source мессенджеров для локальной сети, пожалуй, лучший — это AstraChat. Он работает и на Windows, и на Linux, и на Mac, имеет мобильные клиенты для iPhone и Android. А главное — он основан на надежном и безопасном протоколе XMPP, который не боятся использовать в государственных организациях и в банках. Кроме стандартного обмена сообщениями, AstraChat поддерживает аудио-связь, создание групповых чатов, пересылку изображений, индикацию онлайн статуса.
2014. PhoneUP интегрировали с Cisco Jabber
Компания Aurus представила новую версию своего программного продукта для расширения возможностей систем корпоративной IP-телефонии, построенной на базе Cisco Unified Communications Manager — PhoneUP 3.8. Основная новинка релиза — интеграция модуля «Директория» с Cisco Jabber. Теперь адресная книга Cisco Jabber может формироваться из нескольких корпоративных систем и баз данных и, таким образом, содержать не только контакты сотрудников из Active Directory. Например, при интеграции с CRM, Cisco Jabber штатными средствами подпишет любой входящий звонок от клиента. Новый функционал также востребован в разнородных сетях связи – модуль «Директория» позволит объединить контакты всех удаленных подразделений и аффилированных компаний, независимо от используемых в них АТС. А если актуальная информация о сотрудниках и их телефонах хранится в специализированной HR-системе, Cisco Jabber сможет получать контакты непосредственно из нее.
2008. Cisco купила Jabber
Речь идет не о протоколе Jabber (jabber.org), а о компании Jabber Inc (jabber.com). Эта компания была основным спонсором сообщества разработчиков Jabber с 2000 года и занимается разработкой и поддержкой коммерческой IM-платформы для бизнес-коммуникаций Jabber Extensible Communications Platform (Jabber XCP).Протокол Jabber (недавно переименованный в XMPP) — это открытый и безопасный стандарт для обмена мгновенными сообщениями и контроля онлайн-статуса. Jabber имеет шансы стать основным протоколом для всех мессенджеров. На сегодняшний день он является основным протоколом для систем GTalk, Gizmo, IBM Lotus Sametime, а другие системы, например MS Live Messenger и Yahoo Messenger используют Jabber для общения друг с другом. Приобретение платформы Jabber XCP и команды разработчиков, которые как никто другой разбираются в IM, — это еще один шаг Cisco к прямой конкуренции с Microsoft в сфере бизнес-коммуникаций. Как известно, Cisco владеет лучшим сервисом вэб-конференций Webex (LiveMeeting отдыхает) и недавно приобрела email-сервер PostPath (который по своим возможностям превосходит MS Exchange). Jabber XCP — отличное решение, чтобы переплюнуть MS Office Communications Server.
2008. ejabberd 2.0.0: новая версия Jabber-сервера
Разработчики ejabberd объявили о выходе Jabber-сервера ejabberd версии 2.0.0. Новая версия, по сравнению с веткой 1.1, содержит более 200 улучшений. В целом, в новом релизе реализованы следующие возможности: улучшена работа в кластерах и масштабируемость;внесены изменения в механизм межсерверных соединений;внесен ряд улучшений в механизмы безопасности, включая поддержку PAM, возможность установки ограничений в многопользовательских конференциях;добавлена поддержка обмена файлами через proxy;внесены изменения в модуль WebClient.
2007. Яндекс запустил свой Jabber-сервер
Яндекс запустил свой Jabber-сервер, интегрированный в службу Я.ру (на котором уже можно зарегистрироваться и без приглашений, возможно эти события связаны). Данные из профиля на Я.ру уже введены в vCard, также на автоматически настроенный транспорт «Почта» приходят уведомления о новой почте. В качестве логина используется почта *@ya.ru (т. е. ваш_логин_на_яндексе@ya.ru), и соответственно, ваш яндексовский пароль. Jabber-хост: xmpp.yandex.ru, порт: 5223, SSL-шифрование надо включить.
2007. Расширяются возможности мгновенного обмена сообщениями Jabber
Компании, которым необходим инструмент для организации более эффективной совместной работы сотрудников в реальном времени с использованием мгновенных сообщений (instant messaging, IM), обнаружат, что продукты на базе протокола XMPP (Jabber) обеспечивают хороший набор функций и интеграцию с другими платформами. Недавно лаборатория eWeek Labs изучила три продукта, базирующиеся на XMPP: OPN System Rivoli компании Antepo, Jabber XCP (Extensible Communications Platform) 5.1 фирмы Jabber и Wildfire Enterprise 3.1 производства Jive Software. OPN System Rivoli компании Antepo стоит 18 долл. на пользователя. Цены на Jabber XCP начинаются с 35 долл. на пользователя. А цена Wildfire Enterprise составляет 495 долл. плюс 12 долл. на каждого пользователя. Antepo предлагает бесплатную версию своего приложения с ограниченной функциональностью, а Jive Software — усеченную версию Wildfire с открытым исходным кодом.
2006. В CommuniGate Pro появилась поддержка Jabber
Компания CommuniGate Systems выпустила версию 5.1 коммуникационного сервера CommuniGate Pro. В ней переработаны Web-интерфейсы пользователя и администратора сервера, причем последний переведен на русский язык. Наряду с этим заметно упростилась процедура инсталляции CommuniGate Pro. В версии 5.1 представлен также новый протокол коммуникаций между клиентом и сервером, названный XIMSS (XML Interface to Messaging, Scheduling and Signalling), на базе которого организован интерфейс сервера XML API. Протокол XIMSS упрощает методы доступа к серверу программных клиентов, а также позволяет снизить стоимость клиентских программ и устройств. Обеспечена также поддержка популярного протокола обмена мгновенными сообщениями XMPP (или Jabber). Это значительно увеличивает число клиентских IM-программ, которые могут работать с сервером. С новой версией будет поставляться удобный Web-интерфейс пользователя для чтения почты, работы с календарем, заметками, задачами. Поддерживаются расширенные функции управления звонками и переадресации вызовов с возможностью их настройки пользователем.
Под катом чисто техническая статья про настройку Jabber-сервера под Linux и клиентов к нему под Windows с одновременным прикручиванием формирования контакт-листа из AD LDAP с SSO-авторизацией посредством Kerberos.
Сперва небольшой обзор имеющихся доступных решений.
Как ни странно, из актуальных Jabber-серверов SSO / GSSAPI поддерживают все три: eJabberd, Openfire, Prosody. Первый я не осилил ввиду зубодробительности erLang-а. Точнее, в дефолтной конфигурации его запустить как раз плюнуть (спасибо дистростроителям). Но вот если надо прикрутить что-то эх-такое, чего изначально не было предусмотрено в конструкции, возникает дикая попа-боль. Второй весьма user-friendly, большинство фич работают из коробки. Но это Java со всеми вытекающими. В частности, даже банальное подсовывание SSL-сертификата сразу превращается в увлекательнейший траходром. Третья лишена большинства недостатков первых двух, но она отвратительно (точнее, почти вообще никак) не документирована и не масштабируется. В том плане, что до 100…150 пользователей работает ОК, потом начинает тупить, тормозить и валиться. Конкретно мне больше и не надо, поэтому я взял в качестве сервера Prosody. О ней и пойдет дальнейший разговор.
Касаемо клиентов. Всего хоть как-то GSSAPI под виндой сейчас поддежривают: Miranda, Psi, Spark, Pidgin.
Miranda хороша-красива, когда «обвешана». На «голую» (без плагинов) без слёз не взглянешь. Если же надо обновить версию, то «обвес» придётся формировать заново. Она не enterprise-friendly. Она глючновата в плане интерфейса. Может, например, почему-то не показать поступившее входящее сообщение. Может обвалиться после очередного обновления винды. Не проверяет SSL-сертификат сервера на валидность. Одним словом, мы попробовали, попользовались, нам не понравилось.
Что касается Psi, то для реализации GSSAPI там надо самостоятельно собирать Qt-шную библиотеку под названием qca-wingss. Готового бинарника я ожидаемо не нашёл, а скопилировать самостоятельно ниасилил.
Spark — это опять же Java, со всеми вытекающими. Кто желает, может пользовать. Меня от неё тошнит.
Остался Pidgin. Но и тут всё не слава богу. Во-первых, последняя виндовая версия, которая ещё умеет GSSAPI — это 2.10.11. В более свежих поддержку GSSAPI/SSPI выпилили (это касается только виндовых сборок; под линуксом всё нормально). Во-вторых, на клиентские машины нужно дополнительно ставить MIT Kerberos for Windows. Берут здесь. В более-менее «стандартной» конфигурации каких-то дополнительных настроек не требуется, в не совсем типичных случаях его тоже потребуется «подкрутить».
Окей, с выбором софта более-менее разобрались. Теперь некоторые неочевидные нюансы. Полностью процесс «от А до Я» расписывать не буду. Потому что в энторнетах есть некоторое количество хаутушек, да и админ, взявшийся за подобную задачу, наверняка уже обладает некоторыми навыками и компетенцией. Расскажу о том, во что «влетел» конкретно я.
Что касается сервера. Документация к нему не отличается точностью и полнотой. Там есть определённая путаница. Следует учитывать, что до версии 0.8 данный механизм был реализован в модуле «mod_saslauth» через прокладку в виде saslauthd. После версии 0.8 функционал был перенесён в отдельный модуль «mod_auth_cyrus», а saslauthd больше не нужен. То есть пакет «sasl2-bin» можно и не ставить, а руководствоваться нужно вот этой статьёй.
Далее. Как всегда, требуется сформировать в системе правильный конфиг «/etc/krb5.conf» и сгенерировать keytab. И самое главное, prosody должна иметь доступ на чтение и к тому, и к другому. Если вовремя не вспомнить, что в Debian-е по умолчанию она запускается из-под отдельного непривилегированного пользователя, то могут возникнуть весьма трудно диагностируемые проблемы и странные совершенно неинформативные фатальные ошибки в логах.
Кроме того, если в том же OpenFire функционал импорта пользователей из AD реализован «из коробки», то в случае c Prosody его придётся колхозить самостоятельно, ручками. Это не так уж и сложно, но это нужно сделать. Об этом я напишу во второй части.
Теперь что касается клиента.
Pidgin-а ставим как обычно, но не свежее версии 2.10.11. С MIT Kerberos никаких премудростей нет, обычный wizard типа «xyяк, xyяк и в продакшн» «next, next и готово». На последнем шаге он спросит, надо ли автоматически стартовать при логине пользователя и надо ли сразу получать Kerberos-тикеты. Ответ: нет, не надо. Впрочем, на самом деле пофиг. Будет работать и так, и так.
В самом Pidgin-е в настройках аккаунта указываем только логин, имя домена и ресурс. Поле «пароль» оставляем пустым. Примерно так.
Если по условию задачи Kerber-осовский Realm совпадает с Jabber-овым доменом, то больше никаких действий предпринимать не нужно. Всё заведётся, пользователь успешно залогинится. В противном случае придётся совершить ещё ряд небольших шаманств.
Во-первых, сделать текстовый файл с названием «krb5.ini» по аналогии с линуксовым «krb5.conf» с указанием KDC и сопоставлением сущностей «domain» и «realm». Чтобы оно понимало, из какого Realm-а запрашивать ключи для того или иного домена и где вообще искать KDC (Key Distribution Center). Упомянутый «krb5.ini» следует положить либо в «c:\windows», либо в профиль пользователя (по желанию админа). Во вторых, после неудачной попытки залогиниться нужно назначить «Default Ticket» прямо в интерфейсе MIT Kerberos (на скриншоте обвёл синим прямоугольником). Это требуется сделать ровно один раз. Возможно, данную настройку можно выполнить и через реестр. Не знаю, настолько глубоко не ковырял.
Как-то так и настраивается SSO-аутентификация. Про формирование ростера (списка контактов и групп) читайте в следующем псто.
Установка и настройка JABBER сервера OpenFire
Добавлять комментарии могут только зарегистрированные пользователи. |
|