Jabber сервер для linux

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Ubuntu Server. Настраиваем Jabber-сервер.

Ubuntu Server. Настраиваем Jabber-сервер.

Выбор корпоративного средства обмена сообщениями задача не из легких. Публичные сервисы, такие как ICQ, Skype и т.п., кроме известных всем достоинств имеют ряд недостатков, таких как необходимость наличия интернета на каждом рабочем месте и невозможность контролировать круг общения сотрудников, в той же ICQ свободно можно в рабочее время общаться с друзьями на отвлеченные темы. Что же делать? Здесь нам на помощь приходит Jabber, позволяющий создать корпоративный сервер обмена сообщениями, как это сделать мы расскажем в данной статье.

Мы будем рассматривать установку Jabber-сервера на выделенный ПК под управлением Ubuntu Server 10.04.1 LTS. Имя сервера, выбранное при установке ubuntu-jabber, которое будет являться именем jabber-сервера, если вы хотите использовать иное имя, то вы будете должны внести соответствующую запись в /etc/hosts.

В качестве jabber-сервера мы будем использовать ejabberd, к достоинствам которого относятся: простота настройки, нетребовательность к системным ресурсам и возможность LDAP авторизации (в том числе интеграция в AD), что весьма актуально в корпоративной среде.

Установка сервера проста, достаточно одной комманды:

Все настройки хранятся в /etc/ejabberd/ejabberd.cfg, откроем его и раскомментируем следующую строку:

Ниже укажем логин администратора (у jabber-сервера свой администратор, не путать с системным) и имя сервера:

Где ADMIN — имя учетной записи администратора, а SERVER_NAME имя сервера, в нашем случае ubuntu-jabber. После чего опускаемся вниз до секции ACCESS RULES в которой находим и приводим к следующему виду опцию:

Данная опция позволяет регистрировать учетные записи пользователям самостоятельно, при помощи клиента. Последняя интересующая нас опция — язык по умолчанию:

Теперь зарегистрируем учетную запись администратора:

И перезапустим сервер:

Теперь можно приступить к настройке клиентских ПК. В первую очередь добавим в C:\Windows\System32\drivers\etc\hostsстроку следующего вида:

Данная строка позволяет клиентам обращаться к jabber-серверу по имени хоста. Если в вашей организации большое количество ПК и вносить настройки на каждом из них затруднительно, то самое время задуматься о внедрении Службы каталогов, в этом случае было бы достаточно одной записи на DNS сервере.

В качестве jabber-клиента мы используем Psi, кроссплатформенный клиент с богатыми возможностями, хотя вы можете выбрать то, что вам больше понравиться, благо есть из чего — список клиентов достаточно велик.

Установка и регистрация учетной записи просты и не занимают много времени, структура и принципы работы с программой ничем не отличаются от других IM клиентов и не должны вызвать каких-либо затруднений у пользователя. Добавляем контакт собеседника и уже можно общаться.

Для администрирования сервера можно использовать веб-админку, которая доступна по адресу: http://SERVER_NAME:5280/admin и позволяет решать ежедневные задачи администрирования без обращения к файлам конфигурации.

В общем на этом можно было бы и остановиться, если бы не одно но. По умолчанию список контактов (ростер на терминологии jabber) нового пользователя пуст. Это вполне нормально для личного использования или для работы с публичными серверами — пользователь сам выбирает с кем общаться, но абсолютно неприемлемо для корпоративной среды, где список контактов заранее определен. Было бы неплохо, чтобы новый пользователь автоматически попадал в этот список и автоматически получал его в свой клиент. К счастью сделать это совсем несложно. В /etc/ejabberd/ejabberd.cfg найдем и раскомментируем следующую строку:

Сохраняем файл, перезапускаем сервис. Теперь в веб-админке в разделе Virtual Hosts — Имя вашего сервера появился пункт Группы общих контактов. Создаем такую группу и настраиваем как показано ниже:

Для того, чтобы в группу автоматически попадали все пользователи в поле Члены укажите @all@, а в поле Видимые группы укажите название вашей группы, которое вы ввели при ее создании.

Проверим как это работает. Зарегистрируем нового пользователя, как видим — все хорошо, он автоматически получил все контакты общей группы.

Вот теперь можно и закончить нашу статью. В результате несложных действий мы получили в свое распоряжение мощное корпоративное средство обмена сообщениями, в тоже время простое и понятное пользователю. Однако на этом возможности ejabberd не исчерпываются, он позволяет осуществлять коммуникации с другими сетями обмена сообщениями, для этого нужно настроить соответствующий транспорт, так что если ваши партнеры используют ICQ вы не потеряете контакта с ними, но это тема для отдельной статьи.

Источник

Установка ejabberd под Linux

Рассмотрим установку сервера ejabberd на компьютеры под управлением одного из дистрибутивов GNU/Linux для использования в локальной сети с открытым доступом из Интернет и с использованием службы DynDNS.

Читайте также:  1с хранилище конфигурации linux

Предполагается, что у Вас уже установлена операционная система, настроен доступ в Интернет, а доменное имя на DynDNS (допустим, это будет myjabber.ath.cx) указывает на внешний адрес Вашего компьютера (либо тот, который доступен из Вашей локальной сети, если Вы настраиваете сервер без возможности подключения к нему из Интернета).

Ejabberd может быть установлен на ваш сервер различными способами. Опишу три по убыванию предпочтительности:

  1. Установка из репозитория/портов. Идеальный по оптимизации и самый простой вариант.
  2. Сборка из исходного кода. Если этого пакета нет в репозиториях к вашему дистрибутиву, но очень хочется, чтобы сервер был оптимизированным и работал без ошибок — засучиваем рукава и переходим к соответствующему разделу. Тут вам понадобятся некоторые знания о Linux и/или помощь гуру.
  3. Предварительно собранные бинарные файлы с инсталлятором. Вариант весьма прост, но вряд ли оптимизирован именно под ваш дистрибутив.

Далее подробно рассмотрены эти варианты.

Содержание

Установка из репозитория

Дистрибутивов Linux великое множество, и нет никакой возможности рассмотреть детали установки в каждом из них. Упомянем наиболее популярные (предполагается наличие прав root):

openSuSE 11.4

Сначала подключим репозиторий, посвящённый программам обмена сообщениями:

Потом установим сервер:

Fedora

По умолчанию нужный репозиторий обычно подключен.

Debian-based дистрибутивы (Debian, *Ubuntu и другие)

Ejabberd входит в основную ветку репозитория, поэтому для установки просто скомандуйте:

Gentoo

Для установки ejabberd в Gentoo GNU/Linux выполните команды

Сборка из исходников

Рассмотрим сборку stable-версии ejabberd-2.0.5.

Для начала нужно, чтобы на сервере был установлен компилятор gcc и необходимые библиотеки (включая devel-части). Проверьте, есть ли у вас:

  • GNU Make
  • GNU C compiler (GCC)
  • libexpat 1.95 или выше
  • OpenSSL 0.9.6 или выше
  • Zlib 1.2.3
  • GNU Iconv 1.8 или выше
  • flex/yacc

В разных дистрибутивах проверка и установка делается разными способами. Дистрибутивов много, описывать каждый смысла не имеет. Если вы не знаете, как это сделать на вашем сервере, обратитесь к документации или гуру по данному дистрибутиву.

Для простоты операций будем работать пользователем root в его домашнем каталоге. Не забудьте потом прибраться.

Итак, нам нужен исходный код ejabberd. Идём на официальный сайт и выбираем, что нужно. Лучше выбирать stable версию, но если вы очень любите новые фишки и не боитесь нестабильной работы, то берите beta, testing или SVN версии.

Я выбрал stable-версию 2.0.5 и скачал её:

Конечно же, у вас есть эта удобнейшая утилита — wget. 😉

Ещё нам понадобится свеженький Erlang — это компилятор языка, на котором написан ejabberd. Если Erlang есть в вашем репозитории, то лучше воспользоваться им. Если нет — покажу, как собрать его из исходных кодов.

Как программист, не удержусь от пояснения, зачем было использовать этот с виду громоздкий и неудобный язык. Он громоздок и неудобен действительно лишь с виду, для написания программ вроде hello world, однако предоставляет прекрасный инструментарий многопоточного и распределённого программирования. Это позволит вам единожды написанную и собранную программу использовать на огромных кластерах, состоящих из машин любой архитектуры, в которые будет проще простого добавить новые вычислительные мощности. Даже Java не обладает подобными возможностями. Именно поэтому ejabberd считается одним из самых быстрых и масштабируемых серверов протокола XMPP.

Но довольно лирики.

Если у вас наличествуют все инструменты, библиотеки и исходные коды, приступим.

Создадим временный каталог для наших сборок:

erlang

В моём случае скачанный архив называется otp_src_R13B01.tar.gz. Распаковываем его во временный каталог:

Переходим в каталог и собираем erlang:

Конечно же, следим за процессом, а не просто набираем команды. Программа сборки может сообщить об ошибке, но не каждый error или warning означает неисправимую ошибку. Например, процесс конфигурирования (команда configure) может сообщить, что не нашла компилятора java, библиотек odbc и wx, но это не является ошибкой. Просто соответствующие части erlang-а будут отключены. Перечисленные библиотеки нам не понадобятся для работы ejabberd.

После сборки вернёмся в домашний каталог командой cd.

ejabberd

В моём случае архив называется ejabberd-2.0.5.tar.gz. Распаковываем его во временный каталог:

Переходим в каталог с исходниками и собираем ejabberd:

После всех этих манипуляций все нужные файлы разложены согласно традициям UNIX/Linux. Конфиги, в частности,- в /etc/ejabberd. Скрипт запуска — /sbin/ejabberdctl — отрабатывает команду start, что позволяет сразу добавить в rc.d, хотя лучше всё же написать правильный скрипт управления службой согласно правилам вашего дистрибутива.

Установка готовых бинарников

Рассмотрим установку stable-версии 2.0.5 для 32-битного Linux. Для начала нужно скачать инсталлятор:

Далее следуйте указаниям программы установки.

Настройка

А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, какие порты прослушивать, и т.п.

Настройка сервера сводится к редактированию файла конфигурации /etc/ejabberd/ejabberd.cfg (путь показан на примере Debian GNU/Linux, в других дистрибутивах или при самостоятельной сборке из исходных кодов путь может отличаться). Откройте этот файл от пользователя root в любом удобном для Вас текстовом редакторе, после чего найдите следующие строки:

В первом параметре задается Jabber ID администратора, а во втором — доменное имя сервера. Приведите эти строки примерно к такому виду:

Читайте также:  Access windows services from run

В данном случае JID администратора задан admin@myjabber.ath.cx, а имя сервера, как уже условились выше — myjabber.ath.cx.

Теперь в том же файле найдите строки

и замените deny на allow — без этого пользователи сервера не смогут регистрироваться напрямую из своего Jabber-клиента.

Сохраните изменения и перезапустите ejabberd командой

Источник

Установка и настройка Openfire на Ubuntu Server

Openfire — сервер на базе XMPP для организации чата, и позволяющий обмениваться мгновенными сообщениями. В данной инструкции разберем его установку на Linux. Инструкция протестирована на Ubuntu 18.04.

Подготовка сервера

1. Системные требования

Требования к программному продукту, в основном, программные:

Компонент Требования
Операционная система Приложение является кроссплатформенным и его можно установить на различные операционные системы — Windows, Linux (CentOS, Ubuntu, Debian, Red Hat и так далее), FreeBSD, MacOS.
Программная платформа Openfire разработан на базе JAVA, поэтому необходимо наличие соответствующей платформы.
СУБД Поддерживаются MySQL/MariaDB, PostgreSQL, MS SQL Server, Oracle Database, IBM DB2, Adaptive Server Enterprise, HSQLDB (встраиваемая).
Аппаратная часть Не критична — openfire не требует много ресурсов для своей работы.

2. Безопасность

Если мы используем фаервол на Ubuntu, то необходимо открыть порты для Openfire (9090, 9091) и клиента xmpp (5222):

iptables -A INPUT -p udp —match multiport —dports 9090,9091 -j ACCEPT

iptables -A INPUT -p tcp —match multiport —dports 5222,9090,9091 -j ACCEPT

* где порт 5222 — подключение клиента к серверу; 9090 для соединения по HTTP, 9091 — HTTPS.

apt-get install iptables-persistent

Установка JAVA

Openfire написан на языке JAVA и для своей работы требует установки соответствующей платформы.

В Ubuntu данную установку можно выполнить из репозитория — для этого вводим команду:

apt-get install openjdk-8-jdk

После окончания установки можно ввести команду:

Она должна вернуть, примерно, следующее:

openjdk version «1.8.0_242»
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3

18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

Для корректной работы JAVA мы должны настроить переменные окружения — для этого смотрим путь до бинарника java:

update-alternatives —config java

Мы должны увидеть что-то на подобие:

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Nothing to configure.

В данном примере показан путь до исполняемого файла java (/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java). Открываем файл:

. и добавляем новой строкой:

После выполняем команду:

Проверяем, что переменная создалась:

Мы должны увидеть:

Загрузка и установка пакета для Openfire

Для установки XMPP-сервера необходимо загрузить пакет DEB — для этого переходим на официальную страницу загрузки Openfire. В открывшемся окне выбираем загрузку приложения для Linux и переходим по ссылке для загрузки deb:

На открывшейся странице копируем прямую ссылку на загрузку openfire:

Воспользовавшись ссылкой, загружаем установочный пакет:

wget -O openfire.x86_64.deb https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.5.1_all.deb

* в данном примере мы сохраним скачанный файл под именем openfire.x86_64.deb. На момент написания инструкции последняя версия была 4.5.1.

Устанавливаем скачанный пакет:

dpkg -i openfire.x86_64.deb

Разрешаем автозапуск сервиса:

systemctl enable openfire

Настройка базы данных

В качестве СУБД установим и настроим MariaDB.

Установка MariaDB и коннектора для JAVA

Для установки сервера баз данных вводим:

apt-get install mariadb-server

После переходим на страницу https://dev.mysql.com/downloads/connector/j/ — выбираем операционную систему и ее версию (в нашем примере, Ubuntu 18.04) — кликаем по Download:

На следующей странице копируем ссылку на скачивание коннектора:

С помощью скопированной ссылки загружаем на сервер пакет:

* в данном примере мы загружаем коннектор версии 8.0.19.

. и устанавливаем его:

dpkg -i mysql-connector-java_8.0.19-1ubuntu18.04_all.deb

Разрешаем автозапуск сервиса:

systemctl enable mariadb

Зададим пароль для mysql root-пользователя:

mysqladmin -u root password

* система дважды запросит пароль, который мы должны задать.

Создание и настройка базы для Openfire

Подключаемся к установленной базе:

* в качестве пароля вводим тот, что задали при установке.

Создаем базу данных:

> CREATE DATABASE openfire;

* мы создадим базу с именем openfire.

Создаем пользователя и дадим ему права на созданную базу:

> GRANT ALL PRIVILEGES ON openfire.* TO openfire@localhost IDENTIFIED BY ‘openfirepass’;

* в данном примере будет создан пользователь openfire, которому можно подключаться с локального компьютера (localhost); доступ пользователю будет предоставлен на базу openfire; пароль пользователя — openfirepass.

Подключимся к созданной базе:

. и загрузим в нее данные из файла openfire_mysql.sql (поставляется с Openfire):

Чтобы убедиться в загрузке данных, выполняем команду:

* мы должны увидеть список таблиц.

Отключаемся от СУБД:

Установка Openfire

Выполняем установку и конфигурирование Openfire через веб-интерфейс. Запускаем браузер и переходим по ссылке http:// :9090 — откроется страница установки.

Выбираем русский язык и нажимаем Continue:

В настройках задаем серверу имя домена и полное имя сервера:

. и кликаем по Продолжить.

Устанавливаем Стандартное подключение к базе данныхПродолжить:

Задаем настройки подключения к базе:

* в данном примере мы:

  1. Выбрали подключение к базе MySQL
  2. В строке jdbc:mysql://HOSTNAME:3306/DATABASENAME?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8 заменили
    • HOSTNAME — сервер MySQL. Задаем локальный адрес 127.0.0.1
    • DATABASENAME — имя базы данных. Прописываем openfire.
    • + добавили &useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC — в противном случае сервер будет выдавать ошибку при попытке подключиться к базе.
    • Итого:jdbc:mysql://127.0.0.1:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
  3. В настройках имени пользователя и пароль прописываем логин и пароль пользователя, который создавали для подключения к базе openfire (openfire/openfirepass).

После кликаем по Продолжить. На следующей странице задаем настройки профиля — просто оставляем положение по умолчанию и нажимаем Продолжить:

* если нам необходима интеграция с Active Directory, переключаемся на Сервер каталогов (LDAP) и выполняем настройку по инструкции ниже.

На последнем шаге создаем учетную запись администратора. Для этого вводим адрес почты и пароль:

. и нажимаем Продолжить.

Установка завершена — переходим в консоль, кликнув по Вход в консоль администратора:

Чтобы зайти в openfire используем логин admin и пароль, который задали после установки Openfire.

Установка и подключение клиента

Для примера, установим jabber-клиент Spark, который разработан тем же разработчиком, что и сам Openfire. Переходим на страницу загрузки Spark и скачиваем клиента, например, для Windows:

Дожидаемся загрузки файла и устанавливаем приложение, отвечая на вопросы мастера установки (можно оставить все по умолчанию).

После запускаем программу — кликаем по Дополнительно (1) — снимаем галочку Автоматически найти сервер и порт (2) и прописываем адрес сервера (3) — устанавливаем галочки для Accept all certificates. и Disable certificate hostname verification . (4) — OK (5):

Вводим данные для входа на сервер и нажимаем Войти:

. клиент должен подключиться к серверу.

Установка плагинов

Установка плагина может быть выполнена из панели управления Openfire. Для этого переходим в ПлагиныДоступные плагины — выбираем плагин для установки, например Bookmarks (плагин для хранения URL и закладок группового чата):

Справа от плагина кликаем по кнопке установки плагина:

Система автоматически загрузит и установит плагин.

Интеграция с Active Directory

Интеграция с Active Directory должна настраиваться в момент веб-установки сервера. Если у нас уже установлен Openfire, и мы хотим переключиться на использование LDAP, открываем конфигурационный файл:

systemctl restart openfire

Ждем секунд 10 (приложение перезапускается долго).

Открываем в браузере адрес http:// :9090 — откроется мастер установки. Проходим снова по всем шагам до настройки профилей и выбираем Сервер каталогов (LDAP):

1) Откроется страница настройки профилей LDAP. Заполняем поля:

  • Из списка Тип сервера выбираем Active Directory.
  • Protocol выбираем либо ldap, либо ldaps (если наш Active Directory поддерживает запросы с шифрованием).
  • В качестве хоста прописываем имя контроллера домена или целиком весь домен.
  • База DN — корневая директория LDAP, откуда будет выполняться поиск объектов.
  • Администратор DN — учетная запись в LDAP с минимальными правами (на чтение объектов AD). Правильнее всего создать отдельную запись и использовать ее.

Кликаем по Тестовые настройки — мы должны увидеть отчет об успешном прохождении тестирования:

2) Нажимаем Сохранить и продолжить — откроется страница с настройками полей и атрибутов. Данные атрибуты должны соответствовать атрибутам Active Directory. В моем случае пришлось заменить jpegPhoto на thumbnailPhoto и homePostalAddress на physicalDeliveryOfficeName. Правильные атрибуты можно посмотреть в оснастке Active Directory — пользователи и компьютеры (на вкладке Редактор атрибутов любого пользователя).

Нажимаем Тестовые настройки — откроется окно, в котором можно загрузить информацию от случайных профилей в AD и убедиться, что нужные нам данные загружаются корректно. После нажимаем Сохранить и продолжить.

3) На последнем шаге настройки интеграции с Active Directory оставляем предложенные настройки:

. и нажимаем Тестовые настройки — мы должны увидеть информацию о группах, которую сможет получить Openfire. Кликаем Сохранить и продолжить.

Конфигурирование LDAP завершено. Теперь добавим администраторов системы, которые смогут управлять сервером из панели управления:

Обратите внимание, что доступ к панели управления под встроенным администратором Openfire будет невозможен после смены профилей на использование LDAP. Обязательно добавляем хотя бы одного пользователя, у которого будут привилегии настройки.

Настройка завершена. Пробуем авторизоваться в панели управления под учетной записью администратора, которую мы добавили. После подключаемся клиентом под своей учетной записью в AD.

Аутентификация на основе групп

Если необходимо ограничить пользователей, которые могут подключаться к серверу, можно использовать группы Active Directory. Для этого открываем панель управления Openfire и переходим в раздел СерверНастройки сервера и кликаем по кнопке Изменить:

В открывшемся окне переходим к разделу 2. Отображение пользователей — кликаем по Расширенные настройки и добавляем Пользовательский фильтр:

* например, как на изображении выше, можно добавить фильтр (memberOf=cn=Domain Admins,cn=Users,dc=dmosk,dc=local) — это означает, что к серверу смогут подключиться только те пользователи, которые принадлежат группе Domain Admins.

Смена домена

Если появилась необходимость сменить домен в Openfire, выполняем настройку в 2 этапа.

Шаг 1. Настройка в панели управления.

Переходим на вкладку СерверДиспетчер сервераСвойства системы — в поиске параметром находим xmpp.domain:

Справа от параметра кликаем по иконке редактирования:

Внизу появится форма для редактирования параметра — меняем домен на новый и сохраняем новое значение:

Шаг 2. Настройка системы в командной строке.

Открываем конфигурационный файл:

Находим строку с параметром fqdn и меняем в ней домен на новый, например:

Источник

Читайте также:  Прошивка для microsoft lumia 535 windows 10
Оцените статью