Openfire в связке с Active Directory

Настройка сервера WIndows 2025 с Active Directory на борту.


Установим корпоративный меседжер openfire на сервер Ubuntu 24.04 а пользователей будем брать из AD на сервере  Windows 2025

1. Настройка DNS Server

Открываем диспетчер DNS

Зона прямого просмотра -> Выбираем или зоздаем зону - > ПК ->  создать узел А или АААА -> Пишем имя openfire, ip address 192.168.77.8, ставим галочку создать соответствующую PTR- запись

Проверяем Обратную Зону (если указатель не создан - создадим его)

Выбираем или создаем зону -> ПК создать указатель -> Вносим IP address узла 192.168.77.8 -> Имя узла выбираем openfire

2. Настроим Active Directory

Во первых нам понадобится защищенный LDAPS, как настроить замечательно описано тут  https://docs.inno.tech/ru/linux-configuration-manager/latest/maintenance-guide/integrations/ad-integration/set-ldap-over-ssl/?ysclid=mizm3jask9274610969

Проверим подключение к LDASP

win+R

ldp.exe

Подключение -> Подключить -> Сервер: dc1.my.local    Порт: 636  Ставим галочку на SSL

Создадим пользователя для нашего сервиса openfire

Открываем Active Directory – Пользователи и компьютеры -> Заходим в подразделение в котором создадим пользователя -> ПК -> создать пользователя -> Имя – openfire -> Имя входа пользователя openfire -> Пароль  PASSWORD_AD_USER -> Запретить смену пароля -> Срок действия пароля не ограничен -> Заходим в свойства пользователя, учетная запись, данная учетная запись поддерживает 128-разрядное шифрование ,  данная учетная запись поддерживает 256-разрядное шифрование.

3. Создаем Keytab

PowerShell от админа

ktpass -princ xmpp/DC1.my.local@MY.LOCAL -mapuser openfire@my.local -SetPass -pass PASSWORD_AD_USER –crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL  -out c:\keytab\openfire.keytab

Копируем keytab на сервер openfire

cd "c:\Program Files\PuTTY"

pscp.exe d:\openfire.keytab lynx@192.168.77.8:/home/lynx

Приступим к настройке сервера Ubuntu 24.04


Установим базу данных mariadb

apt install mariadb-server

mysql -u root –p

CREATE DATABASE openfire;

GRANT ALL PRIVILEGES ON openfire.* TO openfire@localhost IDENTIFIED BY 'PASSWORD_USER_DB';

FLUSH PRIVILEGES;

Установим пакет Openfire и зависимости

Скачиваю с официального сайта самую последнюю версию пакета для организации корпоративного чата: https://www.igniterealtime.org/downloads/   Скачиваем deb пакет и передаем через pscp на unix машину (Wget не смог скачать, разбираться было лень).

apt install default-jre

java -version

dpkg -i openfire_5.0.2_all.deb

Настроим получение Kerberos билета

Переместим наш созданный keytab

mv /home/lynx/openfire.keytab /etc/openfire/

chmod 640 /etc/openfire/openfire.keytab

chown -R openfire:openfire /etc/openfire

nano /etc/hosts

192.168.77.8  openfire.my.local openfire

192.168.77.249 dc1.my.local srv-dc

nano /etc/hostname
openfire.my.local

hostnamectl set-hostname openfire.my.local

reboot

Проверяем применилось или нет имя

uname –a

apt-get install krb5-user –y

cp /etc/krb5.conf /etc/krb5.conf.backup

nano /etc/krb5.conf

[libdefaults]
allow_weak_crypto = true
default_realm = MY.LOCAL
default_keytab_name = /etc/openfire/openfire.keytab
#dns_lookup_realm = false
#dns_lookup_kdc = false
ticket_lifetieme = 24h
kdc_timesync = 1
ccache_type = 4
forwardable = yes
rdns = no
default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac
default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac
permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 rc4-hmac
clock_skew = 300
[realms]
MY.LOCAL = {
kdc = dc1.my.local
admin_server = openfire.my.local
default_domain = MY.LOCAL
}
[domain_realm]
.my.local = MY.LOCAL
my.local = MY.LOCAL
[logging]
default = FILE:/var/log/krb5/krb5.log
kdc = FILE:/var/log/krb5/kdc.log
admin_server = FILE:/var/log/krb5/kadmin.log

Попробуем получить билет Kerberos

kinit -kV -p xmpp/openfire.my.local

Спросит пароль, вводим PASSWORD_AD_USER

Переходим к настройке сервера Openfire через WEB панель http://192.168.7.9:9090

  • Настройка сервера

Доменное имя XMPP: my.local      #тут название домена!!!

Имя уза сервера (полное доменное имя): openfire.my.local

Порт консоли администратора: 9090

Безопасный порт консоли админиcтратора: 9091

Снимаем галочку Ограничить доступ к консоли администратора

Шифрование свойств через : Blowfish

Продолжить

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

Стандартное подключение к базе данных

Продолжить

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

Предварительные настройки драйверов базы данных    Mysql

Класс драйвера JDBC    com.mysql.cj.jdbc.Driver

URL базы данных     jdbc:mysql://openfire:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC

Имя пользователя   openfire

Пароль    PASSWORD_DB_USER

Продолжить

  • Настройка профиля

Сервер каталога LDAP

Продолжить

Настройка соединений 1:3

Тип сервера Active Directory

Протокол LDAPS   хост dc1.my.local   Порт 636

База DN   OU=office,DC=my,DC=local     (чтобы найти путь, на сервере AD запускаем Редактирование adsi)

Администратор DN    openfire@my.local

Пароль   PASSWORD_AD_USER

Настройка теста

Если все ок то следующий пункт 3,2 без изменений

  • 3.3 отображение групп

Поле группы  cn

Поле участника member

Поле описания description

Расширенные настройки

Фильтр групп (objectCategory=Group)

Учетная запись администратора

Добавить администратора  openfire

Добавить

Продолжить

Чтобы появились в списке клиента пользователи заходим в панель управления openfire пользователи и группы -> Группы -> заходим в настройки нашей группы

Включить общий доступ к спискам контактов группы

Введите имя группы для списка контактов    (как ее будет видить клиент) BeerHoff

Все пользователи

Сохранить настройки списка контактов