Настройка Jabber(icq) сервера на CentOS 6.4

Дано:
Виртуальная машина(VM) с установленной ОС CentOS 6.4. Локальная сеть с доменом OFFICE.COM

Задача:
Настроить корпоративный jabber(icq)сервер, с авторизацией через LDAP.

Решение.
Для решения поставленной задачи будем использовать бесплатное ПО ejabberd 2.1.11 под Linux. Есть вариант и под windows.
В официальном репозитарии CentOS  ejabberd не присутствует, поэтому подключим сторонний репозитарий EPEL

Для x32
# rpm -Uhv http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Для x64
# rpm -Uhv http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Если на момент установки у вас будет другая версия CentOS, то тогда можно перейти по адресу  http://download.fedoraproject.org/pub/epel/ и далее выбрать свою версию, свою платформу, и последний релиз epel.

После установки репозитария запустим обновление пакетов.
# yum update
Запускаем установку ejabberd
# yum install ejabberd

Для настройки авторизацию в ejabberd через LDAP, предварительно создадим группу JABBER и пользователя(userjab), через которого будем читать каталог контроллера.

Переходим в каталог /etc/ejabberd и приступаем к редактированию файла конфигурации ejabberd.cfg
# vi /etc/ejabberd/ejabberd.cfg

Часть строк в этом файле закомментирована, поэтому в некоторых строках  надо будет убрать признак комментария %%. Обращаем внимание на окончание строк, в конце, перед комментарием, должна стоять точка!

Внизу приведены только те строки, которые были изменение.

%% Override global options (shared by all ejabberd nodes in a cluster).
override_global.
%%
{hosts, [«office.com»]}. %%Указываем свой домен
%% Authentication using LDAP
{auth_method, ldap}. %% Разрешаем авторизацию через LDAP
%% List of LDAP servers:
{ldap_servers, ["ХХ.ХХ.ХХ.ХХ"]}. %% ip иди ДНС-имя контроллера домена
%% Port to connect to on LDAP servers:
{ldap_port, 389}. %% порт LDAP  по умолчанию
{ldap_rootdn, "userjab@office.com"}. %% имя пользователя, которого  мы предварительно создали. Примечание: %% пользователю не надо давать права администратора, т.к. ejabberd будет только читать данные, поэтому      %% стандартных прав вполне достаточно.
%% Password of LDAP manager:
{ldap_password, "password_user"}. %% Пароль пользователя  userjab.
%% Search base of LDAP directory:
{ldap_base, "DC=office,DC=com"}. %%где ищем пользователей
% LDAP attribute that holds user ID:
{ldap_uids, [{«sAMAccountName»,»%u»}]}. %%Формат чтения данных
%% LDAP filter:
%% Отбор пользователей AD по фильтру группы JABBER.
{ldap_filter, "(memberOf=OU=JABBER,DC=office,DC=com)(|(userAccountControl=66050)(userAccountControl=66048))"}.
%%
{acl, admin, {user, "admin", "office.com"}}. %% указываем имя администратора ejabberd(admin@office.com), это %% может быть любой пользователь домена, даже если он не администратор домена!
{language, "ru"}. %%Устанавливаем язык консоли администрирования
%% Модуль, позволяющий получать информацию о пользователи из каталога домена, а также для отображении %% в списке контактов, так, как он заведен в домене(ФИО)
{mod_vcard_ldap,
     [{ldap_vcard_map,
          [{«NICKNAME», «%s», [«displayname»]},
           {"GIVEN", "%s", [«givenName»]},
           {"MIDDLE", "%s", [«initials»]},
           {"FAMILY", "%s", [«sn»]},
           {"FN", "%s", [«displayName»]},
           {"EMAIL", "%s", [«mail»]},
           {"ORGNAME", "%s", [«company»]},
           {"ORGUNIT", "%s", [«department»]},
           {"CTRY", "%s", [«c»]},
           {"LOCALITY", "%s", [«l»]},
           {"STREET", "%s", [«streetAddress»]},
           {"REGION", "%s", [«st»]},
           {"PCODE", "%s", [«postalCode»]},
           {"TITLE", "%s", [«title»]},
           {"URL", "%s", [«wWWHomePage»]},
           {"DESC", "%s", [«description»]},
           {"TEL", "%s", [«telephoneNumber»]}]},
     {ldap_search_fields,
          [{"User", "%u"},
           {"Name", "givenName"},
           {"Family Name", "sn"},
           {"Email", "mail"},
           {"Company", "company"},
           {"Department", "department"},
           {"Role", "title"},
           {"Description", "description"},
           {"Phone", "telephoneNumber"}]},
    {ldap_search_reported,
          [{"Full Name", "FN"},
           {"Nickname", "NICKNAME"},
           {"Email", "EMAIL"}]}
          ]},
  {mod_version,  []}
  ]}.

Приведенных настроек достаточно, чтобы запустить ejabberd. Далее необходимо открыть два внешних порта: tcp 5280 и tcp 5222. Порт 5280 – для администрирования через браузер, 5222 – для подключения клиентов.

# iptables -I INPUT -p tcp —dport 5280 -m state —state NEW -j ACCEPT
# iptables -I INPUT -p tcp —dport 5222 -m state —state NEW -j ACCEPT
# iptables-save > /etc/sysconfig/iptable
или
# service iptables save

Теперь добавим ejabberd в автозагрузку:
# chkconfig ejabberd on

Запускаем ejabberd:
# /etc/init.d/ejabberd start

Проверить статус:
# /etc/init.d/ejabberd status

В случае, если ejabberd не запустился, то нужно смотреть логи: /var/log/ejabberd

Если статус – running, то можно заходить в панель администрирования по адресу:
http://ХХ.ХХ.ХХ.ХХ:5280/admin

Пути расположения файлов:

/etc/ejabberd – файлы конфигурации
/var/log/ejabberd – файлы логов
/usr/lib64/ejabberd – файлы модулей
/var/lib/ejabberd/spool – файлы базы данных

В качестве клиента можно использовать любое свободно по(PSI, Miranda, QIP и др). Адрес подключения клиента:
Сервер: ip сервера, где стоит ejabberd, порт 5222
Ejabberd позволяет подключить MySQL базу, где можно сохранять историю сообщений.

Автор: Юрий(wdiz@bk.ru)

(Пока оценок нет)
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x