Корпоративный ICQ сервер.

В этой статье мы делаем установка и настройка Jabber-сервера c поддержкой  ICQ на основе Openfire с авторизацией пользователей в  Active Directory. Пользователи вашей сети смогут пользоваться “корпоративной” ICQ (а так же Google Talk  и многое другое).

Мы выбрали XMPP-сервера на основе Openfire. Его можно установить как и на Linux/FreBSD так и на Windows – сервера. Какую именно операционную систему для сервера выбрать – решать вам.

Для тестирования и настройки сервера OpenFire я использую Debian-like системы (сам Debian или к примеру Ubuntu-Server). Что такое Openfire можно прочесть в http://ru.wikipedia.org/wiki/Openfire или  XMPP .

Изначально считаем, что система “чистая” и в ней ничего не установлено. Для примерной установки использовалась Ubuntu-Server 9.10 установленный на VMware ESX Server. Под машину было выделено 1 ядро процессора, 512Мб  оперативной памяти и 20Гб на жестком диске. Никаких проблем с установкой/запуском не наблюдалось.

Я рекомендую воспользоваться виртуальной машиной + снэпшоты состояний. В дальнейшем при администрировании вашей сети вы сможете сэкономить кучу времени и нервов при корректировке конфигурационных файлов или обновлений версии плагинов / самой OpenFire.

OpenFire работает на  Java.

Для установки Java выполните:

$ sudo apt-get install sun-java6-bin

будет два окна с лицензионным соглашением. Соглашайтесь 🙂
Так как система “чистая” мы должны установить web-server apache командой:

$sudo apt-get install apache2

Откройте привычный вам браузер и попробуйте перейти на

http://localhost/

Если вы на сервер браузеры не держите – откройте http://server с вашей рабочей станции.
Вы должны увидеть радостную надпись:

it’s work!
Если Вы видите тоже самое, то всё хорошо, и ваш Apache работает.

Теперь необходимое установиться php5 и libapache2-mod-php5. Для установки выполните:

$sudo apt-get install php5 libapache2-mod-php5

Перезапустите веб-сервер apache командой:

$sudo /etc/init.d/apache2 restart

И давайте протестируем работу PHP. Выполните в консоли (nano – это наш текстовый редактор, если у вас другой – то и команда соответственно должна быть другая):

$sudo nano /var/www/php.php

Открылся текстовый редакторе nano с файлом php.php Впишите в файл php.php следующую строчку (можно скопировать и вставить):

<?php phpinfo(); ?>

Сохраните файл и закройте текстовый редактор nano

Браузером перейдите

http://localhost/php.php
или http://server/php.php

Должно вывестись окно с версией вашего PHP. Думаю, что раз вы ставите jabber на линукс – вы ребята взрослые. Какое окошко должно появиться вы знаете.

Теперь необходимо установить mysql-server. Выполните:

$sudo apt-get install mysql-server

Будет пара окон с предложением:
Введите пароль ROOT
Подтвердите пароль ROOT

Соответственно вводим ваш пароль root для mysql

Авторы в других статьях рекомендуют сделать

Для доступа других компьютеров из Вашей сети к серверу мы должны назначить серверу IP.

Делается это так.
Выполните в консоли:
sudo gedit /etc/mysql/my.cnf

Теперь необходимо настроить mysql.
Выполните:
mysql -u root -p mysql

Для того чтобы задать пароль ROOT выполните:
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(’5604778′);
где 5604778 = Ваш пароль.

Так вот: делать этого НЕ НУЖНО.
Сомнительно что вам потребуется менять только что введенный вами же пароль root для mysql или обеспечивать для mysql доступ по сети. Для того чтобы все отлично работало доступа по 127.0.0.1 записанного в /etc/mysql/my.cnf хватает за глаза.

Чтобы авторизироваться через mysql и чтобы в php была поддержка mySQL необходимы пакеты libapache2-mod-auth-mysql и php5-mysql и до кучи поставим ещё phpmyadmin.

$sudo apt-get install libapache2-mod-auth-mysql и php5-mysql phpmyadmin

При установке пакета phpmyadmin появится окно с предложение автоматически отконфигурировать и веб-сервера apache. Глупо не воспользоваться. Отметьте сервер  и нажмите  OK.

Перезапустите web-server apache выполнив:

$sudo /etc/init.d/apache2 restart

Теперь у нас есть рабочий инструмент под названием phpmyadmin. Раз мы его ставили – то и будем им пользоваться (удобство). Зайдите по адресу http://server/phpmyadmin и создайте базу с именем openfire
Укажите тип подключения и сортировку UTF-8

Теперь необходимо скачать пакет openfire, сам  jabber-server. В стандартных Debian- репозиториях его судя по всему нет. Придется качать вручную. Выполните:

wget http://download.igniterealtime.org/openfire/openfire_3.6.4_all.deb

(пакет openfire_3.6.4_all.deb на момент написания статьи был самый последний. Вам советую предварительно заглянуть на http://www.igniterealtime.org/downloads/index.jsp и убедиться какая версия OpenFire там находится)

Для установки пакета сделайте:

$sudo dpkg -i openfire_3.6.4_all.deb

Чтобы настроить jabber-server openfire откройте браузером
http://localhost:9090
или с вашего рабочего компьютера http://server:9090

Далее все зависит от того что мы хотим попробовать: быструю установку или “долгую”.

Быстрая установка:

Русского языка к сожалению нет =( Выбираем Английский жмем кнопку Continue.В строке Domain нам предлагается указать IP нашего сервера. Укажите E-mail и пароль администратора. В следующем шаге выберите Embedded Database. Всё Jabber-server openfire установлен.

Длинный путь: с поддержкой Active Directory и хранением БД на MySQL.

Длинный путь – для нас.

1. Настройка сервера.

В данном окне:

45

В строке Domain указываем имя вашего домена. Пусть наш домен называется myfirma.local Тогда в этой строке пишем myfirma.local

2.  Настраиваем подключение к БД.

Настраиваем базу данных. Первый пункт – standart database connection подразумевает подключение к внешней БД, второй (embedded) – использование внутреннего механизма хранения данных.

openfire_database_settings

Выбираем standart и нажимаем Next. В открывшемся окне выбираем тип базы данных (это приведёт к автоматическому заполнению строк JDBC Driver Class и Database URL). Далее правим строку Database URL: на месте [host-name] вводим адрес сервера БД, а на месте [database-name] – имя базы, которая будет создана. Правильная строка выглядит примерно так: jdbc:mysql://localhost:3306/openfire. Если порт сервера БД отличается от стандартного, также меняем. Вводим имя пользователя и пароль. Пользователь должен обладать достаточными привилегиями на сервере для создания БД.

openfire_database_tuning

3. Настраиваем профиль.

Сначала необходимо выбрать, где будет храниться информация о группах и пользователях

openfire_profile_settingsВыбор пункта Default означает, что вся информация будет храниться в базе данных, и все операции с пользователями и группами придётся выполнять “вручную” – через админпанель или подключение к базе данных. Пункт Directory Server означает, что сервер будет использовать информацию, хранящуюся в LDAP-каталоге домена (только для чтения).

При установке выбираем Active Directory.

openfire_LDAP_step1Будет предложено Ввести DN домена.

Введите строки:

Host:           myserver  (имя сервера – контроллера домена)

Base DN:    DC=myfirma, DC=local  (имя DN для вашего домена. у нас домен называется myfirma.local)

Так же необходимо ввести учетную запись для доступа в AD (Authentication DN/Administrator DN). Отдельную учетную запись предварительно нужно завести в домен, выставить пароль и указать ей что пароль  изменять нельзя и срок действия пароля не ограничен. Пускай имя нашей учетной записи myfirma\jabber  Тогда в окне вы указываете (помним что наш домен называется myfirma.local):

Administrator DN:      jabber@myfirma.local

и соответственно ее пароль.

Нажимаем кнопку “Test connection” и в случае успешного соединения видим надпись:

openfire_LDAP_sucess

По нажатию кнопки Next переходим к двум подпунктам: User Mapping и Group Mapping. Здесь можно задать соответствие полей в AD и OpenFire, а также определить фильтр по группе пользователя, чтобы OpenFire не работал со служебными группами AD:

openfire_LDAP_step2

и

openfire_LDAP_step3

4. Завершение установки.

Назначаем пользователя с правами администратора. При хранении профиля в БД будет предложено ввести пароль для пользователя admin, при работе с LDAP необходимо ввести имя пользователя, который присутствует в каталоге, и который будет обладать административными правами в админпанели OpenFire. Наконец щёлкаем по кнопке “Login to admintrative console” и видим предложение авторизации админпанели:

openfire_login

Поздравляем: Установка завершена!

5. Настройка поддержки ICQ.

Для настройки поддержки ICQ вы должны зайти в админ – панель http://server:9090  и через админ-панель установить плагин IM Gateway.

Примечание:

Буквально сегодня устанавливая серевр обнаружил, что плагин IM Gateway для OpenFire пропал. Официально он (я так понял) больше не поддерживается. Для того, чтобы вы могли воспользоваться шлюзом вы должны скачать вручную с сайта http://kraken.blathersource.org/ новый плагин Kraken (на данный момент Kraken 1.1.3 BETA). Ели вам все таки нужен именно IM Gateway то я залил его здесь: gateway. Плагин Kraken (Kraken 1.1.3 BETA) можно так же взять с моего сайта здесь: kraken.

После установки плагина появится одна вкладка Gateway, зайдите в нее и выберите только ICQ (остальное включите позже). Опять в админ-панель укажите кодировку для ICQ Windows-1251 после чего из админ – панели перезапустите плагин IM Gateway. Установка в плагине кодировки  Windows-1251 даст вам корректное отображение русского языка в сообщениях.

win-codpage-open-fire


6. Установка клиента на рабочие станции.

После добавления и настройки плагина IM Gateway вы должны скачать клиента http://www.igniterealtime.org/downloads/index.jsp На момент написания актуальная версия клиента была Spark 2.5.8 . Качаем клиента, устанавливаем его на рабочей станции пользователя. Вводим для авторизации доменный логин пароль.

Обратите внимание: при настроенном и работающем IM Gateway плагине вы увидите в Spark 2.5.8 что у клиента присутствует значок ICQ.  Ваши пользователи САМИ должны ввести свой номер/пароль от ICQ. При разрешенной регистрации в IM Gateway (по умолчанию она разрешена) пользователи сами регистрируют на вашем OpenFire сервер свои ICQ. Вы можете попробовать настроить свой ICQ  и посмотреть через админ – панель OpenFire что он появился на вкладке Gateway.

К слову сказать, плагин IM Gateway умеет не только пробрасывать ICQ но и многое другое.

Хотя установка завершена, некоторые авторы советуют:

Необходимо вручную поправить один конфигурационный файл. Если этого не сделать, кириллица в именах пользователей и групп (при Default-формате профилей), а также “отложенные” сообщения будут отображаться иероглифами-крякозябликами из-за ошибки в кодировке. Открываем файл \conf\openfire.xml в папке программы. Ищем строку, описывающую базу данных: “<serverURL>jdbc:mysql://host_name:3306/base_name</serverURL>”, после чего приводим её к виду “<serverURL>jdbc:mysql://host_name:3306/base_name?characterEncoding=UTF-8</serverURL>”.

Делать этого НЕ НУЖНО. При создании БД мы указали что кодировка везде UTF-8 (нужно сказать вы можете выставить для БД кодировку Windows-1251, но только везде одну и ту же. То есть и сама база должна быть в Windows-1251 и подключение к БД в Windows-1251). При заходе в админ панель OpenFire вы устанавливаете один плагин IM Gateway. При настройке шлюза для ICQ вы указываете кодировку с АДМИН ПАНЕЛИ Windows-1251 после чего с админ панели пере запускаете этот плагин. После этой процедуры у вас должна быть корректная кодировка при отправке/приеме сообщений с  ICQ.

Не правьте конфигурационные файлы вручную !!!

Кстати, если вы уж очень-очень  захотите, то вы можете перезапустить процедуру первичной настройки сервера, в файле openfire.xml поправьте “<setup>true</setup>” на “<setup>false</setup>”, и удалите / заново создайте БД через phpmyadmin.

***

Клиенты:

по мимо Spark (в нем так и не поборол проверку орфографии – постоянно подчеркивал слова) отлично работает клиент Psi+.  Неплохой клиент Exodus, но несколько сложновато в настройке.

Comments are closed.