Установка и настройка ejabberd для вашего домена
В данной статье хочу описать настройку Jabber-сервера для своего домена.
В качестве jabber-сервера решил использовать легковесный - ejabberd (Erlang Jabber Daemon).
Сначала необходимо установить - erlang.
[root@router /usr/ports/lang/erlang-lite/]#make config
В окне "Options for erlang-lite r14b01_1,1" выбираем:
[X] ODBC Enable ODBC
[X] SMP Enable SMP
Инсталим..
Далее топаем устанавливать сам Jabber-сервер:
[root@router /usr/ports/net-im/ejabberd]#make config
Тут не выбираем ничего:
Устанавливем:
На данный момент у меня истановилась версия "ejabberd-2.1.5".
После окончания установки, нас просят добавить запись в /etc/rc.conf:
Далее переходим к настройке конфиг.файла:
[root@router /]#cp /usr/local/etc/ejabberd/inetrc.example /usr/local/etc/ejabberd/inetrc
[root@router /]#cp /usr/local/etc/ejabberd/ejabberdctl.cfg.example /usr/local/etc/ejabberd/ejabberdctl.cfg
Тут я приведу только те строчки, которые я изменил.
Виртуальные хосты ejabberd - указываем свой домен:
Далее указываем какие порты слушать, SSL настроим позже:
[
{5222, ejabberd_c2s, [
%%
%% If TLS is compiled in and you installed a SSL
%% certificate, specify the full path to the
%% file and uncomment this line:
%%
{certfile, "/usr/local/etc/ejabberd/ssl/ssl.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
%%
%% To enable the old SSL connection method on port 5223:
%%
{5223, ejabberd_c2s, [
{access, c2s},
{shaper, c2s_shaper},
{certfile, "/usr/local/etc/ejabberd/ssl/ssl.pem"}, tls,
{max_stanza_size, 65536}
]},
Добавим пользователя с админ. правами для джабера и админки, а так же свой домен:
в данном случае я указал пользователя с логином "vlymar" и домен "unix.ck.ua".
Указываем локаль для сервера сообщений:
Создадим сертификат:
[root@router /]#cd /usr/local/etc/ejabberd/ssl
[root@router /usr/local/etc/ejabberd/ssl]# openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem -subj "/C=UA/ST=CH/L=CHERKASSY/O=CK/OU=CK/CN=unix.ck.ua/emailAddress=admin@unix.ck.ua"
Generating a 1024 bit RSA private key
............................................++++++
.++++++
writing new private key to 'privkey.pem'
-----
[root@router /usr/local/etc/ejabberd/ssl]#
Далее необходимо зарегистрировать пользователя с админ.правами (логин_домен_пароль):
[root@router /usr/local/etc/ejabberd]# ejabberdctl register vlymar unix.ck.ua 123456
User admin@ unix.ck.ua successfully registered
[root@router /usr/local/etc/ejabberd]#
Другие команды ejabberdctl:
start - Запустить ejabberd в режиме сервера
stop - Остановить ejabberd в режиме сервера
restart - Рестарт ejabberd
status - Получить статус ejabberd сервера .
live - Стартовать ejabberd в режиме дебагера.
Стартуем наш сервер:
Starting ejabberd.
Проверим его статус:
The node ejabberd@localhost is started with status: started
ejabberd 2.1.5 is running in that node
Заходим в админку(вам в свою):
Общий список пользователей.
Решил сделать так, что бы пользователи которые зарегистрировались, автоматом попадали в общий ростер - frends, и могди друг друга видеть.
Для этого топаем в Virtual Hosts > Выбираем ваш виртуальный домен > Группы общих контактов > Добавляем ростер - frends.
Заходим в него и в поле "Члены:" ставим "@all@", означает что каждый пользователь будет членом данной группы.
Настройка DNS для нашего Jabber-сервера.
Для того, что бы наш сервер мог общаться с другими серверам в интернет, необходимо добавить SRV запись в файл форвард зоны вашего домена:
_jabber._tcp.unix.ck.ua. IN SRV 5 0 5269 jabber.unix.ck.ua.
_xmpp-server._tcp.unix.ck.ua. IN SRV 5 0 5269 jabber.unix.ck.ua.
_xmpp-client._tcp.unix.ck.ua. IN SRV 5 0 5222 jabber.unix.ck.ua.
А так же A-записи:
conference IN A 82.207.87.36
После обновления DNS, можно проверить работу указанных записей извне:
host -t SRV _xmpp-server._tcp.domain.ru
host -t SRV _xmpp-client._tcp.domain.ru
или с помощью DIG:
Не забываем в фаерволе открыть необходимые порты:
Настройка ICQ транспорта
[root@router /usr/ports/net-im/jabber-pyicq]# make config && make install clean
Обсуждаем на форуме: тут.
На этом все.
- Войдите на сайт для отправки комментариев
- Версия для печати
Вы бы не могли пояснить подробнее, что было сделано в этих командах?
openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem -subj "/C=UA/ST=CH/L=CHERKASSY/O=CK/OU=CK/CN=unix.ck.ua/emailAddress=admin@unix.ck.ua"
cat privkey.pem >> server.pem && rm privkey.pem && mv server.pem ssl.pem
Не все ключи, которрые тут указаны для команды openssl, удалось найти в документации. Также неясно, зачем было совершать такие сложные операции с файлами privkey и server. Спасибо!