Установка ejabberd 15 на CentOS 7

Итак, мне нужно установить XMPP сервер ejabberd 15. Для установки jabber сервера выберем свежеустановленный CentOS 7.

Так как в репозитариях CentOS ejabberd нет (раньше был в EPEL, но его оттуда зачем то выпилили), а собирать его из исходников у нас особых причин нет, воспользуемся готовым бинарным установщиком.

Дистрибутив можно скачать с process-one.net (куда и ведет ссылка с сайта разработчиков)

#wget process-one.net/downloads/ejabberd/15.03/ejabberd-15.03-linux-x86_64-installer.run

и раз уж мы собрались его запустить:

#chmod +x jabberd-15.03-linux-x86_64-installer.run
#./jabberd-15.03-linux-x86_64-installer.run

После чего нужно пройти несколько шагов установщика:

1. Первый вопрос установщика — выбор языка. Мне естественно мил русский, расположенный под цифрой 5

2. Далее предлагается прочесть лицензионное соглашение, я естественно его прочитал и даже хотел выучить наизусть... но передумал, в общем придется несколько раз нажать Enter и в завершении согласится со всем прочитанным клавишей y

3. Выбор каталога установки, по умолчанию предлагается /opt/ejabberd-15.03

4. Выбор доменного имени XMPP сервера

5. Имя пользователя с администраторскими правами по умолчанию admin, но лучше его переименовать

6. Пароль администратора

7. И наконец нам предстоит выбрать будет ли сервер частью кластер. Так как сервер один, то и кластера у нас никакого быть не может.

8. Нажимаем Y для продолжения и смотрим на процесс установки

9. На последнем шаге нам предлагают посмотреть readme, после чего установку можно считать законченной.

Теперь начинается самое интересное, хотя в нашем случае много настроек не потребуется.

Всё необходимое для запуска сервера находится в /opt/ejabberd-15.03/bin Там есть скрипты start stop status много всего полезного, что нужно для работы ejabberd.
Для начала запустим сервер

#/opt/ejabberd-15.03/bin/start

Web интерфейс сервера доступен по адресу http://<Мой_сервер>:5280/admin
Естественно нужно позаботится о том чтобы фаервол пропускал входящие соединения на порты 5280 и на будущее 5222 и 5269 В моём случае это:

#firewall-cmd --zone=public --add-port=5280/tcp --permanent
#firewall-cmd --zone=public --add-port=5222/tcp --permanent
#firewall-cmd --zone=public --add-port=5269/tcp --permanent
#firewall-cmd --reload

Но может вы используете iptables.
Вид на вэбинтерфейс свежеустановленного ejabberd примерно такой:

Web Итерфейс ejabberd 15

Самый интересный файл с настройками: opt/ejabberd-15.03/conf/ejabberd.yml (раньше это был etc/ejabberd/ejabberd.cfg), но сейчас нам там менять нечего.

Мой pidgin не смог договорится с сервером о шифровании и вообще сертификат сформированный при установке не хотел корректно работать. Сам сертификат лежит в /opt/ejabberd-15.03/conf/server.pem

Пришлось создать самоподписанный сертификат, для наших целей он пока подходит (я делаю XMPP сервер для внутреннего пользования в организации), хотя наверное нужно будет сделать свой маленький УЦ :) Итак:

#openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem
#cat privkey.pem >> server.pem
#rm privkey.pem

После чего заменяем «заводской» server.pem в папке .opt/ejabberd-15.03/conf/ на вновь созданный и клиент может благополучно подключится к серверу, хотя ругается и предупреждает о самоподписанном сертификате.

Наша цель достигнута, не забудем создать нашему серверу запись A на DNS. Правда тогда пользователи сервера смогут общаться только между собой, но мы этого и добиваемся.

Для полноценной работы XMPP сервера нужно добавить ещё SRV записи, но дальнейшей настройкой я займусь потом, необходимый мне по плану функционал уже настроен.

Сейчас на сайте

Сейчас на сайте 0 пользователей и 4 гостя.