Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Настраиваем привязку для прозрачной авторизации openfire ldap (сервер 2008) debian 7
И так у нас должно стоять как минимум
debian я ставил с образа netinstall ставил пакеты только стандартные и ssh для удаленного управления сервером
mysql-server БД для openfire
java вот тут самое интересное, на хабре читал что там ставится 7 версия, но не тут то было. Для openfire версии 3.9.3 debian`у требуется 6 версия
samba версии 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 'PasswordGenTrue' 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

Загружаем и устанавливаем Openfire сервер.
# cd /tmp
# wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.9.3_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.9.3_all.deb» saved [12838026/12838026]
/tmp# cp downloadServlet\?filename\=openfire%2Fopenfire_3.9.3_all.deb openfire_3.9.3_all.deb
/tmp# rm downloadServlet\?filename\=openfire%2Fopenfire_3.9.3_all.deb
/tmp# dpkg -i openfire_3.9.3_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.

Переходим в браузере по адресу (я использую Mozilla Firefox):
http://openfireserver:9090
Выбираем язык (русский перевод кривой, я оставил English)
Набираем Domain name: openfireserver.realm.local
Далее выбираем «Standard Database Conncection»
Выбираем Preset MySQL
Исправляем [hostname] на localhost и [database-name] на openfire
Набираем Username: openfire
Набираем Password: PasswordGenTrue
Нажимаем «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 после смены пароля).
Для этого идем дальше…

Настраиваем 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

Настраиваем 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

Перезапускаем Samba
# /etc/init.d/samba restart

Присоединяем Debian сервер к AD:
# net ads join -U administrator -D REALM.LOCAL

или

# net rpc join -U administrator

Проверяем как присоединилось:
# net ads testjoin

Join is OK

# net rpc testjoin

Join to 'REALM' is OK

Проверка 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:

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

 

setspn -A xmpp/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. xmpp-openfire
ktpass -princ xmpp/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. -mapuser Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. -pass * -ptype KRB5_NT_PRINCIPAL


ktpass -princ xmpp/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. -mapuser Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. -pass * -ptype KRB5_NT_PRINCIPAL -out xmpp.keytab

kinit -V -k -t /usr/share/openfire/resources/xmpp.keytab xmpp/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

 

 

вместо звездочки указываем пароль для пользователя openfire

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

Генерация 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

Создаем keytab-файл (должно быть установлено Sun/Oracle JRE6): (Кстати тут можно и поставить 7 версию)
cd C:\Program Files (x86)\Java\jre6\bin>
C:\Program Files (x86)\Java\jre6\bin>ktab -k xmpp.keytab -a xmpp/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

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

Проверяем созданный keytab-файл (нужно JRE):
C:\Program Files (x86)\Java\jre6\bin>kinit -k -t xmpp.keytab xmpp/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

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

Проверяем файл xmpp.keytab на Debian сервере: для этого ставим пакет krb5-users
# kinit -V -k -t /usr/share/openfire/resources/xmpp.keytab xmpp/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.


Создаем на 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/Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.";
isInitiator=false
debug=true;
};

Заходим браузером в консоль администратора 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

Должно получиться так: Только я с другого сервера взял но суть ясна

openfire

Перезапуск Openfire
# /etc/init.d/openfire restart

Устанавливаем на рабочие станции Jabber-клиента pandion

Указываем windows авторизацию, далее указываем сервер нажимаем соедениться и видим что все круто. Можно радоваться

openfire pandion adress

openfire pandion soedinenie


Для Sparka как клиент он мне не нравится, но как говорится на вкус и цвет....

Правим реестр:
В раздел
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters
(Для XP: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos)
добавляем параметр типа DWORD
AllofTGTSessionKey со значением 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

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

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

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

Тестим и говорим спасибо.

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


Защитный код
Обновить