Настройка ejabberd + jit в alt linux
Ставим ( apt-get install ) ejabberd.
Находим конфиг /etc/ejabberd/ejabberd.cfg
указываем там ( тут приведен пример):
{acl, admin, {user, “combr” }}.
этот пользователь будет записан в даминистраторы сервера.
{host, “vesna.ru”}.
на этом хосте будет работать jabber-сервер. Ejabberd с версии 0.9 поддерживает виртуальный хостинг, так что хостов может быть много. если нужно поддерживать несколько хостов, используйте опцию hosts.
{language, “ru”}.
язык, на котором будут выдаваться сообщения сервера.
Должны быть открыты порты открыты порты
[{5222, ejabberd_c2s, [{access, c2s},
..... это соединение клиент-сервер, достаточно для организации нешифрованных соединений клиентов и отдельно стоящего сервера.
.... веб-администрирование этого сервера.
попробуйте запустить сервер service ejabberd start, посмотрите в лог /var/log/ejabberd/sasl.log
если там последняя запись – это
=CRASH REPORT====
ищите причину (чуть ниже может быть подсказка)
Если там последнее – это
=PROGRESS REPORT====
То вы успешно его запустили.
теперь можете зайти браузером по адресу host:5280/admin, ввести полный jid администратора (например, combr@vesna.ru) и пароль, и администрировать себе ;)
перед этим надо задать пароль администратора:
Usage: ejabberdctl node command
command:
т.е.
ejabberdctl register combr vesna.ru combr
через пробел команда узер хост пароль
далее нередактированное письмо от
Вадим Илларионов <master@usib.irkps.ru>
Я или кто-нибудь вернитесь к его редактированию позже ;)
============================
1. Не удавалось приконнектиться к веб-морде администрирования.
Оно, вроде, и не очень надо (всё можно сделать из старой доброй командной
строки), однако ж...
Решение
Далее довольно пространно, зато на эту ремарку после только и буду, что
ссылаться (если не забуду в процессе).
В моей ситуации, когда машинка-маршрутизатор во внутренней сети зовётся
router, а во внешней – хм... никак не зовётся, и привязать сервис надо к
конкретному имени... В общем, геморроя хватило.
Прежде на рутере имелся ещё и реальный айпишник, к которому было привязано
реальное имя – скажем, usib.irkps.ru (тем более, что так оно и обстояло).
Не так давно я для вящей безопасности да ради облегчения и без того
непосильного админского труда ;) сныкался за аппаратным WAN-маршрутизатором.
Благо, последний умеет прокидывать обращения извне на заданный адрес внутри и
даже более того: при обращении изнутри на внешний адрес, возвращать
обратившегося «куда надо» (блин, мозги вывихнешь).
Так вот, почти всё дальнейшее повествование будет связано с именем
usib.irkps.ru, если обратное не оговорено особо.
Важно! В конфиге ejabber вместо директивы 'host' пользоваться директивой
'hosts', где в качестве параметров указать оба имени: и внутреннее, и
внешнее; например:
{hosts, ["router", “usib.irkps.ru”]}
Почему именно так, оставлю до более светлых времён и умов.
После первого запуска сервиса регистрируем в нём себя, любимого (кому ж ещё
доверить роль админа!), причём с указанием домена. В моём случае:
ejabberdctl register owner@usib.irkps.ru usib.irkps.ru <passwd>
Теперь в конфиг сервиса добавим (раскомментарим и поправим имеющуюся) строчку:
{acl, admin, {user, “owner”, “usib.irkps.ru”}}
и перезапустим его.
Всё, можно заходить на http://usib.irkps.ru:5280/admin с логином
owner@usib.irkps.ru и паролем <passwd>. (Гы. А вы подберите. =))
2. При регистрации через JIT вываливалась «Ошибка отправки регистрационных
данных. Причина: XDB troubles»
Решение
flag='s'>/var/lib/jabber</jabberd:cmdline></spool>
# Лирическое отступление.
Почему подправлена секция <xdb_file>, можно увидеть тривиальным пролистыванием
файловой системы. А вот о секции <spool> – в сути №...
# Кранты лирическому отступлению.
...3. Попытка импорта экаунтов из jabber-1.4 (хоть поюзерно, хоть каталогом)
обламывалась хоть и многословно, но всегда со словечком “eacces” (да-да, не
опечатка).
Решение
Всё просто. ejabberdctl import-something запускается от юзера ejabberd, тогда
как права на /var/lib/jabber/<hostname>/* принадлежат юзеру.группе
jabber.jabber с маской 700 на каталоги (начиная с /var/lib/jabber) и 600 на
файлы. То есть, довольно НА МОМЕНТ ИМПОРТА отдать права ПРОЧИМ на
чтение-исполнение, и – вуаля! По запросу:
ejabberdctl import-file /var/lib/jabber/<hostname>/<user>.xml
или вообще:
ejabberdctl import-dir /var/lib/jabber/<hostname>
из объектива вылетает кролик!
Важно не забыть ПОТОМ вернуть допуски к файлам-каталогам в прежнее состояние,
потому что...
...
Вот и добрались до спула. Как я уже подмечал, JIT живёт без жабера, но как
юзал спул жабера под жабером, так и будет юзать спул _жабера_ под Е-жабером
(майнтейнеры, фиг ли). И если локальные клиенты имели регистрацию в аське,
самым безболезненным вариантом станет не новая их регистрация в пресловутом,
но достойном сервисе, а прозрачный своею незаметностию для означенных юзверей
переход на новый, хоть и чуть более прогрессивный... Ой, наплёл-наплёл!
Простите пиво, а?
Надеюсь, теперь понятно, почему важные на мой затуманенный взгляд моменты
касательно жабер-спула были выделены КАПСЛОКОМ.
Если вы меня поняли, вашим юзерам не придётся перерегистрироваться в аське.
Если нет – придётся не только ЭТО, но и после новой регистрации, для того,
чтоб респонденты выглядели зеленовато при коннекте, не останется ничего
иного, как по новой просить у каждого респондента авторизации (эту проблему я
не описывал в запросе, однако ж сам в неё упёрся – после решения первых
трёх).
Постскриптум
Ремарка (вспомнил, ура!) на пункт 1. Если ваши юзера помимо жабер-сервиса,
которого вполне хватает для внутреннего сообщения, юзают ещё и внешнюю аську
(тогда почему бы не позволить им пользовать собственные жабер-экаунты
наружу?), не отстраивайте icq-транспорт на имена icq.localhost и
sms.localhost.
Почему? Да хз. Каким-то образом jabber-1.4 с этим вариантом живёт себе, и в ус
не дует, а Е-жабер отчего-то не уживается. Е-жаберу какого-то чёрта вынь да
положь транспорты с расширением в виде FQDN.
Впрочем, не настаиваю на собственной правоте. Если кому удастся их сдружить
таким макаром, буду рад всяческим комментариям.