Настройка Ejabberd
Настройка XMPP сервера Ejabberd.
Файл конфигурации
Debian/Mandriva /etc/ejabberd/ejabberd.cfg
Freebsd /usr/local/etc/ejabberd/ejabberd.cfg
Полезное
Не забываем давать права на запись в папку, где хранятся логи (или она может быть не создана).
ejabberd start - Запуск ejabberd в режиме сервера
ejabberd stop - Остановка ejabberd
ejabberd restart - Рестарт ejabberd
ejabberd status - Получить статус сервера ejabberd
ejabberd live - Стартовать ejabberd в интерактивном режиме (будет видно весь процесс загрузки сервера, удобно для отслеживания ошибок)
Веб интерфейс доступен по адресу - http://localhost:5280/admin/
Более подробно о настройке Ejabberd:
http://www.process-one.net/en/ejabberd/guide_en
В пункте 3.2 руководства описывается работа Ejabberd с базами данных.
Настройка
Создание сертификата
DNS - SRV записи
Запись SRV RR может выглядеть так: _sip._udp SRV 0 0 5060 domain.tld.
В этом примере _sip._udp это IETF тип сервиса и протокол. SRV это тип DNS RR,
приоритет сервера установлен в 0
значение weight 0,
5060,- порт, на котором работает SIP,
domain.tld,- адрес сервера (SIP-прокси).
SRV для Jabber:
_jabber._tcp SRV 5 0 5269 domain.tld.
_xmpp-server._tcp SRV 5 0 5269 domain.tld.
_xmpp-client._tcp SRV 5 0 5222 domain.tld.
Записи _jabber (и _xmpp-server) используются для интерконнекта с другими jabber-доменами,
_xmpp-client указывает на хост, на котором должен регистрироваться (авторизовываться) клиент.
Если протокол не указан, подразумевается ._tcp.
Если DNS расположено у хостера то скорее всего надо сделать следующее:
Файл конфигурации
Debian/Mandriva /etc/ejabberd/ejabberd.cfg
Freebsd /usr/local/etc/ejabberd/ejabberd.cfg
Полезное
Не забываем давать права на запись в папку, где хранятся логи (или она может быть не создана).
ejabberd start - Запуск ejabberd в режиме сервера
ejabberd stop - Остановка ejabberd
ejabberd restart - Рестарт ejabberd
ejabberd status - Получить статус сервера ejabberd
ejabberd live - Стартовать ejabberd в интерактивном режиме (будет видно весь процесс загрузки сервера, удобно для отслеживания ошибок)
Веб интерфейс доступен по адресу - http://localhost:5280/admin/
Более подробно о настройке Ejabberd:
http://www.process-one.net/en/ejabberd/guide_en
В пункте 3.2 руководства описывается работа Ejabberd с базами данных.
Настройка
%% доменное имя или IP адрес вашего сервера, localhost указывается в том случае, если планируется доступ к службе с локальной машины
{hosts, ["localhost", "domen.ru"]}.
%% в логи пишется все - 4, в логи пишутся только ошибки - 2
{loglevel, 4}.
%% указываем пользователя (или нескольких пользователей) которые будут иметь права администратора и смогут заходить в веб-панель администрирования jabber сервера - регистрация этих пользователей происходит обычным способом через клиент
{acl, admin, {user, "user"}}.
%% Здесь указано на каких портах будет работать сервер в режимах c2s, s2s, http
{listen, [
{5222, ejabberd_c2s, [
{certfile, "/opt/ejabberd-2.1.0/conf/server.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
{5223, ejabberd_c2s, [
{certfile, "/opt/ejabberd-2.1.0/conf/server.pem"}, tls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
%% s2s - server to server сообщение от одного сервера при необходимости шифруется и передается на другой сервер, а на другом сервере происходит соединение c2s
{5269, ejabberd_s2s_in, [
{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},
{5280, ejabberd_http, [
captcha,
http_bind,
http_poll,
web_admin
]}
]}.
%% Использовать объединение серверов. Нужен сертификат
{s2s_use_starttls, true}.
%% Сертификат для S2S
{s2s_certfile, “/opt/ejabberd-2.1.0/conf/server.pem”}.
%% Разрешить или запретить общение с серверами.
%% {{s2s_host, “goodhost.org”}, allow}.<br /><br />
%% {{s2s_host, “badhost.org”}, deny}.<br /><br />
%% тут подключаем mod_log_chat логи будут записаны в html формате в папку web сервера /var/www/html/jabberlog, и будут доступны через http (при условии корректной настройки веб-сервера)
{mod_log_chat, [{path, "/var/www/html/jabberlog"}, {format, html}]},<br /><br />
%% Также следует учесть, что аккаунт администратора регистрируется через обычный jabber клиент. Для возможности регистрации пользователей на сервере следует определить права в соответствующей строке конфига как:
{access, register, [{allow, all}]}.
Создание сертификата
cd /usr/local/etc/ejabberd/
openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 \
-keyout privkey.pem -out server.pem -subj \
"/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=hostname.ru/emailAddress=mail@hostname.ru"
cat privkey.pem >> server.pem
rm privkey.pem
mv server.pem ssl.pem
DNS - SRV записи
Запись SRV RR может выглядеть так: _sip._udp SRV 0 0 5060 domain.tld.
В этом примере _sip._udp это IETF тип сервиса и протокол. SRV это тип DNS RR,
приоритет сервера установлен в 0
значение weight 0,
5060,- порт, на котором работает SIP,
domain.tld,- адрес сервера (SIP-прокси).
SRV для Jabber:
_jabber._tcp SRV 5 0 5269 domain.tld.
_xmpp-server._tcp SRV 5 0 5269 domain.tld.
_xmpp-client._tcp SRV 5 0 5222 domain.tld.
Записи _jabber (и _xmpp-server) используются для интерконнекта с другими jabber-доменами,
_xmpp-client указывает на хост, на котором должен регистрироваться (авторизовываться) клиент.
Если протокол не указан, подразумевается ._tcp.
Если DNS расположено у хостера то скорее всего надо сделать следующее:
- Выбрать тип записи из списка - это будет SRV запись
- В графе доменного имени указать _jabber._tcp.domain.tld.
- В графе параметры указать приоритет сервера, значение weight, порт, домен: 0 0 5222 domain.tld
- И также сделать для записей _xmpp-server._tcp и _xmpp-client._tcp
- Однако от хостера к хостеру эта процедура может варьироваться, так что уточняйте.