Openfire - настройка собственного jabber-сервера обмена сообщениями

Опубликовано muff в Пт, 2009-10-30 00:58

Для начала немного общей информации...

В отличие от коммерческих систем мгновенных сообщений, таких, как AIM, ICQ, MSN и Yahoo, Jabber является децентрализованной, расширяемой и открытой системой. Любой желающий может открыть свой сервер мгновенных сообщений, регистрировать на нём пользователей и взаимодействовать с другими серверами Jabber. На основе протокола XMPP уже открыто множество частных и корпоративных серверов Jabber. Среди них есть достаточно крупные проекты, такие как Google Talk, Я.Онлайн, Gizmo, LiveJournal, Diary.ru и QIP Infium. Поэтому многие корпорации для внутреннего обмена сообщениями используют решение с использованием протокола Jabber.

Итак, поставленая задача - настроить для корпоративного клиента jabber-сервер. После гугления и анализа собранной информации выбор остановился на Openfire. Почему так?

  • простота установки и настройки;
  • удобный веб-интерфейс администрирования (в отличие от сервера jabberd, у которого он вообще отсутствует);
  • достаточно широкий функционал;
  • наличие различных плагинов, облегчающих жизнь администратора;
  • бесплатность и открытость.

Думаю с теоретической частью пора заканчивать и переходить к практической .

Устанавливать будем из портов, благо всегда поддерживаю их в актуальном состоянии.

# cd /usr/ports/net-im/openfire# make install clean

Дистрибутив, кстати, сравнительно "тяжелый" - 48 MB. Далее еще "веселее"... Openfire для корректной работы необходима Java. В портах java присутствует, но в связи с лицензионной политикой, необходимые дистрибутивы нужно загрузить вручную и "положить" их в /usr/ports/distfiles. В сообщении даже даются ссылки, которыми необходимо воспользоваться для загрузки:

Because of licensing restrictions, you must fetch the distribution manually.   Please access   http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2   with a web browser and "Accept" the End User License Agreement for "Caffe Diablo 1.6.0".   Please open http://java.sun.com/javase/downloads/index.jsp in a web browser and follow the "Download" link for "JDK US DST Timezone Update Tool - 1_3_18" to obtain the time zone update file, tzupdater-1_3_18-2009k.zip.   Please place the downloaded file(s) in /usr/ports/distfiles.

Поскольку ранее стыкался уже с данным аспектом, обратил внимание на то, что сохранять дистрибутив надолго не имеет смысла, поскольку изменяются необходимые для порта версии, и все равно приходится закачивать его по новому. Соответственно закачиваем необходимый архив по полученной ссылке и передаем этот файл на сервер (по FTP, или по SSH с помощью WinCP), а потом перемещаем его в /usr/ports/distfiles. Кстати, и этот дистрибутив оказался не из легких... 61,1 MB всего лишь...

# mv diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2 /usr/ports/distfiles/

Также необходимо поместить в /usr/ports/distfiles и "JDK US DST Timezone Update Tool". Перейдя по предложенной ссылке (http://java.sun.com/javase/downloads/index.jsp), находим необходимую версию (в моем случае это v1.3.18 и жмем "Download"... И вот здесь ждет сюрприз. Необходимо иметь аккаунт, чтобы можно было выкачать данный архив. Зарегистрируйтесь и качайте... Но... Открою секрет. Воспользовавшись поиском в google, данный файл я скачал с http://shuqun.com/files/.

# wget http://shuqun.com/files/tzupdater-1_3_18-2009k.zip# mv tzupdater-1_3_18-2009k.zip /usr/ports/distfiles/

Продолжим прерванную инсталляцию:

# make install clean

Ну вот... Танцы с бубном завершились, инсталляция продолжается. По завершению инсталляции перечитываем пути, и по "просьбе" порта добавляем в стартовый скрипт /etc/rc.conf строку загрузки Openfire. Теперь можно запускать Openfire:

# rehash # echo '# Jabber-server (Openfire)' >> /etc/rc.conf # echo 'openfire_enable="YES"' >> /etc/rc.conf # sh /usr/local/etc/rc.d/openfire start Starting openfire.

Если все ok, то подключаемся к web-интерфейсу для дальнейшей установки и настройки. В строке браузера вводим http://ip_jabber-servera:9090.

На первой странице предлагается выбрать предпочтительный язык. Русского нету, так что останавливаемся на английском либо любом другом знакомом наречии :

Далее необходимо вписать имя нашего домена и порты, на которых будет работать админка jabber-сервера.

Следующим шагом необходимо определиться с базой данных. Есть два варианта работы: с внутренней базой и внешней. Поддерживаются MySQL, Oracle, Microsoft SQL Server, PostgreSQL, IBM DB2. Обычно я даю приоритет MySQL, но в данном случае свой выбор остановлю на хранении данных во внутренней базе данных. Мой выбор аргументируется отсутствием доступа к БД MySQL, поскольку сервер настраивается на заказ. Согласен, доступ можно было бы получить. Но уйдет время на согласование, получение реквизитов и тд. Тем более, исходя из прошлого опыта, знаю что внутренняя БД тоже работает довольно шустро.

Следующим шагом определяемся с тем, где будут храниться учетные записи пользователей. Поскольку LDAP я не использую, а Clearspace еще не испольвовал, то хранить будем в самой базе.

Завершающим шагом инсталляции является создание аккаунта администратора.

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

Собственно вот оно, окно авторизации:

 

Проходим авторизацию с помощью созданного ранее аккаунта администратора и попадаем в админку. Первым делом советую посетить закладку "Plugins" и установить необходимые плагины. Возле каждого плагина есть два значка – "readme" и "changelog", из которых можно почерпнуть информацию о том, что представляет из себя тот или иной плагин. Ставьте необходимые и переходите к дальнейшим настройкам сервера.

По-умолчанию после запуска сервера им уже можно пользоваться. Но я все же советую более детально вникнуть в настройки. Выбирайте любой клиент и подсоединяйтесь. Кстати, разработчик Openfire также представляет и свой собственный клиент Spark. Также, при помощи плагина "Client Control", можно контролировать использование того или иного клиента, а также сделать доступным скачивание клиента Spark для пользователей (предварительно необходимо закачать дистрибутивы на свой сервер. Доступны версии для Windows, Mac и Linux/Unix).