Разное

Настройка openfire active directory: Подробный гайд по установке OpenFire в среде Active Directory / Песочница / Хабр

Содержание

Подробный гайд по установке OpenFire в среде Active Directory / Песочница / Хабр

Установка OpenFire + MS AD + SQL server 2005 + Pandion 2.5 (auto NTLM):
Вводные данные:
Версия OS контроллера домена Active Directory: Windows 2008 Server Enterprise Edition SP2 x64 EN
Функциональный уровень леса и домена Active Directory: Windows 2008 Native
Версия OS: Windows 2003 Server R2 Enterprise Edition SP2 x86 EN
Версия OpenFire: 3.6.4
Версия SASL/SSPI патча от Normann: 7.2
Версия СУБД: SQL 2005 Server Standard Edition SP3 x86 EN
FQDN Active Directory домена: contora.local
NetBios-Name Active Directory домена: contora
FQDN сервера OpenFire: jabber.contora.local
Имя XMPP (Jabber) домена: jabber.contora.local
Используемый Jabber-клиент: Pandion 2.5
Версия Clarity Pandion патчей: датированы 19.02.2008
Редактор XML: AkelPad или Notepad ++
Браузер структуры Active Directory: Active Directory Explorer

Порядок установки сервиса IM:

1) Устанавливаем дистрибутив, отменяем немедленный запуск.

2) Устанавливаем сервис Openfire:

Start -> Run…- > «C:\Program Files\Openfire\bin\openfire-service.exe» /install

3) Создаем базу в MS SQL 2005:

Имя базы: openfire

Совместимость базы: 90 (MS SQL 2005)

Модель восстановления: Full

Расположение файлов базы: D:\Databases\openfire

4) Импортируем sql-схему в базу openfire:

a) В Management Studio открываем File -> New -> Database Engine Query

b) Нажимаем Connect

c) Выбираем файл схемы File -> Open ->File -> C:\Program Files\Openfire\resources\database\openfire-sqlserver.sql, OK

d) Нажимаем Parse, при успехе – Execute.

e) На ошибку длины индексов не обращаем внимания.

5) Включаем доступность SQL Server для входящих соединений:

a) В SQL Server Configuration Manager открываем SQL Server 2005 Network Configuration -> Protocols for -> TCP/IP -> IP Addresses

b) Во всех опциях TCP port устанавливаем 1433

c) Нажимаем OK.

d) Перезапускаем все сервисы SQL Server’а.

6) Создаем записи типа SRV на DNS-сервере для автоматического нахождения TCP/IP параметров сервера с доменом Jabber в текущем домене Active Directory:

SRV recond 1:

service: _xmpp

protocol: _tcp

priority: 0

weigth: 100

port: 5269

hostname: jabber.contora.local.

SRV recond 2:

service: _xmpp-server

protocol: _tcp

priority: 0

weigth: 100

port: 5269

hostname: jabber.contora.local.

SRV recond 3:

service: _xmpp-client

protocol: _tcp

priority: 0

weigth: 100

port: 5222

hostname: jabber.contora.local.

Проверяем корректность SRV-записей

Start -> Run… -> cmd -> nslookup -type=srv _xmpp-client ._tcp.contora.local

7) Заходим в админконсоль по 127.0.0.1:9090

7.1. В поле Domain водим имя домена Jabber – jabber. contora.local

7.2. Тип соединения с базой – внешняя — Standard Database Connection.

7.3. Database Driver Presets: Microsoft SQL Server

7.4. JDBC Driver Class: net.sourceforge.jtds.jdbc.Driver

7.5. Database URL: jdbc:jtds:sqlserver://jabber.contora.local:1433/openfire;appName=jive

7.6. Username: sa

7.7. Password: пароль для учетной записи sa.

7.8. Maximum Connection: 10000

7.9. Choose the user and group system to use with the server –> Directory Server (LDAP).

7.10. Server Type — > Active Directory.

7.11. Host -> sdc01.contora.local

7.12. Port -> 389

8) При конфигурировании доступа к LDAP устанавливаем следующие параметры:

Base DN: DC=contora,DC=local

Administrator DN: Administrator@contora, также вводим его пароль.

Нажимаем Test Settings должно появится Status – Success.

9) Настройка User Mapping (как и каких пользователей AD нужно найти):

а) Нажимаем Advanced Settings.

b) LDAP-фильтр пользователей User Filter: ((objectCategory=Person)(memberOf=CN=IMUsers,OU=Services Groups,OU=Head Office,DC=contora,DC=local)) — (искать только членов группы безопасности IMUsers).

c) В разделе User Profiles (vCard) отмечаем Store avatar in database if not provided by LDAP (хранить аватары пользователей в базе данных если не поддерживается в LDAP).

d) Нажимаем Test Settings должно появится окно с случайным пользователем этой группы безопасности Active Directory.

10) Настройка Group Mapping (члены какой группы безопасности будут клиентами Jabber):

a) Нажимаем Advanced Settings.

b ) Group Filter: (&(objectClass=group)(cn=IMUsers)) — (искать только группу безопасности IMusers).

c) Нажимаем Test Settings должно появится окно с названием найденной группы безопасности, с описанием и кол-вом членов.

11) Установка патча для автоматической NTLM авторизации клиентов OpenFire:

a) Распаковываем патч для NTLM.

b) Открываем из директории, куда мы уставили OpenFire файл \jre\lib\security\java.security для редактирования и после строк:

security.provider.8=sun.security.smartcardio.SunPCSC

security.provider.9=sun.security.mscapi.SunMSCAPI

вставляем строку

security.provider.10=net.za.darkskies.security.sasl.SSPIProvider

Сохраняем, закрываем.

c) Копируем файлы патча в каталог с установленной программой:

bin\SaslSspi.dll

lib\sasl-sspi.jar

plugins\saslmechanisms.jar

d) Перезапускаем OpenFire.

12) Включаем серверную поддержку прозрачной NTLM-аутентификации:

a) Заходим в консоль администрирования Server Manger > System Property и находим параметр sasl.realm. Значением параметра устанавливаем NETBIOS-NAME домена, то есть в нашем случае CONTORA(заглавными буквами). Если параметра нет – создаем новый.

b) Там же находим параметр sasl.approve.realms и СТИРАЕМ его значение, т. е. поле должно остаться пустым. Если параметра нет – создаем новый с пустым значением.

e) Параметр xmpp.domain вводим jabber.contora.local.

f) Параметр sasl.mechs — ANONYMOUS,PLAIN,NTLM. Если параметра нет – создаем новый.

13) Перезапускаем сервер — все должно работать.

14) Включаем пользователей в доменную группу IM Users.

15) Устанавливаем клиент Pandion 2.5 на КС.

Настройки Pandion по умолчанию для автоматического входа по NTLM:

Все настройки находятся в C:\Program Files\Pandion\settings\ в файлах с расширением *.XML.

После установки Pandion скопировать настройки в соответствующие файлы:

Разделы в brand.xml

(Указываем к какому Jabber домену присоединятся автоматически, используя NTLM-аутентификацию, вид авторизации и тип шифрования.

jabber.contora.local

jabber.contora.local

tls

ntlm

Разделы в servers.xml

Указываем, что в этом Jabber домене есть сервис конференций, и XMPP server (он же домен Jabber):

jabber. contora.local

9) Данные о файлах настройки Pandion

bookmarks.xml — Contains a list of conference rooms that are bookmarked by default for each user. Copied on profile creation to %APPDATA$/Pandion/Profiles/[user@server] in Windows XP /2003 and C:\Users\ikorzh\AppData\Roaming\Pandion \Profiles\[user@server] in Windows Vista/2008

brand.xml — Application configuration values that are loaded at runtime into external.globals.

default.xml — Standard settings for each user profile. Settings are stored per user in %APPDATA$/Pandion/Profiles/[user@server].

servers.xml — List of XMPP servers for the sign-up wizard and MUC services for conference room creation.

Установка сервера Openfire на Debian в домене AD2008 с прозрачной авторизацией пользователей

Здравствуйте!

Хочу поделиться опытом установки сервера Openfire на Debian в домене AD Windows Server 2008 с использованием SSO клиентом Spark.

Сама установка проста и занимает немного времени, основные сложности для меня возникли при настройке kerberos-авторизации всей связки ПО.

Инфраструктура:

Openfire 3.8.2 устанавливаем на Debian 7.0 «Wheezy» x64 с использованием СУБД MySQL.

Имя Debian-сервера: openfireserver.

Служба Active Directory развернута на Windows 2008 Server Standard (Kerberos использует шифрование RC4-HMAC-NT по умолчанию).

Домен realm.local.

Рабочие станции Windows XP Pro и Windows 7 Pro x32/x64 с установленным клиентом Spark 2.6.3.

Инсталляция по шагам (на Debian уже предустановлены MySQL, Samba, Sun/Oracle Java):

1) Логинимся под root-ом.

2) Проверяем предустановленный софт:

# cat /etc/issue

Debian GNU/Linux 7.0 \n \l

# smbd -V

Version 3.6.6

# mysql -V

mysql Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (x86_64) using readline 6.2

# java -version

java version «1.7.0_21»
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

3) Создаем базу данных «openfire» и пользователя MySQL «openfire»:

# mysql -p

Enter password: [набираем пароль пользователя root в MySQL]
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 49
Server version: 5.5.31-0+wheezy1 (Debian)
Copyright 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> CREATE DATABASE openfire;

Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON openfire.* TO 'openfire'@'localhost' IDENTIFIED BY 'PasswordGoldFish' WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

4) Загружаем и устанавливаем Openfire сервер.

# cd /tmp
# wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.8.2_all.deb

100%[==================================>] 12 838 026 2,92M/s за 7,6s
2013-05-28 12:58:04 (1,62 MB/s) — «downloadServlet?filename=openfire%2Fopenfire_3. 8.2_all.deb» saved [12838026/12838026]

/tmp# cp downloadServlet\?filename\=openfire%2Fopenfire_3.8.1_all.deb openfire_3.8.2_all.deb
/tmp# rm downloadServlet\?filename\=openfire%2Fopenfire_3.8.2_all.deb
/tmp# dpkg -i openfire_3.8.2_all.deb

Warning: /var/lib/openfire
Starting openfire: openfire

# /etc/init.d/openfire stop

Stopping openfire: openfire.

Меняем владельца:

# chown -R openfire:openfire /var/lib/openfire

# /etc/init.d/openfire start

Starting openfire: openfire.

5) Переходим в браузере по адресу (я использую Mozilla Firefox):
http://openfireserver:9090

Выбираем язык (русский перевод кривой, я оставил English)

Набираем Domain name: openfireserver.realm.local

Далее выбираем «Standard Database Conncection»

Выбираем Preset MySQL

Исправляем [hostname] на localhost и [database-name] на openfire

Набираем Username: openfire

Набираем Password: PasswordGoldFish

Нажимаем «Continue»

Настройка Profile, Step 1:

Выбираем «Directory Server (LDAP)»

Выбираем Server Type: Active Directory

Набираем Host: realm. local

Набираем Base DN: ou=Jabber,ou=Company_Users,dc=realm,dc=local

Набираем Administrator DN: cn=LDAP,cn=Users,dc=realm,dc=local

Набираем Password: Password_LDAP

Для этого шага я предварительно создал пользователя в AD с именем LDAP и вечным паролем: Password_LDAP

Сохраняем и продолжаем.

Шаги 2 и 3 сохраняем без изменений.

Добавляем администраторов Openfire, это могут быть любые пользователи из Base DN.

Просто набираем их логины и нажимаем «Add».

Если пользователи успешно добавились, жмем «Continue».

На этом установка Openfire закончена, можно зайти в консоль администратора.

Если зайти в раздел Users можно увидеть, что все пользователи из Base DN уже есть.

Все уже работает и пользователь могут авторизовываться обычным способом, но моя цель SSO (главная проблема — блокировка учетных записей в AD после смены пароля).

Для этого идем дальше…

6) Настраиваем Samba:

# nano /etc/samba/smb. conf
[global]
   workgroup = REALM
   realm =REALM.LOCAL
   security = ADS
   encrypt passwords = true
   dns proxy = no
   socket options = TCP_NODELAY
   kerberos method = secrets and keytab
   winbind refresh tickets = yes
   password server = realm.local
   domain master = no
   local master = no
   preferred master = no
   os level = 0
   domain logons = no
   load printers = no
   show add printer wizard = no
   printcap name = /dev/null
   disable spoolss = yes

7) Настраиваем Kerberos:

# nano /etc/krb5.conf
[libdefaults]
        default_realm = REALM.LOCAL
        kdc_timesync = 1
        forwardable = true
        proxiable = true
        default_tkt_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5
        default_tgs_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5
        permitted_enctypes = rc4-hmac des3-cbc-sha1 des-cbc-crc des-cbc-md5
[realms]
        REALM.LOCAL = {
                kdc = realm.local
                admin_server = realm. local
                default_domain = REALM.LOCAL
        }
[domain_realm]
        .realm.local = REALM.LOCAL
        realm.local = REALM.LOCAL

8) Перезапускаем Samba

# /etc/init.d/samba restart

9) Присоединяем Debian сервер к AD:

# net ads join -U DomainAdminAccount -D REALM.LOCAL

или

# net rpc join -U DomainAdminAccount

10) Проверяем как присоединилось:

# net ads testjoin

Join is OK

# net rpc testjoin

Join to ‘REALM’ is OK

11) Проверка DNS:

# nslookup
> openfireserver

Server: 192.168.1.1
Address: 192.168.1.1#53
Name: openfireserver.realm.local
Address: 192.168.1.22

> 192.168.1.22

Server: 192.168.1.1
Address: 192.168.1.1#53
22.1.168.192.in-addr.arpa name = openfireserver.realm.local.

> exit

Следующие пять шагов выполняем на контроллере домена Windows Server 2008:

12) Создаем в AD пользователя xmpp-openfire с вечным паролем и включенной опцией «Do not require Kerberos preauthentication» (Без предварительной проверки подлинности Kerberos).

13) Создаем SPN и связываем ее с пользователем xmpp-openfire:

Запускаем командную строку с привилегиями Администратора.

>setspn -A xmpp/[email protected] xmpp-openfire
>ktpass -princ xmpp/[email protected] -mapuser [email protected] -pass * -ptype KRB5_NT_PRINCIPAL

Вводим пароль пользователя xmpp-openfire.

14) Если для генерации keytab-файла будем использовать JRE, тогда создаем файл C:\Windows\krb5.ini с содержимым:

[libdefaults]
    default_realm = REALM.LOCAL
[realms]
    REALM.LOCAL = {
        kdc = realm.local
        admin_server = realm.local
        default_domain = REALM.LOCAL
    }
[domain_realm]
    .realm.local = REALM.LOCAL
    realm.local = REALM.LOCAL

15) Создаем keytab-файл (должно быть установлено Sun/Oracle JRE6):

cd C:\Program Files (x86)\Java\jre6\bin>
C:\Program Files (x86)\Java\jre6\bin>ktab -k xmpp.keytab -a xmpp/openfireserver. [email protected]

Вводим пароль пользователя xmpp-openfire.

Или можно воспользоваться другим способом, без JRE

>ktpass -princ xmpp/[email protected] -mapuser [email protected] -pass * -ptype KRB5_NT_PRINCIPAL -out xmpp.keytab

Вводим пароль пользователя xmpp-openfire.

16) Проверяем созданный keytab-файл (нужно JRE):

C:\Program Files (x86)\Java\jre6\bin>kinit -k -t xmpp.keytab xmpp/[email protected]

17) Переносим проверенный файл xmpp.keytab на Debian сервер в /usr/share/openfire/resources

Меняем владельца:

# chown openfire:openfire xmpp.keytab

18) Проверяем файл xmpp.keytab на Debian сервере:

# kinit -V -k -t /usr/share/openfire/resources/xmpp.keytab xmpp/[email protected]

19) Создаем на Debian сервере файл \etc\openfire\gss.conf с содержимым:

com.sun.security.jgss.accept {
    com.sun. security.auth.module.Krb5LoginModule
    required
    storeKey=true
    keyTab="/usr/share/openfire/resources/xmpp.keytab"
    doNotPrompt=true
    useKeyTab=true
    realm="REALM.LOCAL"
    principal="xmpp/[email protected]"
    isInitiator=false
    debug=true;
};

20) Заходим браузером в консоль администратора Openfire и в разделе System properties добавляем параметры:

sasl.gssapi.config = /etc/openfire/gss.conf

sasl.gssapi.debug = false

sasl.gssapi.useSubjectCredsOnly = false

sasl.mechs = GSSAPI

sasl.realm = REALM.LOCAL

xmpp.fqdn = openfireserver.realm.local

21) Перезапуск Openfire

# /etc/init.d/openfire restart

22) Устанавливаем на рабочие станции Jabber-клиента Spark 2.6.3 with JRE.

23) Правим реестр:

В раздел

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters

(For XP: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos)

добавляем параметр типа DWORD

AllowTGTSessionKey со значением 1.

24) Создаем в C:\Windows файл kbd5.ini с содержимым:

[libdefaults]
    default_realm = REALM.LOCAL
    default_tkt_enctypes = rc4-hmac
    default_tgs_enctypes = rc4-hmac
[realms]
    REALM.LOCAL = {
        kdc = realm.local
        admin_server = realm.local
        default_domain = REALM.LOCAL
    }
[domain_realm]
    .realm.local = REALM.LOCAL
    realm.local = REALM.LOCAL

25) Перезагружаем рабочую станцию.

26) В Spark выбираем опцию «Use Single Sign-On (SSO) via GSSAPI», набираем openfireserver в поле «Сервер» и подключаемся.

В Windows XP нет проблем, но в Windows 7 SSO в Spark работает из коробки только с непривилегированными пользователями.

Если вы работаете под учетной записью администратора — запускайте Spark от имени Администратора или отключите UAC.

Удачи!

По мере освоения продукта следует продолжение…

Openfire на связь с Active Directory

Прочитано:
3 410

Задача: настроить OpenFire на связь с AD с последующей прозрачной регистрацией клиентов

Итак, как выдались свободные минуты я решил, что пора задокумментировать, как настроить связку сервиса OpenFire и Active Directory чтобы не создавать учетные записи, а брать их из сервиса где и так все пользователи локальной сети имеют место быть. Да и контролировать удобнее, к примеру уволился человек и помимо блокировки доменной учетной записи блокируется доступ и к общему чату компании. Плюс можно мониторить переписку сотрудников, конфиденциально обсуждать технические вопросы не выводя переписку сторонним сервисам.

Мои характеристики системы на которых я тестируя связь сервиса OpenFire и Active Directory: CPU 2, RAM 2, HDD 50

Пожалуй начну свое документирование действий которыми я достиг практической части:

ekzorchik@srv-trusty:~$ sudo rm -Rf /var/lib/apt/lists

ekzorchik@srv-trusty:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-trusty:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y

ekzorchik@srv-trusty:~$ sudo nano /etc/hosts

10.10.10.12 srv-trusty.polygon.local srv-trusty

10. 10.10.2 srv-dc.polygon.local srv-dc

ekzorchik@srv-trusty:~$ sudo nano /etc/hostname

srv-trusty.polygon.local

ekzorchik@srv-trusty:~$ sudo service hostname start

ekzorchik@srv-trusty:~$ sudo reboot

ekzorchik@srv-trusty:~$ uname -a

Linux srv-trusty.polygon.local 4.4.0-83-generic #106~14.04.1-Ubuntu SMP Mon Jun 26 18:10:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

ekzorchik@srv-host:~$ sudo tasksel install lamp-server

New password for the MySQL "root" user:712mbddr@

Repeat password for the MySQL "root" user:712mbddr@

Как всегда создаю пользователя, пароль и базу для работы сервиса OpenFire:

ekzorchik@srv-trusty:~$ mysql -u root -p712mbddr@ -e "create database db_openfire"

ekzorchik@srv-trusty:~$ mysql -u root -p712mbddr@ -e "create user 'openfire'@'localhost' identified by '612mbddr@'"

ekzorchik@srv-trusty:~$ mysql -u root -p712mbddr@ -e "grant all on db_openfire. * to 'openfire'@'localhost'"

ekzorchik@srv-host:~$ sudo apt-get install openjdk-7-jre openjdk-7-jdk -y

ekzorchik@srv-trusty:~$ java -version

java version "1.7.0_131"

OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-0ubuntu0.14.04.2)

OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)

Теперь скачиваю с официального сайта самую последнюю версию пакета для организации корпоративного чата:

ekzorchik@srv-trusty:~$ wget -c https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.1.5_all.deb

ekzorchik@srv-trusty:~$ sudo mv downloadServlet\?filename\=openfire%2Fopenfire_4.1.5_all.deb openfire_4.1.5_all.deb

ekzorchik@srv-trusty:~$ file openfire_4.1.5_all.deb

openfire_4.1.5_all.deb: Debian binary package (format 2. C → нажимаю сочетание клавиш для выхода, т. е. Ctrl + C

ekzorchik@srv-trusty:~$ sudo nano -Y sh /etc/krb5.conf

[libdefaults]

default_realm = POLYGON.LOCAL

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetieme = 24h

kdc_timesync = 1

ccache_type = 4

forwardable = yes

rdns = no

default_keytab_name = /etc/openfire/openfire.keytab

default_tgs_enctypes = des-cbc-crc rc4-hmac des-cbc-md5

default_tkt_enctypes = des-cbc-crc rc4-hmac des-cbc-md5

permitted_enctypes = des-cbc-crc rc4-hmac des-cbc-md5

clock_skew = 300

[realms]

POLYGON.LOCAL = {

kdc = srv-dc.polygon.local

admin_server = srv-dc. polygon.local

default_domain = POLYGON.LOCAL

}

[domain_realm]

.polygon.local = POLYGON.LOCAL

polygon.local = POLYGON.LOCAL

Затем в аплете DNS домена polygon.local создаю DNS записи текущей системы, а записи вида A и вида PTR в соответствующей для этого зоне.

После в оснастке Active Directory Users and Computers домен контроллера нужно создать специализированного пользователя ответственного за связь Ubuntu системы с контроллером домена. Итак это учетная запись: openfire с паролем Aa1234567. После создаю keytab файл, копирую его через winscp на Ubuntu и перезапускаю krb5:

C:\Windows\system32>mkdir c:\keytab

C:\Windows\system32>ktpass -princ HTTP/srv-trusty. [email protected] -mapuser openfire -pass Aa1234567 -ptype KRB5_NT_PRINCIPAL -crypto ALL -out c:\keytab\openfire.keytab

ekzorchik@srv-trusty:~$ sudo mv openfire.keytab /etc/openfire/

ekzorchik@srv-trusty:~$ sudo chmod 640 /etc/openfire/openfire.keytab

ekzorchik@srv-trusty:~$ sudo chown -R openfire:openfire /etc/openfire

ekzorchik@srv-trusty:~$ sudo kinit -kV -p HTTP/srv-trusty.polygon.local

Using default cache: /tmp/krb5cc_0

Using principal: HTTP/[email protected]

Authenticated to Kerberos v5

ekzorchik@srv-trusty:~$ sudo klist

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: HTTP/[email protected]

Valid starting Expires Service principal

07/14/2017 09:30:45 07/14/2017 19:30:45 krbtgt/POLYGON. [email protected]

renew until 07/15/2017 09:30:45

Теперь перехожу к установке сервера OpenFire:

http://IP&DNS:9090

Setup Progress — Choose Language (English) и нажимаю Continue

Server Settings:

  • XMPP Domain Name: srv-trusty.polygon.local
  • Server Host Name (FQDN): srv-trusty.polygon.local
  • Admin Console Port: 9090
  • Secure Admin Console Port: 9091
  • Property Encryption via: Blowfish

и нажимаю Continue

  • Database Settings: выбираю Standard Database Connection и нажимаю Continue

заполняю параметры соединения с внешней базой

  • Database Driver Presets: MySQL
  • JDBC Driver Class: com. mysql.jdbc.Driver
  • Database URL: jdbc:mysql://localhost:3306/db_openfire?rewriteBatchedStatements=true
  • Username: openfire
  • Password: 612mbddr@

и нажимаю Continue

Теперь вместо дефолтного месторасположения хранения в базе аутентификационных данных я указываю что данные брать из Directory Server (LDAP) и нажимаю Continue, следом запускается мастер настройки подключения к LDAP серверу который в моем случае это Active Directory текущего домена на базе Windows Server 2012 R2 Std

Шаг №1: Connection Settings

  • Server Type: (Тип Сервера) Active Directory
  • Host: (Хост) srv-dc.polygon.local
  • Port: (Порт) 389
  • Base DN: (База DN) DC=polygon,DC=local
  • Authentication: (Аутентификация)
  • Administrator DN: (Администратор DN) [email protected] (Пользователи домена)
  • Password: (Пароль) Aa1234567

Нажимаю Test Settings (Настройка теста), если Вы видите в появившемся окне:

  • Test: Connection Settings (Настройка соединений)
  • Status: Error

Unknown host address

, то просто вместо имени контроллера домена укажите его IP адрес Host: 10.10.10.2 (либо в файле /etc/hosts вы не прописали и адрес сервера где работает DNS), тогда в появившемся окне будет положительный результат:

  • Test: Connection Settings

Status: Success! (Успех)

A connection was successfully established to the LDAP server using the settings above. Close this test panel and continue to the next step.

У меня же так хорошо сделано, что вводить IP адрес нет нужды все подхватилось и по DNS имени.

Следом нажимаю Save & Continue (Сохранять & Продолжить) для применения настроек.

Шаг №2: User Mapping:

  • Username Field: samaccountname
  • Advanced Settings:
  • User Filter: (objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))

Нажимаю Test Settings, а после Save & Continue

Шаг №3: Group Mapping:

  • Group Field: cn
  • Member Field: member
  • Description Field: description
  • Advanced Settings:
  • Posix Mode: No
  • Group Filter: (objectCategory=Person)

Нажимаю Test Settings, а после Save & Continue

На следующем шаге Administrator Account ввожу именование учетной записи с полномочиями Администратора:

  • Add Administrator: ввожу openfire (ту которую создали в AD), нажимаю Add, а после Continue.

Если все прошло успешно, то вы увидите надпись вида:

Setup Complete!

Нажимаю Login to the admin console и авторизуюсь:

http://IP&DNS:9090/login.jsp

Username: ekzorchik

Password: 712mbddr@ (точно такой же пароль и на доменную учетную запись)

и я успешно авторизовался

После проверяю, а вижу ли я учетные записи Active Directory:

http://IP&DNS:9090/index.jsp — Пользователи/Группы (Users/Groups) — Пользователи (Users) — Все пользователи (User Summary) и вижу все учетные записи моего домена:

Отлично что и задумывалось, а если перейти в группы (Groups) то также вижу, что представлены все доменные группы моего домена:

После делаю некоторые настройки с сервером openfire в панели администрирования.

Server — Server Manager — Language and Time → Choose Language = Русский (ru_RU) и нажимаю Save Settings

Сервер — Настройки сервера — Регистрация и вход

  • Регистрация учетной записи: Выключено
  • Изменение пароль: Включено
  • Анонимный вход: Выключено

После запускаю клиент Spark и настраиваю (нажимаю Advanced) подключение к серверу Openfire с использование доменной учетной записи:

Вкладка General

  • Automatically discover host and port: снимаю галочку
  • Host: srv-trusty.polygon.local
  • Port: 5222
  • Use hostname as resource: отмечаю галочкой
  • Accept all certificates (self-signed/expired/not trusted): отмечаю галочкой
  • Disable cerfificate hostname verification (not recommended): отмечаю галочкой

После нажимаю OK для выхода из окна Advanced connection preferences и указываю параметры аутентификации, точнее они будут доменными:

  • Username: alektest
  • Password: Aa1234567
  • Domain: polygon.local
  • Save password: отмечаю галочкой
  • Auto login: отмечаю галочкой

и подключаюсь нажатием кнопки Login. И вот я подключен

Если выйти из клиента и запустить его снова, то благодаря параметру Auto Login авторизация клиента происходит само. Работает все что выше проверено. На этом у меня всё, до новых заметок, с уважением автор блога Олло Александр aka ekzorchik.

Заметки IT-шника

1. Подготовка.

В оснастке Active Directory – пользователи и компьютеры создадим подразделение (к примеру, название вашей компании, я же его назвал Company), а уже в этом подразделении создадим подразделение, в котором будут храниться пользователи (можно использовать и существующую вкладку Users, но мне кажется не очень удобным, поскольку там содержится куча групп, которые нам в чате не нужны), назовем его Users.

Необходимо в созданном подразделении Users создать пользователя в качестве администратора Openfire. Я создал пользователя с именем openfire, ни в какие группы его добавлять не нужно, этот пользователь создается только в качестве администратора Openfire, вход в систему под ним осуществляться не будет. Только поставьте галочку в пункте “Срок действия пароля не ограничен”. А так же сразу создадим группу в которую будут входить все пользователи, я назвал ее All.

 2. Установка Openfire.

Установите Openfire, снимите галочку запуска его после установки. Откройте папку с установленным Openfire, перейдите в папку bin и откройте здесь командную строку. Установим службу Openfire командой  openfire-service.exe -install

 

Откройте Службы и убедитесь, что служба Openfire запущена.

Откройте браузер и перейдите по адресу 127.0.0.1:9090.

1. Выбор языка.

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

2. Настройки сервера.

В поле Domain у вас сразу должно быть указано имя сервера, но я бы рекомендовал указать FQDN сервера, в моем случае это server.company.lan. Номера портов оставляем как есть.

 

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

Здесь необходимо выбрать встроенную базу данных (Embedded Database).

 

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

Здесь необходимо выбрать LDAP.

 

5. Настройки профиля. Шаг 1 — Настройка подключения.

В поле Тип сервера (Server Type) выбрать Active Directory.

В поле Хост (Host) указать FQDN вашего сервера, в моем случае этоserver.company.lan.

Номер порта оставляем неизменным.

В поле База DN (Base DN) необходимо указать путь, где у нас в AD хранятся пользователи. У меня пользователи хранятся в подразделении Users, которая, находится в подразделении Company, а мой домен company.lan, поэтому моя запись Base DN имеет следующий вид:OU=Users,OU=Company,DC=company,DC=lan.

В поле Администратор DN (Administrator DN) необходимо указать администратора контроллера домена, в моем случае это встроенная учетная запись Администратор, а имя моего домена company.lan, поэтому запись имеет вид: Администратор@company.lan.

В поле Пароль (Password) необходимо ввести пароль администратора контроллера домена.

 

Теперь необходимо выбрать Тест настроек (Test Settings) и если тест успешен, выбрать Сохранить и продолжить (Save & Continue). Если же тест был не успешен, проверьте правильность заполнения всех полей.

6. Настройки профиля. Шаг 2 – Отображение пользователей.

Здесь ничего изменять не нужно. Выберете Тест настроек (Test Settings) и если тест успешен, выбрать Сохранить и продолжить (Save & Continue).

7. Настройки профиля. Шаг 3 – Отображение групп.

Здесь ничего изменять не нужно. Выберете Тест настроек (Test Settings) и если тест успешен, выбрать Сохранить и продолжить (Save & Continue).

8. Аккаунт администратора.

Здесь необходимо указать имя пользователя, которого мы создали в качестве администратора Openfire, в моем случае это пользователь openfire. Необходимо, чтобы эта учетная запись находилась в подразделении, которое мы описывали в базе DN (Base DN), иначе Openfire ее попросту не увидит. Добавляем пользователя и кликаем продолжить.

 

На этом установка завершена. Теперь вам предложат войти в консоль администратора, используя логин и пароль администратора Openfire.

3. Настройка NTLM.

В папке с установленным Openfire перейдите по пути \jre\lib\security и откройте с помощью блокнота (я бы советовал использовать Notepad++, т.к. стандартный блокнот не переносит все нормально по строкам, и вам будет сложно с помощью его редактировать данный файл) файл java.security. И после строк:

security.provider.8=sun.security.smartcardio.SunPCSC

security.provider.9=sun.security.mscapi.SunMSCAPI

добавьте строку:

security.provider.10=net.za.darkskies.security.sasl.SSPIProvider

и сохраните изменения в файле.

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

Зайдем в веб-консоль Openfire и перейдем Server -> Server Manager -> System Properties. Спустимся в самый низ, до пункта Add new property и добавим следующие настройки. Там две строчки, первая Property Name (имя правила) и вторая Property Value (значение). Добавьте четыре настройки, согласно приведенной таблице.

Property Name

Property Value

sasl.approved.realmsПоле значений оставьте пустым
sasl.mechsANONYMOUS,PLAIN,NTLM
sasl.realmNetBIOS имя домена, у меня имя домена company.lan, соответственно NetBIOS имя домена будет COMPANY
xmpp.fqdnFQDN имя сервера, на котором установлен Openfire, в моем случае этоserver.company.lan

4. Отображение списка пользователей.

В веб-консоли Openfire перейдем Users/Groups -> Groups -> Group Summary. И кликнем на созданную группу, у меня это группа All. Поставим галочку напротивShare group with additional users и выберем All users, в строке Enter contact list group name необходимо указать имя группы с которым она будет отображаться в Pandion, я назвал ее Company (в этой группе будут содержаться все сотрудники, в дальнейшем вы можете создать группы с именами отделов и включить в них только сотрудников данного отдела), сохраним изменения.

После всех настроек Openfire – перезапустите его службу.

5. Настройка Pandion.

Хотелось бы, чтобы у любого пользователя домена при входе в систему запускался Pandion, не спрашивая ни каких настроек, логинов, паролей. Для этого установим Pandion прямо на нашем сервере. После установки перейдем в папку, куда установлен Pandion и в папке settings  с помощью блокнота откроем файл brand. Найдем строку <sspiserver></sspiserver>  и в ней укажем FQDN своего сервера, в моем случае это выглядит так: <sspiserver>server.company.lan</sspiserver>. Спускаемся в самый низ файла, в строке <serveraddress></serveraddress> так же указываем FQDN вашего сервера, у меня<serveraddress>server.company.lan</serveraddress>. В строке <serverport></serverport> необходимо указать номер порта, номер необходимого нам порта 5222, тогда строка будет иметь следующий вид <serverport>5222</serverport>. Строку <encryption>optional</encryption> оставить без изменения, а в строке<authentication>normal</authentication> слово normal на ntlm. А так же отключим обновление и окно приветствия, для этого найдем строки:

<installupdates>yes</installupdates>

<welcomescreen>yes</welcomescreen>

и параметр yes заменим на no.

Сохраните изменение в файле.

6. Разлитие Pandion на локальные машины.

Скопируем всю папку программы Pandion в общую папку на сервере. У меня есть папка SOFT доступна группе пользователей Пользователи домена только для чтения, вот туда я ее и скопирую. Осталось разливать Pandion при первом входе пользователя в систему, для этого напишем небольшой бат файл. Содержимое моего бат файла:

if not exist %homepath%\AppData\Pandion\Application\pandion.exe xcopy \\server\soft\Pandion %homepath%\AppData\Pandion\ /S /E

start %homepath%\AppData\Pandion\Application\pandion.exe

Для хранения пандиона на клиентских машинах я выбрал папку AppData в их домашнем каталоге, т.к. она по умолчанию является скрытой и простой пользователь там лазить не будет. Первая строка моего бат файла проверяет наличие файла pandion.exe в каталоге %homepath%\AppData\Pandion\Application\, если такого не существует, то с сервера копируется папка с пандионом по указанному раннее пути.  \\server\soft\Pandion — сетевой путь к папке пандиона на моем сервере, замените его на свой. Вторая строка запускает сам пандион. Сохраним свой бат файл.

Откроем Пуск -> Администрирование -> Управление групповой политикой, далее развернем вкладку ЛесДомены и развернем свой домен. На вкладкеDefault Domain Policy кликнем правой кнопкой мыши Изменить. Далее перейдем Конфигурация пользователя -> Политики -> Конфигурации Windows -> Сценарии (вход/выход из системы) откроем Вход в систему. Далее Сценарии -> Добавить укажем имя сценария (я указал Pandion), кликнем обзор, и в открывшиеся окно перетянем наш бат файл, выберем его, и кликнем Открыть.

7. Проверка.

Собственно проверка, пришел на работу новый сотрудник, по имени Вася Пупкин, ему создам учетную запись в домене. В оснастке Active Directory – пользователи и компьютеры перейдем в наше созданное подразделение Company -> Users и создадим пользователя и зададим ему пароль. А так же добавим нашу созданную группу, у меня это Company.

 

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

 

И ему копируется Pandion и автоматически авторизуется. Вася может общаться с коллегами =).

 

Если у вас Pandion не может авторизоваться, и вы уверены, что выполнили все правильно, проверьте брандмауэр на вашем сервере.

Установка OpenFire (Jabber-сервер) в Debian 7. Авторизация через Active Directory (LDAP)

В качестве корпоративной «аськи» мы долгое время использовали Bimoid. Отличное решение, красивый клиент (автор проекта бывший разработчик QIP), стабильная работа. За два года применения продукта проблем не возникало. Не возникло бы и сейчас, если мы не решились на тотальную оптимизацию. В этом ключе Bimoid перестал нам подходить. Почему? Попробую объяснить по пунктам.

Почему решили отказаться от Bimoid

Начну с наболевшего — отсутствие интеграции с Active Directory. У нас не сильно большая компания, но держать в актуальном состоянии информацию даже о 100 юзерах напряжно. Люди приходят и уходят, а аккаунты должны быть в актуальном состоянии. Тем более в компании уже развернут AD и было здорово использовать эту базу для всевозможных программа, требующих базу пользователей. Bimoid пока не имеет поддержки LDAP/AD и со временем отсутствие этой функции стало нас сильно раздражать.

Следующим существенным минусом мы отметили отсутствие серверной части под Linux. Мы стараемся максимально разграничивать роли серверов и выделять отдельную лицензию на MS Windows ради корп. чата как-то не хочется. Вот мы подумали-подумали и решили внести небольшие изменения в корпоративную среду. Прогуглив тему, решили развернуть корпоративный jabber-сервер. Из всех найденных вариантов нам больше все приглянулся OpenFire. Вот сейчас мы и посмотрим как установить OpenFire в корпоративной среде.

Установка OpenFire в Debian 7

Первым делом отправляемся на официальный сайт и скачиваем последнюю версию OpenFire. Сохраняем deb пакет и запускаем установку:

dpkg -i downloadServlet?filename=openfire%2Fopenfire_3.9.3_all.deb

Результатом должно быть:

Setting up openfire (3.9.3) ...
best java alternative in: /usr/lib/jvm/java-7-openjdk-amd64/jre
Starting openfire: openfire.

Далее открываем браузер и вбиваем адрес хоста на котором запустили установку OpenFire. В качестве порта указываем 9090:

http://hostname:9090

Перед нами откроется мастер установки. В первом окне нас попросят выбрать язык. Несмотря на наличие варианта «Русский», я рекомендую выбрать «English». Как показала практика, качество перевода интерфейса на русский местами сильно хромает. Выбираем и нажимаем «Continue».

Здесь нас просят ввести имя хоста, а также указать ключ шифрования. Заполняем и нажимаем «Continue». Заодно запоминаем номер портов по которому будет доступна консоль управления.

Теперь нам требуется определиться с базой данных в которой OpenFire будет хранить все необходимые для работы данные. Нам доступно два варианта:

  • Standart Database Connection – внешняя СУБД. OpenFire умеет работать со всеми популярными (MS SQL, MySQL, Oracle, PostgreSQL) базами данных.
  • Embedded Database – локальная база данных HSQLDB. В этом случае OpenFire будет использовать свою БД и вам не придется самостоятельно устанавливать MySQL или любую другую БД.

У нас уже MySQL установлен, поэтому выбираем первый вариант: “Standart Databae Connection”. Жмем «Continue».

В разделе «Database Settings – Standart Connection» нам требуется ввести настройки для подключения к СУБД. У меня в качестве БД используется MySQL, соответственно в качестве JDBC Driver Class я выбираю com.mysql.jdbc.Driver. Строка соединения в итоге получилась такой:

jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true

Важно! Нигде не говорится на счет отсутствия БД. Изначально я думал, что OpenFire создаст ее самостоятельно, но я ошибался. Постоянно возникала ошибка, поэтому пришлось самостоятельно создать нового пользователя и базу. После этого OpenFire успешно соединялся с СУБД и пропустил меня к следующему шагу “Profile Settings”.

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

  • Default. Вариант по умолчанию. Группы и пользователи будут храниться в OpenFire. Такой вариант подойдет если в компании отсутствуют централизованные хранилища информации о пользователях/группах.
  • Directory Server (LDAP). Интеграция по протоколу LDAP. Если в компании развернута ActiveDirectory, то это оптимальный вариант. Все учетные записи пользователей будут подтягиваться из AD.
  • Clearspace Integration. Интеграция с Clearspace. Если честно, то с данным продуктом я никогда не сталкивался, поэтому прокомментировать не смогу.
  • У меня в организации давно уже развернут Active Directory, поэтому мне интересней выбрать второй вариант – Directory Server (LDAP). Выбираю, нажимаю “Continue”.

Если вы, как и я выбрали «Directory Server (LDAP)», то вам необходимо указать настройки для соединения с сервером LDAP. Заполняем по порядку:

  • Server Type. Тип сервера. В моем случае Active Directory.
  • Host. Адрес сервера. Можно указать ip, а можно доменное имя.
  • Port. Номер порта. Для Active Directory оставляем по умолчанию – 389.
  • Base DN. Определяем место в каталоге с учетными записями. У меня все записи хранится в отдельном OU (Organization Unit), поэтому запроса будет такой:
OU=Офис,DC=company,DC=local

Подробней про именования объектов вы можете почитать в Wikipedia.

  • Administrator DN. Путь к директории/аккаунту пользователя от имени которого будут выполняться все запросы к AD. Для удобства администрирования я создал отдельного пользователя: openfire. В результате строка Administrator DN получилась такой: CN=openfire,CN=Users,DC=company,DC=local.
  • Password. Пароль пользователя, от имени которого будут выполняться запросы к AD.

    Определяем соответствия полей между пользователями AD и OpenFire. Я здесь ничего не изменяю. Жмем “Continue”.

    Настройка соответствия групп. Тоже ничего не меняем. Жмем “Continue”.

    Остался последний шаг – выбрать пользователей, которые будут обладать административными правами. Вводим имена (без доменной части) и нажимаем Add. Если вылетает ошибка и пользователь не находится, то возвращаемся к настройками соединения с Active Directory.

    Жмем “Continue” и попадает в долгожданный экран Setup Complete. Остается только нажать на кнопку «Login to the admin cosole» и ввести данные от своей учетной записи. Установка OpenFire завершена.

  • Openfire — настройка Часть 2

    Openfire — XMPP-сервер, являющийся кроссплатформенным программным обеспечением. Jabber сервер написан на Java (раньше было название Wildfire) под управлением Jetty. Данный продукт разрабатывается и поддерживается с 2002 года. 

    Администрируется сервер с помощью удобной веб-панели, поддерживает плагины, которые также написаны на Java (плагины могут быть загружены через веб-интерфейс или непосредственно плагин копируется в папку для плагинов сервера Openfire и тогда происходит автоматическая установка плагина). Имеется поддержка WEB-клиента, кластеризация (возможно сделать несколько серверов для работы с распределенной базой данных, таким образом поддерживается работа несколько десятков тыс. одновременных пользователей. Имеется поддержка шифрования (поддержка SSL/TLS). Для хранения профилей пользователей Openfire работает с базами данных, прежде всего встраиваемая база данных HSQLDB, но рекомендуется использовать полноценную СУБД — это MySQL, PostgreSQL, а также Microsoft SQL Server, IBM DB2, Adaptive Server Enterprise. Имеется интеграция с LDAP. 

    Работает сервер Openfire c различными клиентами, прежде всего это Spark, также Miranda IM, Pandion, Trillian Pro, Psi, Pidgin, QIP Infum и др.

    Произведем настройку сервера openfire.

    Увеличиваем количество оперативной памяти, которую использует сервер Openfire и установим и запустим службу openfire.

    1. По умолчанию сервер openfire использует до 256 МБ памяти и запускать сервер надо вручную. Исправим это. Создаём в директории с установленным openfire — bin\ (С:\Program Files (x86)\Openfire\bin\ три файла:

    openfire.vmoptions — загрузка сервера с помощью файла openfire.exe, т.е. с графической оболочкой

    openfired.vmoptions — загрузка сервера с помощью файла openfired.exe, т.е. без графической оболочки, консольно-командной строкой

    openfire-service.vmoptions — загрузка сервера с помощью службы

    В каждом файле следующие настройки, указывающие на минимальное и максимальное значение памяти:

    -Xms512m 

    -Xmx1024m

    2. Установим и запустим службу openfire, для этого запускаем командную строку с административными правами и выполняем команды:

    cd «C:\Program Files(x86)\Openfire\bin»

    openfire-service /install

    openfire-service /start

    3. Открываем консоль администратора сервера openfire и осуществляем вход на сервер (вводим имя пользователя и пароль). Проверяем новые настройки по добавлению памяти Java:

    Следующим шагом создадим группы для работы с сервером openfire и добавим пользоателей домена в созданные группы.

    1. Для этого открываем Active Directory — пользователи и компьютеры и создаем группы openfire1 и openfire2:

    2. Добавляем в группы доменных пользователей:

    3. Зададим имена и возможность взаимодействия (видимости) групп на сервере openfire. Для этого на вкладке «Пользователи/Группы» заходим в «Группы» и в группах openfire1 и openfire2 задаем следующие настройки:

    Вводим имя списка контактов группы (например Department1 для группы openfire1) и ставим чексбокс напротив «Расшаренная группа пользователей», далее «Сохранить список настроек контактов. Такие настройки производим и для группы openfire2

    Таким образом, при добавлении пользователи в группу в Active Directory данный пользователь будет попадать в соответствующую группу на сервере openfire автоматически.

     Также что и как настраивать можно посмотреть здесь:

    Читайте также:

    Openfire - установка Часть 1
    Openfire - настройка кэша Часть 3
    Spark установка и настройка Часть 4
    Openfire установка плагинов Часть 5

     

    Openfire: Руководство по LDAP

    Введение

    В этом документе подробно описано, как настроить установку Openfire для использования
    внешний каталог, например Open LDAP или Active Directory. Интеграция с каталогом
    позволяет пользователям аутентифицироваться, используя свое имя пользователя и пароль каталога. По желанию вы можете
    настроить Openfire для загрузки профиля пользователя и информации о группе из каталога. Любая группа в
    Openfire можно обозначить как общую группу, что означает, что вы можете предварительно заполнить
    реестры с использованием каталоговых групп.

    Фон

    LDAP (облегченный протокол доступа к каталогам) стал доминирующим стандартом.
    для аутентификации пользователя и для хранения данных профиля пользователя. Он служит
    мощный инструмент для крупных организаций (или организаций, объединяющих множество
    приложения), чтобы упростить управление пользователями. Доступно множество серверов LDAP,
    например, Open LDAP,
    Active Directory,
    и Novell eDirectory.

    По умолчанию Openfire хранит все пользовательские данные в своей базе данных и выполняет
    аутентификация с использованием поиска в базе данных.Модуль LDAP заменяет это
    функциональность и позволяет Openfire:

    • Используйте сервер LDAP для аутентификации личности пользователя.
    • Загрузить информацию профиля пользователя из каталога LDAP.
    • Загрузить информацию о группе из каталога LDAP.

    Примечание. Openfire рассматривает каталог LDAP как доступный только для чтения.

    Этот документ проведет вас через настройку поддержки LDAP в Openfire. Эти
    инструкции предполагают, что вы компетентный пользователь LDAP и знакомы
    с проблемами установки Openfire.

    Конфигурация

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


    Если вы уже завершили процесс установки, но вам нужно включить интеграцию LDAP, вы
    можно повторно запустить инструмент настройки.Для этого:

    1. Остановите Openfire.
    2. Отредактируйте conf / openfire.xml в папке установки Openfire и установите
      true на false .
    3. Перезапустите Openfire и войдите в инструмент настройки.

    Microsoft Active Directory — это широко развернутая система каталогов, которая поддерживает
    Протокол LDAP. Вам будет предложено ввести несколько полей LDAP при подключении к Active Directory.
    серверы, некоторые из которых подробно описаны ниже:

    • Базовый DN

      Базовый DN описывает, куда загружать пользователей и группы.Если вы используете значение по умолчанию
      Настройка Active Directory, все учетные записи пользователей и группы расположены в
      Папка «Пользователи» в вашем домене. В форме LDAP это cn = Users; dc = .
      Чтобы быть более конкретным, предположим, что ваш домен — activedirectory.jivesoftware.com. В таком случае,
      ваше базовое DN будет cn = Users; dc = activedirectory, dc = jivesoftware, dc = com. Если
      вы настроили место хранения пользователей, вам просто нужно реплицировать эту папку
      структура с использованием синтаксиса LDAP.

    • DN администратора

      По умолчанию Active Directory не разрешает анонимные подключения LDAP. Следовательно,
      вам нужно будет ввести DN пользователя, которому разрешено подключаться к серверу и читать
      все данные пользователей и групп. Если вы не создали специальную учетную запись пользователя для этого
      Цель, простой выбор — использовать встроенную учетную запись администратора. По умолчанию,
      DN администратора имеет вид cn = Administrator, dc = <Ваш домен>.Используя наш предыдущий пример,
      cn = администратор, cn = пользователи, dc = activedirectory, dc = jivesoftware, dc = com.

    Редактирование файла конфигурации вручную

    Если вы предпочитаете отредактировать файл конфигурации, чтобы напрямую включить интеграцию LDAP, используйте следующий
    инструкции. Откройте файл конфигурации conf / openfire.xml из вашего Openfire
    установка в вашем любимом
    редактор и добавьте или измените следующие настройки. Свойства, отмеченные (
    * )
    должен быть установлен.Свойства, отмеченные ( ** ), должны быть установлены в порядке
    включить группу LDAP
    support, все остальные свойства необязательны:

      Основные настройки

    • Providerr.user.className * — установите значение
      «org.jivesoftware.openfire.ldap.LdapUserProvider».
    • provider.auth.className * — установить значение
      «org.jivesoftware.openfire.ldap.LdapAuthProvider».
    • ldap.host * — хост сервера LDAP; е.грамм. localhost или
      machine.example.com и т. д. Можно использовать много серверов LDAP, но все они
      должен использовать ту же конфигурацию (например, SSL, baseDN, учетную запись администратора и т. Д.).
      Чтобы указать несколько серверов LDAP, используйте в качестве разделителя запятую или пробел.
    • ldap.port — номер порта сервера LDAP. Если это свойство не установлено, значение по умолчанию —
      389.
    • ldap.readTimeout — значение этого свойства является строковым представлением целого числа.
      представляющий тайм-аут чтения в миллисекундах для операций LDAP.Если провайдер LDAP не
      получить ответ LDAP в течение указанного периода, он прерывает попытку чтения. Целое число должно
      быть больше нуля. Целое число меньше или равное нулю означает, что тайм-аут чтения не указан,
      эквивалентно ожиданию ответа бесконечно, пока он не будет получен, что по умолчанию
      к исходному поведению. Требуется Java 1.6 или новее.
    • ldap.baseDN * — начальное DN, которое ищет пользователей
      будет выполнено с.Поиск учетных записей пользователей будет выполняться во всем поддереве под базовым DN.
    • ldap.alternateBaseDN — при желании можно указать второй DN в каталоге. Если установлено,
      альтернативный базовый DN будет использоваться для аутентификации, загрузки отдельных пользователей и отображения
      список пользователей. Содержимое базового DN и альтернативного DN будет рассматриваться как одно целое.
    • ldap.adminDN — DN администратора каталога. Все операции с каталогом будут
      выполнено
      с этим аккаунтом.Администратор должен иметь возможность выполнять поиск и загружать записи пользователей. В
      пользователь делает
      нет необходимости вносить изменения в каталог, так как Openfire обрабатывает
      каталог только для чтения.
      Если это свойство не установлено, будет предпринята попытка анонимного входа на сервер.
    • ldap.adminPassword — пароль администратора каталога.
    • ldap.usernameField — имя поля, по которому будет выполняться поиск имени пользователя.Если
      это свойство не установлено, значение по умолчанию — uid. Пользователи Active Directory
      следует попробовать значение по умолчанию sAMAccountName.
    • ldap.nameField — имя поля, содержащего имя пользователя. Если это свойство не
      set, значение по умолчанию — cn. Пользователи Active Directory должны использовать значение по умолчанию
      показать имя.
    • ldap.emailField — имя поля, содержащего адрес электронной почты пользователя. Если это свойство
      не установлен, значение по умолчанию — mail.Пользователи Active Directory должны использовать
      значение по умолчанию mail.
    • ldap.searchFields — поля LDAP, которые будут использоваться для пользовательского поиска. Если
      это свойство не установлено, будет выполняться поиск в полях имени пользователя, имени и адреса электронной почты. Пример
      значение этого поля — «Имя пользователя / uid, Имя / cname». Это ищет в полях uid и cname
      в каталоге и помечает их как «Имя пользователя» и «Имя» в пользовательском интерфейсе поиска. Можете добавить
      столько полей, сколько хотите, используя пары «DisplayName / Field», разделенные запятыми.Вам следует
      убедитесь, что все поля, используемые для поиска, правильно проиндексированы, чтобы результаты поиска возвращали
      быстро.
    • ldap.searchFilter — дополнительный фильтр поиска, добавляемый к фильтру по умолчанию, когда
      загрузка пользователей. Фильтр поиска по умолчанию создается с использованием атрибута, указанного в
      ldap.usernameField. Например, если в поле имени пользователя указано «uid», то поиск по умолчанию
      фильтр будет «(uid = {0})», где {0} динамически заменяется именем пользователя, в котором выполняется поиск
      за.

      Чаще всего фильтр поиска используется для ограничения записей, которые являются пользователями
      на основе objectClass. Например, разумный фильтр поиска для Active Directory по умолчанию
      установка: «(objectClass = organizationPerson)». В сочетании со значением по умолчанию
      фильтр, фактический выполненный поиск будет
      «(& (sAMAccountName = {0}) (objectClass = organizationPerson))».

    • ldap.subTreeSearch — по умолчанию Openfire будет искать все поддерево LDAP (начиная с
      на базовом DN) при попытке загрузить пользователей.Если для этого свойства установлено значение false, то
      поиск в поддереве отключен, и пользователи будут загружаться только непосредственно из базового DN.
      Отключение поддерева может улучшить производительность, но не сможет найти пользователей, если ваш каталог
      настроен на использование подпапок под базовым DN.
    • Настройки группы

    • Providerr.group.className ** — установите значение на
      «org.jivesoftware.openfire.ldap.LdapGroupProvider».
    • ldap.groupNameField ** — имя поля, которое является именем группы
      поиск будет выполняться по.Если это свойство не установлено, значение по умолчанию — cn.
    • ldap.groupMemberField — имя поля, в котором содержатся члены группы. Если это свойство
      не установлен, значение по умолчанию — член.
    • ldap.groupDescriptionField — имя поля, содержащего описание группы. Если это
      свойство не задано, значение по умолчанию — описание.
    • ldap.posixMode ** — значение «истина» означает, что пользователи
      хранятся в группе только по имени пользователя.Значение «false» означает, что пользователи
      хранятся под всем их DN в группе. Если это свойство не установлено, значение по умолчанию
      ложно. Режим posix должен быть правильно настроен для вашего сервера в
      Порядок работы групповой интеграции. Режимы Posix для распространенных серверов LDAP:
    • ldap.groupSearchFilter — дополнительный фильтр поиска, добавляемый к фильтру по умолчанию, когда
      погрузочные группы. Фильтр поиска группы по умолчанию создается с использованием указанного атрибута
      пользователя ldap.groupNameField. Например, если в поле имени группы указано «cn», то по умолчанию
      фильтр поиска группы будет иметь вид «(cn = {0})», где {0} динамически заменяется группой
      имя, которое ищут.

      Чаще всего фильтр поиска используется для ограничения записей, которые являются группами
      на основе objectClass. Например, разумный фильтр поиска для Active Directory по умолчанию
      установка — «(objectClass = group)». В сочетании со значением по умолчанию
      фильтр, фактический выполненный поиск будет
      «(& (cn = {0}) (objectClass = group))».

    • Параметры подключения

    • ldap.debugEnabled — значение «истина», если отладка должна быть включена. Когда включен, трассировка
      информация о буферах, отправленных и полученных поставщиком LDAP, записывается в
      System.out
    • ldap.sslEnabled — значение «истина» для включения SSL-соединений с вашим сервером LDAP. Если
      вы
      включить SSL-соединения, номер порта сервера LDAP, скорее всего, следует изменить на
      636.
    • ldap.initialContextFactory — имя класса, которое следует использовать в качестве начального
      контекст
      завод. если это значение не указано, будет использоваться com.sun.jndi.ldap.LdapCtxFactory
      вместо.
      Большинству пользователей не нужно устанавливать это значение.
    • ldap.autoFollowReferrals — значение «истина» указывает, что ссылки LDAP должны быть
      автоматически последовал. Если это свойство не установлено или имеет значение «false», используемая политика рефералов остается.
      до провайдера.Реферал — это объект, который используется для перенаправления запроса клиента на
      другой сервер. Ссылка содержит названия и расположение других объектов. Он отправляется сервером на
      указывают, что запрошенную клиентом информацию можно найти в другом месте (или
      местоположения), возможно, на другом сервере или нескольких серверах.
    • ldap.connectionPoolEnabled — значение «false» отключает пул соединений LDAP. Если это
      свойство не установлено, значение по умолчанию — «истина».

    Ниже приведен пример раздела файла конфигурации:

        <джайв>
          ...
          
    
             
             389 
             uid 
             cn 
    
             почта 
             ou = Люди; dc = example; dc = com 
             cn = Администратор каталогов 
             
    
          
          <провайдер>
            <пользователь>
               орг.jivesoftware.openfire.ldap.LdapUserProvider 
            
    
            
               org.jivesoftware.openfire.ldap.LdapAuthProvider 
            
            <группа>
               org.jivesoftware.openfire.ldap.LdapGroupProvider 
    
            
          
          ...
        
     

    Скорее всего, вы захотите изменить имена пользователей, которым разрешено входить в
    консоль администратора.По умолчанию только пользователь с именем «admin» может войти в систему. Однако,
    в вашем каталоге LDAP могут быть разные пользователи, администраторами которых вы хотите быть. В
    список авторизованных имен пользователей контролируется через admin.authorizedUsernames
    свойство. Например, чтобы позволить пользователям с именами «joe» и «jane» войти в консоль администратора:

        <джайв>
          ...
          <админ>
            ...
             Джо, Джейн 
          
    
          ...
        
     

    Фильтр пользовательского поиска

    По умолчанию Openfire загружает все объекты с базовым именем,
    иметь атрибут, указанный в ldap.usernameField. в
    если в поле имени пользователя установлено значение «uid», поиск всех пользователей
    будет «(uid = *)». Однако бывают случаи, когда эта логика
    не работает — например, когда каталог содержит другие объекты, кроме
    пользователи, но все объекты имеют «uid» как поле уникального идентификатора.В этом
    случае вам может потребоваться указать настраиваемый фильтр поиска, используя
    ldap.searchFilter. Например, поисковый фильтр для всех пользователей
    со значением «uid» и «cn» для «joe»
    быть:

     (& (uid = {0}) (cn = joe)) 

    Значение «{0}» в фильтре выше — это токен, который должен присутствовать в
    все настраиваемые фильтры поиска. Он будет динамически заменен на «*», когда
    загрузка списка всех пользователей или имени пользователя при загрузке одного пользователя.

    Некоторые настраиваемые фильтры поиска могут включать зарезервированные объекты XML, такие как
    «&».В этом случае вы должны ввести фильтр поиска в openfire.xml
    файл с использованием CDATA:

      

    Завод настраиваемого начального контекста

    Некоторые серверы LDAP или серверы приложений могут потребовать, чтобы другой LDAP
    будет использоваться фабрика начального контекста, а не фабрика по умолчанию (com.sun.jndi.ldap.LdapCtxFactory).Вы можете установить собственную фабрику начального контекста, добавив в openfire.xml следующее:

      
        ... здесь другие настройки ldap
         com.foo.factoryClass 
       

    Пул соединений

    Поставщик LDAP по умолчанию (Sun) поддерживает объединение подключений к LDAP
    сервер. Пул соединений может значительно повысить производительность, особенно на
    системы с высокой нагрузкой.Пул соединений включен по умолчанию, но может
    можно отключить, установив свойство Jive ldap.connectionPoolEnabled
    на ложь:

     
            ... здесь другие настройки ldap
             false 
    
             

    Вы должны установить несколько свойств системы Java, чтобы изменить настройки пула по умолчанию.
    Для получения дополнительной информации см. Следующие страницы:

    Обратите внимание, что если вы включите отладку LDAP, пул соединений не будет включен.Если включен режим SSL LDAP, необходимо установить системное свойство, чтобы разрешить объединение
    Соединения SSL LDAP.

    Интеграция с LDAP vCard

    Провайдер LDAP vCard будет предоставлять информацию профиля LDAP как данные vCard для XMPP
    клиенты, поддерживающие расширение XMPP vCard. Сначала включите провайдера:

        <провайдер>
    
          ...
          
             org.jivesoftware.openfire.ldap.LdapVCardProvider 
          
          ...
        
     

    Затем вы должны добавить сопоставления между полями LDAP и полями vCard в файле openfire.xml.
    Атрибуты vcard настраиваются путем добавления атрибута attrs = «attr1, attr2» к vcard.
    элементы. Для значений элементов можно использовать произвольный текст, а также стиль MessageFormat.
    заполнители для атрибутов ldap. Например, если вы хотите сопоставить атрибут LDAP
    displayName в элемент vcard FN, фрагмент XML будет таким:
    {0}

    XML vCard должен быть экранирован в CDATA и также должен быть правильно сформирован.Это точный
    XML, который этот провайдер отправит клиенту после удаления атрибутов attr и заполнения
    заполнители с данными, полученными из LDAP. Эта система должна быть достаточно гибкой, чтобы
    обрабатывать любой формат vCard клиента. Ниже приводится пример сопоставления.

        
          
    
            
                 {displayName} 
                 {uid} 
                 {доб} 
    
                
                  <ГЛАВНАЯ />
                   Ste 500 
                   317 SW Alder St 
                   Портленд 
    
                   Орегон 
                   97204 
                   США 
                
    
                <ТЕЛ>
                  <ГЛАВНАЯ />
                  <ГОЛОС />
                   {phoneNumber} 
                
    
                <ПОЧТА>
                <ИНТЕРНЕТ />
                 {mail} 
                
                 {title} 
    
                 
                
                   {o} 
                   
    
                
                 {labeledURI} 
                
                uid: {uidNumber} home: {homeDirectory} оболочка: {loginShell}
                
    
              
            ]]>
          
        
     

    Часто задаваемые вопросы по LDAP

    Могу ли я создавать новых пользователей через Openfire при использовании LDAP?

      Нет, Openfire рассматривает каталоги LDAP только для чтения.Следовательно, это
      невозможно создавать или редактировать пользователей через приложение.

    Почему список имен пользователей не отсортирован в консоли администратора при использовании LDAP?

      Некоторые популярные серверы LDAP, такие как OpenLDAP, не поддерживают серверную
      сортировка результатов поиска. На этих серверах пользователи будут отображаться не по порядку.
      Однако вы можете включить сортировку результатов поиска на стороне клиента, установив
      ldap.clientSideSorting значение true в файле конфигурации XML.

    Я переключился на LDAP и теперь не могу войти в консоль администратора. Что случилось?

      Если вы больше не можете войти в консоль администратора после переключения, один из двух
      наиболее вероятные события произошли:
    1. По умолчанию только имя пользователя «admin» может входить в
      консоль администратора. В вашем каталоге не может быть пользователя с именем пользователя
      от «админа». В этом случае вам следует изменить список авторизованных имен пользователей.
      для входа в консоль администратора (см. выше).
    2. Возможно, вы установили неверное значение baseDN. Модуль LDAP
      рекурсивно ищет пользователей под узлом в указанном каталоге
      по baseDN. Если baseDN неверен, пользователи не будут найдены.

    Вы также можете включить отладку, чтобы получать больше информации из модуля LDAP. Чтобы
    сделай это, добавь истину

    в ваш файл conf / openfire.xml. Выписки журнала будут записаны
    в файл logs / debug.log.

    Openfire: Руководство по установке базы данных

    Openfire хранит все данные во внутренней базе данных.Если вы решите не использовать встроенный
    database, необходимо настроить внешнюю базу данных для приложения и управлять ею.
    Этот документ содержит инструкции по установке для всех поддерживаемых в настоящее время баз данных.

    Драйверы JDBC 2.0 необходимы Openfire для связи с вашей базой данных. Предлагаемый
    драйверы для конкретных баз данных указаны ниже, где это применимо. Openfire связывает JDBC
    драйверы для MySQL, Postgres, Microsoft SQL Server и HSQLDB.

    Полный список доступных драйверов JDBC см .:

    http: // промышленность.java.sun.com/products/jdbc/drivers.

    Все схемы базы данных можно найти в каталоге ресурсов / базы данных
    Установка Openfire.

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

    Для получения сведений о настройке выберите свою базу данных из списка ниже:

      Драйверы JDBC

      Драйвер JDBC для MySQL входит в состав Openfire, поэтому вам не нужно
      скачать и установить отдельный драйвер.

      В инструменте настройки Openfire используйте следующие значения:

      • драйвер: com.mysql.jdbc.Driver
      • сервер: jdbc: mysql: // [ВАШ_ХОСТ] / [ИМЯ БАЗЫ ДАННЫХ]

      где [YOUR_HOST] и [DATABASE_NAME] — фактические значения для вашего сервера.
      Во многих случаях localhost является подходящим значением для [YOUR_HOST], когда
      ваша база данных работает на том же сервере, что и ваш веб-сервер.

      Инструкции по установке

    1. Убедитесь, что вы используете MySQL 4.1.18 или новее (рекомендуется 5.x) ¹.
    2. Создайте базу данных для таблиц Openfire:
      mysqladmin create [databaseName]
      (примечание: «databaseName» может быть чем-то вроде «openfire»)
    3. Импортируйте файл схемы из каталога resources / database папки установки:
      Unix / Linux: cat openfire_mysql.sql | mysql [имя_базы_данных];

      Windows: введите openfire_mysql.sql | mysql [имя_базы_данных];

    4. Запустите инструмент настройки Openfire и используйте соответствующее соединение JDBC
      настройки.

    ¹ Поля символов больше 255 не поддерживаются предыдущими версиями
    в MySQL 4.1.18. Если вы не можете обновить MySQL до последней версии, вам нужно будет изменить
    скрипты базы данных. В частности, замените VARCHAR (1024) на VARCHAR (255) в
    resources / database / openfire_mysql.sql скрипт.

    Проблемы с кодировкой символов

    MySQL не имеет надлежащей поддержки Unicode, что делает вспомогательные данные
    на незападных языках сложно.Однако у драйвера MySQL JDBC есть обходной путь.
    который можно включить, добавив
    true
    в раздел вашего файла openfire.xml.
    При использовании этого параметра следует также установить кодировку символов Jive.
    в utf-8 в инструменте администратора.

    Дополнительная помощь

    Если вам нужна помощь в настройке MySQL, обратитесь к
    следующие сайты:

    http://www.mysql.com/doc.html
    http: // www.devshed.com/Server_Side/MySQL

      Драйверы JDBC

      Рекомендуются «тонкие» драйверы Oracle 9i или 10g, которые можно загрузить с
      Сайт Oracle.

      Доступны различные версии тонких драйверов, но драйвер «ojdbc14.jar» рекомендуется для использования с Openfire.
      Скопируйте драйвер JDBC в каталог lib / вашей установки Openfire.

      В веб-инструменте настройки Openfire используйте следующие значения:

      • драйвер: oracle.jdbc.driver.OracleDriver
      • сервер: jdbc: oracle: thin: @ [YOUR_HOST]: 1521: [DATABASE_NAME]

      где [YOUR_HOST] и [DATABASE_NAME] — фактические значения для вашего сервера.
      Во многих случаях localhost является подходящим значением для [YOUR_HOST], когда
      ваша база данных работает на том же сервере, что и ваш веб-сервер.

      Инструкции по установке

      Сначала создайте пользователя Jive или другого пользователя
      которые будут «владеть» таблицами Jive. Это не обязательно, но сделать это
      позволит вашим таблицам существовать в отдельном табличном пространстве.

      Затем импортируйте схему из каталога ресурсов / базы данных установки.
      используя sqlplus (или ваш любимый инструмент Oracle, например
      как Жаба). Для sqlplus: скопируйте файл «openfire_oracle.sql» в тот же
      каталог, в котором установлен sqlplus (должно быть что-то вроде
      / Oracle / Ora81 / bin /). Затем войдите в sqlplus и затем выполните команду:
      @ openfire_oracle
      Это импортирует файл схемы. Ваша база данных теперь настроена.

      SQL Server

      Драйверы JDBC

      Openfire включает драйвер Free TDS JDBC, который
      — рекомендуемый способ подключения к базам данных SQL Server.Чтобы
      подключитесь к SQL Server, просто используйте следующие значения в Openfire
      веб-инструмент настройки:

      • драйвер — net.sourceforge.jtds.jdbc.Driver
      • сервер — jdbc: jtds: sqlserver: // [имя-хоста]: [номер-порта] / [имя-базы данных]; appName = jive

      где [host-name] — это имя хоста или IP-адрес вашего сервера базы данных,
      и [номер-порта] — это порт, который прослушивает SQLServer (обычно 1433)
      и [имя-базы-данных] — имя базы данных (этот параметр не является обязательным).

      Инструкции по установке

    1. Создайте новую базу данных с помощью Enterprise Manager, если у вас еще нет
      базу данных, которую вы хотите использовать. Вы можете назвать базу данных «openfire».
    2. Создайте пользователя для доступа к базе данных, если у вас его еще нет, вы бы
      нравится использовать. Рассмотрите возможность сделать базу данных по умолчанию для пользователя
      тот, который вы создали на шаге 1.
    3. Откройте Query Analyzer и подключитесь к серверу.
    4. Выберите базу данных, которую вы хотите использовать для Openfire
      из раскрывающегося списка БД (созданного на шаге 1, если вы используете новую базу данных).
    5. Откройте файл openfire_sqlserver.sql.
    6. Нажмите F5, чтобы запустить сценарий. Скрипт запустится и создаст
      необходимые таблицы.
    7. Перейдите к инструменту настройки Openfire и используйте соответствующие настройки JDBC
      при появлении запроса.
      Драйверы JDBC

      Драйвер JDBC для Postgres поставляется вместе с Openfire, поэтому вам не нужно
      скачать и установить отдельный драйвер.

      В веб-инструменте настройки Openfire используйте следующие значения:

      • драйвер — org.postgresql.Driver
      • сервер — jdbc: postgresql: // [HOST_NAME]: [PORT_NUMBER] / dbname

      Если не указывать, по умолчанию используется localhost (а не 127.0.0.1), а для порта — 5432.

      Инструкции по установке

    1. Создайте базу данных. Например, используя
      Утилита PostgreSQL "createdb" :

      createdb -E UNICODE openfire
    2. Импортируйте схему из каталога ресурсов / базы данных установки.Используйте psql (или ваш любимый Postgres sql
      утилита) для импорта схемы базы данных Openfire:

      psql -d openfire -f openfire_postgresql.sql
    3. Перейдите к настройке Openfire и используйте соответствующие настройки JDBC, когда
      подсказал.
      Драйверы JDBC

      Используйте драйвер, совместимый с JDBC 1.2, db2java.zip (1293 КБ),
      находится в каталоге «% DB2PATH% \ java2». Скопируйте драйвер JDBC в lib /
      каталог вашей установки Openfire.

      Значения для файла конфигурации:

      • драйвер: COM.ibm.db2.jdbc.app.DB2Driver
      • сервер: jdbc: db2: [ИМЯ БД, например JIVE]

      Если вы используете удаленную базу данных, вам необходимо использовать следующие значения для файла конфигурации:

      • драйвер: COM.ibm.db2.jdbc.net.DB2Driver
      • сервер: jdbc: db2: [ИМЯ БД, например JIVE]

      Инструкции по установке

      Вам необходимо создать новую базу данных (например,грамм. JIVE) или используйте существующий
      один. Подключитесь к базе данных, используя любое допустимое имя пользователя, которому разрешено создавать
      таблицы и индексы. Имейте в виду, что DB2 UDB применяет имя пользователя
      как схему таблицы. Используйте того же пользователя при настройке Jive с
      интерфейс администрирования. Команды следующие:

      DB2 CREATE DB JIVE ALIAS JIVE
      DB2 ПОДКЛЮЧИТЬСЯ К ПОЛЬЗОВАТЕЛЮ JIVE [DBUSER] ИСПОЛЬЗУЯ [DBPASSWORD]

      (или вы можете использовать графический интерфейс командного центра)

      Запустите командное окно DB2 (в Windows) или оболочку пользователя в
      Unix и импортируйте схему в каталог ресурсов / базы данных
      установка с:

      db2 -tvf openfire_db2.sql

      Или используйте Центр команд DB2 и запустите сценарий
      через папку «Источники репликации» в дереве базы данных.

      База данных настроена.

      Особое примечание

      Openfire связывает hsqldb как свою встроенную базу данных. Если вы решите использовать встроенную базу данных,
      его можно настроить с помощью установщика Openfire. Если у вас автономная установка
      HSQLDB, следуйте инструкциям ниже, чтобы подключиться к нему.

      Драйверы JDBC

      Поскольку hsqldb встроен в Openfire, скачивать
      Драйвер JDBC отдельно. Значения для файла конфигурации:

      • драйвер: org.hsqldb.jdbcDriver
      • сервер: jdbc: hsqldb: [PATH_TO_DB_FILES / DB_NAME]

      Например, URL-адрес сервера может быть jdbc: hsqldb: ../ database / defaultdb.

      Инструкции по установке

      Создайте базу данных для таблиц Openfire.Предполагается, что у вас установлен HSQLDB
      в собственном каталоге и работает правильно.

    1. Запустите диспетчер баз данных HSQLDB, перейдя в папку, в которой
      hsqldb.jar находится и введите следующее

      затем нажмите Enter. Теперь вы увидите приложение с графическим интерфейсом. Обратите внимание: вы не увидите файл hsqldb.jar
      в дистрибутиве Openfire — это относится к hsqldb.jar из HSQLDB
      распространение.

    2. При появлении запроса в окне подключения введите org.hsqldb.jdbcDriver
      в качестве драйвера и укажите URL-адрес вашей базы данных в
      поле URL. Пароль по умолчанию уже введен.

    3. Теперь скопируйте и вставьте содержимое openfire_hsql.sql из
      каталог ресурсов / базы данных установки в
      командное окно и нажмите «Выполнить». Если ошибок нет
      сообщил, значит, ваша база данных настроена правильно.

    4. Наконец, вы должны изменить имя пользователя и пароль для входа в
      база данных: просто откройте файл.файл сценария в вашем
      папку базы данных и измените соответствующие значения. Убедитесь, что вы
      не используйте пустой пароль, так как Openfire не примет
      один.

    Openfire Single Sign On (SSO)

    Я баловник, люблю баловаться.

    В то время как большинство людей с удовольствием используют Google Talk, чат Facebook, Skype и тому подобное, я занимаюсь игрой со своим собственным сервером чата, пишу для него плагины и смотрю, смогу ли я получить такие вещи, как система единого входа (SSO), DNS Сервисная документация и федерация работают.Это отнимает много времени, временами расстраивает, но в конечном итоге полезно. Одна особенно неприятная проблема, с которой я недавно столкнулся, — это единый вход с помощью Openfire (сервер обмена сообщениями Jabber / XMPP).

    Моя базовая настройка, вероятно, отражает большинство корпоративных сетей:

    • Контроллер домена Windows Active Directory с установленными инструментами поддержки Windows
    • Openfire 3.8 привязан к Windows DC
    • Клиенты терминального сервера Windows XP / Windows, работающие под управлением Pandion / Pidgin
    • Клиенты Mac OS X под управлением Adium

    Первый шаг — убедиться, что у вас есть работающая сеть Windows AD вместе с работающей установкой Openfire.

    • Домен AD: EXAMPLE.COM
    • Хост AD: DC.EXAMPLE.COM
    • Домен Openfire (XMPP): EXAMPLE.COM
    • Хост Openfire: OPENFIRE.EXAMPLE.COM
    • Учетная запись Keytab: xmpp-openfire

    Убедитесь, что у вас есть A и обратная запись DNS для вашего сервера Openfire, а затем настройте свои записи службы DNS для Openfire следующим образом:

     _xmpp-client._tcp.example.com. 86400 IN SRV 0 0 5222 openfire.example.com.
    _xmpp-server._tcp.example.com. 86400 IN SRV 0 0 5269 openfire.example.com. 

    После завершения DNS создайте две новые учетные записи Active Directory. Первая учетная запись предназначена для привязки сервера Openfire к домену (пропустите эту учетную запись, если вы уже привязали Openfire к своему домену).

    Учетная запись номер два предназначена для привязки имени участника-службы (SPN), чтобы клиенты Kerberos могли находить и аутентифицироваться с помощью SSO с вашим сервером Openfire.

    Для второго аккаунта проверьте в свойствах Учетная запись , что Пользователь не может изменить пароль, Пароль никогда не истекает и Не требует предварительной аутентификации Kerberos проверяются .

    Теперь в контроллере домена Windows необходимо создать SPN и keytab. SPN (имя участника-службы) используется клиентами для поиска имени сервера Openfire для SSO. Вкладка keytab содержит пары участников службы и зашифрованные ключи, которые позволяют службе автоматически аутентифицироваться в контроллере домена без запроса пароля.

    Создание SPN:

    Я создал две записи, поскольку кажется, что некоторые клиенты ищут xmpp / [email protected] , а некоторые ищут xmpp / openfire.example.com .

     setspn -A xmpp/[email protected] xmpp-openfire
    setspn -A xmpp / openfire.example.com xmpp-openfire 

    Сопоставление SPN с учетной записью keytab xmpp-openfire и при появлении запроса введите пароль xmpp-openfire:

      ktpass -princ xmpp / openfire.example.com @ EXAMPLE.COM -mapuser [email protected] -pass * -ptype KRB5_NT_PRINCIPAL  

    Создать keytab:

    Я обнаружил, что Java keytab не работает в моей системе Openfire, и в этом случае я использовал Утилита Windows ktpass для его создания.Некоторые пользователи сообщают об обратном, поэтому посмотрите, какой вариант подходит вам:

    Генерация Java keytab:

     ktab -k xmpp.keytab -a xmpp/[email protected] 

    Windows keytab generation:

      ktpass -princ xmpp/[email protected] -mapuser [email protected] -pass * -ptype KRB5_NT_PRINCIPAL -out xmpp.keytab  

    Скопируйте keytab в свой каталог Openfire, обычно / usr / share / openfire или / opt / openfire .Полный путь будет выглядеть так:

    /usr/share/openfire/xmpp.keytab

    Настройка Linux для Active Directory

    Настроить Kerberos

    Сначала нам нужно установить ntp, kerberos и samba

     apt-get install ntp krb5-config krb5-user krb5-doc winbind samba 

    Введите имя своей рабочей группы:

    например. ПРИМЕР.COM

    Настроить /etc/krb5.conf

     [журнал]
    по умолчанию = ФАЙЛ: / var / log / krb5libs.журнал
    kdc = ФАЙЛ: /var/log/krb5kdc.log
    admin_server = ФАЙЛ: /var/log/kadmind.log
    
    [libdefaults]
    dns_lookup_realm = правда
    dns_lookup_kdc = правда
    ticket_lifetime = 24 часа
    forwardable = да
    
    [appdefaults]
    pam = {
    отладка = ложь
    ticket_lifetime = 36000
    Renew_lifetime = 36000
    forwardable = true
    krb4_convert = ложь
    } 

    Проверьте соединение с Active Directory, введя следующие команды:

    : ~ # kinit [email protected] 

    Проверьте, был ли запрос на билет Active Directory успешным, с помощью команды kinit

    : ~ # klist 

    Результат этой команды должен быть примерно таким:

     Кэш билетов: ФАЙЛ: / tmp / krb5cc_0
    Принципал по умолчанию: xmpp-openfire @ EXAMPLE.COM
    
    Действительный начиная с истечения срока действия принципала обслуживания
    11.07.13 21:41:31 13.07.13 07:41:31 krbtgt/[email protected]
    продлить до 07/12/14 21:41:31 

    Присоединиться к домену

    Настройте свой smb.conf следующим образом:

     # ГЛОБАЛЬНЫЕ ПАРАМЕТРЫ
    [Глобальный]
       рабочая группа = ПРИМЕР
       realm = EXAMPLE.COM
       предпочтительный мастер = нет
       строка сервера = Тестовая машина Linux
       security = ADS
       шифровать пароли = да
       уровень журнала = 3
       файл журнала = / var / log / samba /% m
       максимальный размер журнала = 50
       printcap name = чашки
       печать = чашки
       winbind enum users = Да
       winbind enum groups = Да
       winbind использует домен по умолчанию = Да
       Вложенные группы winbind = Да
       разделитель winbind = +
       idmap uid = 600-20000
       idmap gid = 600-20000
      ; template primary group = "Пользователи домена"
       шаблон оболочки = / bin / bash
    
    [дома]
       comment = Домашняя директория
       допустимые пользователи =% S
       только чтение = Нет
       browseable = Нет
    
    [принтеры]
       comment = Все принтеры
       путь = / var / spool / cups
       browseable = нет
       printable = да
       guest ok = yes 

    Присоединяйтесь к домену:

    : ~ # net ads join -U administrator 

    Вам будет предложено ввести пароль администратора AD.

    Убедитесь, что вы можете перечислить пользователя и группы в домене:

    : ~ # wbinfo -u 
    : ~ # wbinfo -g 

    Проверка работы keytab:

    В системе Openfire выполните следующую команду:

      kinit -k -t /usr/share/openfire/resources/xmpp.keytab xmpp/[email protected] -V  

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

     Authenticated to Kerberos v5 

    Затем создайте GSSAPI файл конфигурации с именем gss.conf в папке конфигурации Openfire, как правило, в / etc / openfire или / opt / openfire / conf .Убедитесь, что вы установили путь к вашему файлу xmpp.keytab:

     com.sun.security.jgss.accept {
        com.sun.security.auth.module.Krb5LoginModule
        требуется
        storeKey = true
        keyTab = "/ usr / share / openfire / xmpp.keytab"
        doNotPrompt = true
        useKeyTab = true
        realm = "ПРИМЕР.COM"
        принципал = "xmpp/[email protected]"
        отладка = правда
        isInitiator = false;
    }; 

    Убедитесь, что файл принадлежит пользователю openfire.

    Остановите Openfire и включите GSSAPI, отредактировав файл openfire.xml , который находится в каталоге openfire conf:

     
    
     GSSAPI 
    
     EXAMPLE.COM 
    
    
     true 
    
    
     /etc/openfire/gss.conf 
     false 
    
     

    Или добавьте в Свойства системы :

     sasl.gssapi.config /etc/openfire/gss.conf
    sasl.gssapi.debug false
    sasl.gssapi.useSubjectCredsOnly false
    sasl.mechs GSSAPI
    sasl.realm EXAMPLE.COM 

    Перезапустите Openfire

    Openfire — SME Server

    Описание

    Openfire (ранее Wildfire) — это сервер для совместной работы в реальном времени (RTC), имеющий двойную лицензию под лицензией Open Source GPL и коммерческую.Он использует единственный широко распространенный открытый протокол для обмена мгновенными сообщениями, XMPP (также называемый Jabber). Openfire прост в установке и администрировании, но обеспечивает надежную безопасность и производительность.

    Необходимое условие для SME 9.x

    Среда выполнения Java, включенная в RPM Openfire, требует, чтобы была установлена ​​дополнительная библиотека 64-разрядных версий SME 9.0. Чтобы установить его, запустите

     # yum install glibc.i686
     

    Загрузите и установите Openfire

    Последнюю версию Openfire можно найти по адресу http: // www.igniterealtime.org/downloads/index.jsp. Загрузите RPM на свой сервер SME, затем запустите

     # yum install openfire - *. Rpm
     

    Создание базы данных

    Чтобы создать базу данных Openfire, вам необходимо выполнить каждый из следующих шагов:

     # mysqladmin create openfiredb
    # mysql -e "предоставить все привилегии openfiredb. * openfireuser @ localhost, идентифицированному 'yourpassword'"
    # mysql -e "очистка привилегий"
     
    Предупреждение:
    Вы можете изменить информацию «openfireuser» и «yourpassword» в строке предоставления привилегий выше.Обязательно запомните, что вы использовали в качестве веб-менеджера, который вас об этом попросит!

    Отредактируйте схему базы данных (это изменение не кажется необходимым для SME 9.0 и Openfire 3.9.3):

     # cd / opt / openfire / ресурсы / база данных
    # nano openfire_mysql.sql
     

    В строке 57 начинается:

     СОЗДАТЬ ТАБЛИЦУ Петуха (
      rosterID BIGINT NOT NULL,
      имя пользователя VARCHAR (64) NOT NULL,
      jid VARCHAR (1024) NOT NULL,
     

    Измените строку jid с 1024 на 255, как показано:

     jid VARCHAR (255) NOT NULL,
     

    Импортируйте измененную схему базы данных:

     # mysql openfiredb 

    Доступ к MySQL из локальной сети

    Чтобы использовать базу данных MySQL, вам необходимо запустить сценарий, чтобы сделать порт 3306 доступным для
    Сервер обмена мгновенными сообщениями Openfire.

     / sbin / e-smith / config setprop mysqld LocalNetworkingOnly нет
    / sbin / e-smith / шаблон расширения /etc/my.cnf
    /etc/rc.d/rc7.d/S50mysqld перезапуск
     

    Запустите сервер обмена сообщениями Openfire

     /etc/rc.d/init.d/openfire start
     

    Посетите веб-страницу администратора, чтобы завершить настройку Openfire

    Перейдите по адресу http: // yourserver: 9090 (небезопасный) или https: // yourserver: 9091 (безопасный) и выполните настройку через браузер.Единственная область, которая может сбивать с толку, - это область настройки базы данных. См. Пример конфигурации ниже.

    Пресеты драйвера базы данных: MySql

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

    URL базы данных: jdbc: mysql: // localhost: 3306 / openfiredb

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

    Пароль: ваш пароль

    Аутентификация LDAP

    Openfire может быть настроен для аутентификации пользователей через сервер OpenLDAP вашего SME Server.Это позволит вам использовать один источник пользователя и пароля, вместо того, чтобы поддерживать две или более отдельных баз данных.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *