- Записки IT специалиста
- Ubuntu Server. Настраиваем Jabber-сервер.
- Установка и настройка Openfire на Ubuntu Server
- Подготовка сервера
- 1. Системные требования
- 2. Безопасность
- Установка JAVA
- Загрузка и установка пакета для Openfire
- Настройка базы данных
- Установка MariaDB и коннектора для JAVA
- Создание и настройка базы для Openfire
- Установка Openfire
- Установка и подключение клиента
- Установка плагинов
- Интеграция с Active Directory
- Аутентификация на основе групп
- Смена домена
Записки 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 вы не потеряете контакта с ними, но это тема для отдельной статьи.
Источник
Установка и настройка 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:
В настройках задаем серверу имя домена и полное имя сервера:
. и кликаем по Продолжить.
Устанавливаем Стандартное подключение к базе данных — Продолжить:
Задаем настройки подключения к базе:
* в данном примере мы:
- Выбрали подключение к базе MySQL
- В строке 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
- В настройках имени пользователя и пароль прописываем логин и пароль пользователя, который создавали для подключения к базе 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 и меняем в ней домен на новый, например:
Источник