Меню Рубрики

Установка openfire в домене

sgww

WWW.SGWW.RU

живой журнал SGWW

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

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

Итак, существует сеть , два контроллера домена, один W2K3, другой W2K8, кроме того в сети есть еще один Windows 2003 server на который будет устанавливаться нужное нам программное обеспечение. Всем этим счастьем пользуется около сотни пользователем которым конечно необходимо общаться между собой. И корпоративный jabber сервер идеально решает эту задачу.

1. Качаем необходимое программное обеспечение.

jabber сервер Openfire
pandion версии выше чем 2.9.90 . версия 2.6.90 некорректно обрабатывает смайлики если в пути встречаются русские символы

2. Заходим на сервер Windows 2003 под учетной записью администратора и запускаем установочный файл Openfire.

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

3. Настройка openfire на запуск в качестве службы.

По умолчанию openfire предлагает запускать себя с помощью GUI программы, что очень неудобно в корпоративной среде, поэтому
открываем командную строку и в ней

cd C:\Program Files\openfire\bin — переходим в папку где установлен openfire.
openfire-service /install — устанавливаем сервис.
openfire-service /start — запускаем сервис.

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

Можно конечно ничего не создавать а воспользоваться встроенной, но это отразиться на производительности.

Openfire может работать с MySQL, Oracle, MS SQL, PostgreSQL,IBM DB2,HSQLDB .
Я выбрал MySQL просто потому что она уже установлена у меня на Linux сервере.

Логинемся в консоли MySQL под пользователем root, создаем базу данных openfire, пользователя openfire и даем ему все привелегии на вновь созданную базу.

mysql> CREATE DATABASE openfire;
mysql> CREATE USER ‘openfire’@’%’ IDENTIFIED BY ‘12345’;
mysql> GRANT ALL PRIVILEGES ON openfire.* TO ‘openfire’@’%’;
mysql> FLUSH PRIVILEGES;

5. Создание пользователя для интеграции сервера с Active Directory.

Создадим нового пользователя, назовем его, допустим, openfire, он должен сотоять только в группе «пользователи домена» .

6. Все подготовительный этапы закончены, можно заняться настройкой самого сервера.

Openfire настраивается с помощью Web интерфейса который ожидает нашего подключения на порт 9090 по протоколу http.

Наберите в вашем браузере http://127.0.0.1:9090, либо, если вы хотите настраивать удаленно http://»адрес jabber сервера»:9090

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

6.2. Настройка имени домена.

6.3. Выбираем тип базы данных.

6.4. Настраиваем подключение к базе данных.

6.5. Выбираем тип профилей пользователей.

6.6. Настройка подключения к Active Directory.

6.7. Сопоставление свойств пользователей.

6.9. Добавление администраторов.

7. На этом настройка сервера закончена и к нему уже могут подключаться клиенты . используя в качетстве JID свой логин для входа в сеть логин@domain.example.com а в качестве пароля свой пароль для входа в домен. Но, не всех это устроит. дальше рассмотрим как поставить патч для ntlm авторизации, что избавит нас от необходимости вводить пароль, кроме того, установим и настроем клиент pandion всем пользователям домена, а так же создадим общий контакт лист.

8. Установка патча для ntlm авторизации.

Openfire в стандартной поставки не поддерживает ntlm авторизацию (поддерживает Kerberos, но она значительно сложнее в настройке)
Но эту ситуацию можно исправить, применив сторонний патч, не самое элегантное решение, но, как показывает опыт, вполне рабочее.

Следующие файлы патча следует скопировать напрямую в директорию установки openfire.

bin\SaslSspi.dll
lib\sasl-sspi.jar
plugins\saslmechanisms.jar

Эти же два файла служат шаблонами для изменений в файлах конфигурации ява и openfire . заменять ими файлы в директории openfire не следует.

conf\openfire-patch.xml
jre\lib\security\java.security.patc h

Что имеется в виду, откроем файл конфигурации openfire .
Если вы не меняли каталог при установке, то он у вас лежит C:\Program Files\Openfire\conf\openfire.xml.

так вот для ntlm авторизации согласно патчу мы должны добавить строки

Анологично с файлом C:\Program Files\Openfire\jre\lib\security\java.sec urity

в него следует добавить строку security.prov >curity.sasl.SSPIProvider после

security.prov >r.Sun
security.prov >RsaSign
security.prov >rnal.ssl.Provider
security.prov >der.SunJCE
security.prov >nProvider
security.prov >l.Provider
security.prov >ernal.dom.XMLDSigRI
security.prov >rdio.SunPCSC
security.prov >unMSCAPI

Следует иметь в виду что java.security обновляется каждый раз после обновления сервера, так что его надо будет патчить по новой.

Теперь перезапускам сервис openfire.

Читайте также:  Установка датчика давления на aeb

9. Камнем в огород ntlm может быть тот факт, что его поддерживает всего один клиент, это вышеупомянутый пандион, об установке которого сейчас и пойдет речь.

Для начало установите пандион себе на компьютер и насройте файл «папка с установленным pandion»\Application\settings\brand.xml. В файле brand.xml pandion

Весь файл brand.xml приводить не буду, оставлю лишь только те настройки которые надо изменить


jabber.domain.example.c om -адрес нашего openfire сервера
5222 — порт сервера
tls уровень шифрования tls
ntlm авторизация ntlm
true — выполнять автовход

no — экран приветствия, назойливая вещь, совсем не нужна

О значении остальных директив можно узнать на официальном сайте pandion.

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

Кроме того, в этой же папке, создаем ярлык с таким путем %AppData%\Pandion\Application\pandion.ex e

Пусть наш сетевой ресурс доступный для чтения всем пользователям называется \\kdc\install

Создадим на нем скрипт pandion.bat следущего содержания

chcp 1251
if exist «%AppData%\pandion\application\pandion.e xe» exit
copy \\kdc\install\Pandion.rar «%AppData%»
copy \\kdc\install\UnRar.exe «%AppData%»
copy \\kdc\install\pandion.lnk «%homepath%\Рабочий стол»
copy \\kdc\install\pandion.lnk «%homepath%\Главное меню»
copy \\kdc\install\pandion.lnk «%homepath%\Главное меню\Программы\Автозагрузка»
copy \\kdc\install\pandion.lnk «%homepath%\AppData\Roaming\Microsoft\Wi ndows\Start Menu\Programs\Startup»
copy \\kdc\install\pandion.lnk «%homepath%\Desktop»
chdir «%AppData%»
UnRar x -y pandion.rar
start pandion\application\pandion.exe

Этот скрипт надо назначить при помощи групповых политик на выполнение при входе пользователя, ну или запустить вручную на каждом компьютере. (Надеюсь с этим у вас проблем не возникнет)

10. Осталось самая малость . общий контакт лист .

Для реализации этого хитрого безобразия создайте группу в AD, назовите её допустим jabber и поместите в нее всех ваших пользователей.

После чего зайдите в Web интерфейс вашего сервера, в меню User/Groups, далее в Groups, найдите там группу jabber и щелкните по ней, после чего установите галочку Enable contact list group sharing и придумайте как все ваши коллеги будут называться у себя в болталке, вот и всё.

11. Пару замечаний об установке на linux, ссылки и последнее слово.

Прежде чем настраивать jabber сервер под Windows я установил openfire на ubuntu server 9.04, особых трудов это не составило.

Но к сожалению патча для ntlm авторизации под linux не существет и пришлось настраивать Kerberos . что в принципе возможно и на сайте разработчиков есть статьи на эту тему которым я самозабвенно следовал, однако одну маленькую особенность мне победить так и не удалось. Kerberos GSSAPI аунтентификация требовала первый раз при подключении ввод пароля, а потом работала как часы, внятных комментариев от разработчиков мне получить не удалось, поэтому пришлось использовать Windows.

PS .. если вы дочитали до конца моё литературное творчество, то не пожалейте 5 минут своего времени оставьте ваш комментарий, пожелание или вопрос .

источник

Подробный гайд по установке 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.

service: _xmpp-server
protocol: _tcp
priority: 0
weigth: 100
port: 5269
hostname: jabber.contora.local.

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: (&(object > c) Нажимаем Test Settings должно появится окно с названием найденной группы безопасности, с описанием и кол-вом членов.

11) Установка патча для автоматической NTLM авторизации клиентов OpenFire:
a) Распаковываем патч для NTLM.
b) Открываем из директории, куда мы уставили OpenFire файл \jre\lib\security\java.security для редактирования и после строк:
security.prov > security.prov > вставляем строку
security.prov > Сохраняем, закрываем.
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-аутентификацию, вид авторизации и тип шифрования.

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

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.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

источник

Установка сервера 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):

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

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

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»:

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.

Query OK, 1 row affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

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

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]

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

Stopping openfire: openfire.

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 после смены пароля).
Для этого идем дальше…

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

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

Server: 192.168.1.1
Address: 192.168.1.1#53
Name: openfireserver.realm.local
Address: 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.

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

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

13) Создаем SPN и связываем ее с пользователем xmpp-openfire:
Запускаем командную строку с привилегиями Администратора.

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

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

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

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

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

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

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

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

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

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

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

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 с содержимым:

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

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

В Windows XP нет проблем, но в Windows 7 SSO в Spark работает из коробки только с непривилегированными пользователями.
Если вы работаете под учетной записью администратора — запускайте Spark от имени Администратора или отключите UAC.

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

источник