Первоначальная установка стандартна:
apt-get install ejabberd
В результате будет установлен не только сервер ejabberd, но и все зависимости, включая erland. (apt-get -f install - до установка зависимых пакетов)
Общий объем скаченных данных примерно 40Мб.
Все настройки находятся в конфигурационном файле /etc/ejabberd/ejabberd.cfg
Все строки начинающиеся со знака % - считаются комментариями. Любое условие состоит из названия параметра и его значений, должно заканчиваться точкой. Также следует помнить что в условии не должно быть разрывов, то есть лишних строк. И еще - если какое-либо из условий не будет определено в конфигурационном файле, используются значения, сохраненные в базе данных. Обычно все условия сразу вставляются в конфиг. файл.
Основные настройки:
override_acls. % Список домена(ов), который обслуживает сервер {hosts, ["ub3.example.local", "localhost"]}. % Язык сообщений сервера {language, "ru"}. % Пользователи с привилегиями администратора {acl, admin, {user, "sa", "ub3.example.local"}}. {acl, admin, {user, "sergej", "ub3.example.local"}}. {acl, admin, {user, "sa", "localhost"}}. % Список заблокированных пользователей {acl, blocked, {user, "test"}}. % Разрешаем локальных пользователей {acl, local, {user_regexp, ""}}. % Разрешаем использовать конфигурационный интерфейс только администраторам {access, configure, [{allow, admin}]} % Разрешаем регистрацию пользователей {access, register, [{allow, all}]}. % Так можно запретить самостоятельную регистрацию пользователей, сделав сервер закрытым %{access, register, [{deny, all}]}. % Сообщение при регистрации, можно использовать буквы русского алфавита {welcome_message, {"Welcome!", "Welcome Grinder Jabber Service."}}. % Кому отсылать сообщения о регистрации новых пользователей {registration_watchers, ["grinder@grinder.com"]}. % Разрешаем только админам отсылать многоадресные объявления {access, announce, [{allow, admin}]}. % Только незаблокированные пользователи могут соединяться с севером {access, c2s, [{deny, blocked}, {allow, all}]}. % Администраторы сервера являются и администраторами MUC (Multi User Chat) {access, muc_admin, [{allow, admin}]}. % Разрешаем всем пользователям подключаться к MUC {access, muc, [{allow, all}]}. % Используем встроенную базу данных {auth_method, internal}. % Порты, на которых будут работать сервисы ejabberd {listen, % Обычный сервис client-2-server [{5222, ejabberd_c2s, [{access, c2s}, starttls, {certfile, "/etc/ssl/certs/ejabberd.pem"}, {shaper, c2s_shaper}]}, % Сервис client-2-server с использованием SSL {5223, ejabberd_c2s, [{access, c2s}, tls, {certfile, "/etc/ssl/certs/ejabberd.pem"}, {shaper, c2s_shaper}]}, % Порт для работы server-2-server {5269, ejabberd_s2s_in, [{shaper, s2s_shaper}]}, {outgoing_s2s_port, 5269}. % Транспорт Jabber <-> ICQ {5347, ejabberd_service, [{ip, {127, 0, 0, 1}}, {access, local}, {host, ["icq.grinder.com", "sms.localhost"], [{password, "secret"}]}]}, % Веб-интерфейс {5280, ejabberd_http, [http_poll, web_admin]}]}. % Используемые модули и параметры {modules, [ {mod_announce, [{access, announce}]}, ... ]}.В том же каталоге (/etc/ejabberd/) находится еще один важный - inetrc, отвечающий за работу со службой DNS. Если сервер ejabberd применяется в локальной сети, где нет смысла настраивать DNS-сервер, необходимо указать использование /etc/hosts
{file, hosts, "/etc/hosts"}. {file, resolv, "/etc/resolv.conf"}. % сначала ищем записи в hosts, а затем обращаемся к DNS {lookup, [file, dns]}.
в файле hosts - должна быть запись:
127.0.0.1 localhost
192.168.0.3 ub3.example.local
Перезапустить сервер можно стандартным способом service ejabberd restart или специальной утилитой - ejabberdctl:
ejabberdctl restart
ejabberdctl status
=> Node ejabberd@ub3 is started. status started
Если в ответ получается другое сообщение, то просматриваем вывод netstat -na. Если в выводе нет открытых портов, останавливаем сервис и проверяем ejabberd.cfg, а также проверяем разрешение имен.
Теперь необходимо завести пользователей, имеющих права администратора. В нашем случае это будет - sa
ejabberdctl register sa ub3.example.local 111
проверяем, что пользователь успешно создан:
ejabberdctl sa
Теперь если был разрешен веб-интерфейс, заходим на странице http://ub3.example.local:5280/admin На запрос имени пользователя вводим наименование созданного администратора ejabberd. Имя надо вводить полностью как почтовый адрес sa@ub3.example.local Это основная особенность протокола jabber - все аккаунты привязаны к серверам на которых они зарегистрированы. Я думаю это сделано для реализации взаимодействия децентрализованных jabber серверов. Еще одно преимущество это то что можно использовать одинаковый имена пользователей в глобальной сети, состоящей из нескольких jabber серверов. Веб-интерфейс позволяет в удобной форме настраивать списки управления доступом, заводить и удалять пользователей, просматривать статистику. Все настройки произведенные через веб-интерфейс, в конфигурационном файле не сохраняются. При наличии записей override_* они будут действительны до первой перезагрузки.
При написании этой заметки и установки jabber-сервера я использовал статью: http://www.xakep.ru/post/39467/default.asp?print=true
В настройках squid я также сделал разрешение для порта 5222 (acl SSL_ports port 5222)
Описание моей настройки Ejabberd с авторизацией по LDAP http://ant-ufa.com/computers/korporativnyiy-chat/
ОтветитьУдалить