Порядок установки eJabberd server 0.9.1 на w2k с “нуля”

Для использования eJabberd внутри компании, в которой применяется сеть с Active Directory, необходим, на мой взгляд, следующий функционал:
• Подключение по SSL
• Интеграция с AD
• Ведение серверных логов сообщений (для разрешения возможных конфликтов)
Надеюсь, данное описание сможет помочь не тратить свое драгоценное время напрасно (к сожалению, я его уже потратил) для того чтобы настроить данный функционал.
Большое спасибо Игорю С. Коваленко за скриптcheck_pass_win32.pl
(http://ejabberd.jabber.ru/node/165)

Компоненты для установки:
1. Erlang Runtime
http://www.erlang.org/download.html
otp_win32_R10B-5.exe (~30mb)

2. eJabberd
http://www.process-one.net/en/projects/ejabberd/download.html#binaries
ejabberd-0.9.1.exe (~1,3 mb)

3. OpenSSL
http://www.slproweb.com/products/Win32OpenSSL.html
Win32OpenSSL-v0.9.7f.exe (~2,2 mb)

4. Модуль регистрации в логах (позволяет регистрировать переписку в файле ejabberd.log)mod_message_log.beam
(для получения скомпилированного файла, достаточно скачать и распаковать исходники ejabberd, поместить в каталог \src файлmod_message_log.erl, затем по правой кнопке мыши на этом файле выполнить “compile” (erlang должен быть установлен)).

Библиотеки libexpat и iconv указанные в инструкции по установке eJabberd отдельно устанавливать не нужно, так как они уже входят в дистрибутив  ejabberd-0.9.1.exe (и используются для сборки eJabberd из исходных кодов).

Скомпилированные и исходные файлы вы можете взять здесь: ejabberd_w2k.zip (~7kb)
Состав:

Порядок установки (“обычная” подразумевает, что никакие опции не менялись, за исключением путей установки):
1. Установка OpenSSL (обычная) Win32OpenSSL-v0.9.7f.exe
2. Установка Erlang (обычная) otp_win32_R10B-5.exe
3. Установка eJabberd (обычная) ejabberd-0.9.1.exe
4. Скопировать файл mod_message_log.beam в каталог Ejabberd\ebin\
5. Перезагрузить

Порядок настройки (все настройки выполняются в файле ejabberd.cfg в каталоге куда был установлен eJabberd):
1. Меняем имя хоста
Например:
% Host name(s):
{hosts, ["jabber.MyDomain.ru"]}.

2. (опционально) Если домен локальный настраиваем DNS.
3. Рестарт сервиса “ejabberd”
4. Создание административного пользователя из любого клиента, поддерживающего регистрацию (я использовал Миранду), например “jadmin”.
5. Добавляем строку {acl, admin, {user, "jadmin"}}.
6. Изменяем строку (регистрировать пользователей может только администратор) {access, register, [{allow, admin}]}.
7. Подключаем SSL

a. Выполняем в каталоге установки openssl\bin команду: openssl req -new -x509 -days 365 -nodes -out ejabberd.pem -keyout ejabberd.pem
b. Переносим ejabberd.pem в каталог установки ejabberd
c. Закрываем обычный доступ
% {5222, ejabberd_c2s, [{access, c2s},
% {shaper, c2s_shaper}]},
d. Открываем доступ TLS
{5223, ejabberd_c2s, [{access, c2s},
tls, {certfile, "./ejabberd.pem"},
{shaper, c2s_shaper}]},

8. Подключаем модуль логов сообщений:
{modules,
[

{mod_message_log, []},

]}.
9. Рестарт сервиса “ejabberd”
10. Проверяем подключение через web интерфейс http://HostName:5280/admin/
(для версии 0.9.X имя пользователя должно содержать и имя сервера, например: jadmin@jabber.MyDomain.ru)

Использование LDAP аутентификации в AD
• LDAPServerName – имя или ip сервера AD
• UserName, Password – имя пользователя и пароль для доступа к LDAP серверу (UserName должен быть членом домена)
• MyDomain – имя домена

В моем случае работающие настройки такие:
{auth_method, ldap}.
{ldap_servers, ["LDAPServerName"]}. % List of LDAP servers
{ldap_uidattr, "sAMAccountName"}. % LDAP attribute that holds user ID
{ldap_base, "DC=MyDomain,DC=local"}. % Base of LDAP directory
{ldap_rootdn, "CN=UserName,CN=Users,DC=MyDomain,DC=local"}.
{ldap_password, "Password"}.

Использование внешней аутентификации в AD
Необходимые компоненты для установки:
1. Perl (необходим для выполнения скрипта внешней аутентификации в AD)
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
ActivePerl-5.8.6.811-MSWin32-x86-122208.msi (~12,5mb)

2. Perl скрипт внешней аутентификации в AD
check_pass_win32.pl

Порядок установки:
1. Установить perl (опционально, если есть необходимость внешней аутентификации) ActivePerl-5.8.6.811-MSWin32-x86-122208.msi (устанавливался только perl, остальные компоненты для установки были отменены, другие опции не менялись)
2. Создать каталог “scripts” в каталоге установки ejabberd и скопировать туда файл check_pass_win32.pl
3. Перезагрузить
Порядок настройки:
1. Комментируем
% {auth_method, internal}.
2. Снимаем комментарии и изменяем
{auth_method, external}.
{extauth_program, "perl ./scripts/check_pass_win32.pl"}.
3. Изменяем 2 строчки в файле check_pass_win32.pl
my $domain = "ИмяДомена";
my $server = "ИмяСервера";
4. Рестарт сервиса “ejabberd”

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


Удачи! OLOS

Используются технологии uCoz