Здесь будет инструкция по развёртыванию сервера Openfire и его интеграция с доменом Microsoft Active Directory. Это позволит добавлять пользователей в корпоративный чат, просто добавив их в группу Active Directory и удалять, просто отключив учётную запись, а так же будет общий контакт-лист, где будут перечислены все сотрудники предприятия.
Имеем инфраструктуру с Active Directory
Домен: TERRAL Имя домена: terral.local FQDN сервера AD: DC1.terral.local FQDN jabber сервера: openfire.terral.local
Подготовка DNS сервера. Для того, чтобы клиенты смогли найти наш сервер в сети, создадим в прямой зоне DNS A-запись, указывающею на нашу машину, PTR запись в обратной зоне и три служебные SRV записи:
SRV recond 1: service: _xmpp protocol: _tcp priority: 0 weigth: 100 port: 5269 hostname: openfire.terral.local. SRV recond 2: service: _xmpp-server protocol: _tcp priority: 0 weigth: 100 port: 5269 hostname: openfire.terral.local. SRV recond 3: service: _xmpp-client protocol: _tcp priority: 0 weigth: 100 port: 5222 hostname: openfire.terral.local.
Настраиваем Kerberos
mcedit /etc/krb5.conf
Прописываем в параметры realm название нашего домена, и приводим файл вот к такому виду:
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = TERRAL.LOCAL dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] TERRAL.LOCAL = { kdc = DC1.terral.local admin_server = DC1.terral.local } [domain_realm] .terral.local = TERRAL.LOCAL terral.local = TERRAL.LOCAL
Качаем openfire и устанавливаем
wget http://download.igniterealtime.org/openfire/openfire-4.1.5-1.i686.rpm yum install ~/openfire-4.1.5-1.i686.rpm
Ставим mysql
yum install mariadb mariadb-server libldb.i686 krb5-workstation
Устанавливаем нужные пакеты для работы openfire:
yum install java glibc
Добавляем в автозагрузку и запускаем mysql и openfire
systemctl enable mariadb.service systemctl start mariadb.service systemctl enable openfire.service systemctl start openfire.service
Подключаемся к MySQL:
mysql -u root -p
Создаём базу в консоли MySQL и пользователя:
CREATE DATABASE openfire; INSERT INTO mysql.user (User,Host,Password) VALUES('пользователь','localhost',PASSWORD('пароль')); FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON openfire.* to пользователь@localhost; FLUSH PRIVILEGES; exit
Меняем кодировку базы на utf8
mysql -u root -p use openfire; alter database character set utf8; alter database collate utf8_general_ci;
Теперь переходим к настройке самого IM-сервера. Заходим по адресу:
http://openfire.terral.local:9090
При подключении в серверу БД указываем Database URL :
jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
Выберем вариант с подключением к серверу каталогов LDAP. Выбираем тип службы каталогов (Server Type), вводим хост, на котором распологается наш контроллер домена и Base DN. Так же, для чтения службы каталогов нам понадобится учётная запись простого пользователя. Можно создать например учётку с именем “openfire” и присвоить ей пароь, этого будет достаточно.
Настройка параметров поиска в каталоге. Для того, чтобы нам не попадались учётки отключенных пользователей нужно изменить условия поиска. Для этого, раскроем “Advanced Settings”, заменим фильтр поиска аккаунтов на другой, в поле “User Filter” вместо:
(objectClass=organizationalPerson) Заменим на: (objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))
Остальные параметры оставляем по-умолчанию.
Для создания корпоративного контакт-листа, создадим группу в домене, назовём ей к примеру “Spark_Users”, а в панели управления Openfire выберем “Users/Groups”, “Groups”, в списке групп, найдём нашу группу, и выберем “Enable contact list group sharing”, и дадим нашему контакт-листу имя, например название нашей компании.