Ставим корпоративный Jabber-сервер

Содержание

  • 1 Подготовка
  • 2 Настройки файрволла
  • 3 Создаём базу под EJabberd
  • 4 Качаем дистрибутив
  • 5 Устанавливаем EJabberd
  • 6 Базовая настройка сервера
  • 7 Подключение к серверу
  • 8 Что осталось сделать

Сегодня мы будем устанавливать и настраивать корпоративный Jabber-сервер.

Подготовка

Установку будем производить на операционную систему CentOS 7, момент установки ОС я здесь описывать не буду – он достаточно тривиален.

Нам потребуется внешний IP-адрес и домен (для примера я напишу везде litl-admin.ru, но сервер по факту на другом домене). Если сервер корпоративный, через Интернет-шлюз, то понадобится делать проброс порта на шлюзе (согласно портам, указанным в конфиге). Ну и как всегда, я считаю, что для этих целей дешевле и проще арендовать выделенный сервер, например вот этот, чем собирать своё железо в стойку и мучиться с его обслуживанием.

Настройки файрволла

# 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

Я остановил свой выбор на сервере EJabberd, который обладает достаточной гибкостью. Также, определился, что данные буду хранить в базе MySQL, а не в файлах, поэтому предварительно установим MySQL на CentOS 7.

Создаём базу под EJabberd

Качаем схему для базы:

# wget https://raw.githubusercontent.com/processone/ejabberd/master/sql/mysql.sql

Запускаем клиент:

# mysql -u root -p

Создаём базу:

> CREATE DATABASE ejabberd;

Создаём пользователя:

> GRANT ALL ON ejabberd.* TO ‘ejabberd’@’localhost’ IDENTIFIED BY ‘ejabberdpassword’;
> QUIT;

Загружаем в MySQL схему:

# mysql -h localhost -D ejabberd -u ejabberduser -p < mysql.sql

Качаем дистрибутив

Переходим на официальный сайт:

Находим нужный нам дистрибутив и копируем ссылку. У нас CentOS – последователь RedHat, поэтому качаем RPM Package.

Устанавливаем EJabberd

Загружаем по полученной ссылке пакет:

# wget https://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/18.06/ejabberd-18.06-0.x86_64.rpm -O ejabberd.rpm

Исполняем файл:

# rpm -ihv ejabberd.rpm

и следуем простым инструкциям. Когда сервер будет установлен, следуем в каталог /opt/ejabberd-18.06/.

Нас интересуют два каталога: bin и conf. В первом лежат исполняемые файлы, во втором, соответственно, конфиги.

Открываем конфиг ejabberd.yml и правим следующие параметры:

hosts:
## Домен нашего сервера
– “litl-admin.ru”

listen:

port: 5222
## IP нашего сервера
ip: “192.168.1.99”

## храним юзеров в базе
auth_method: sql
## храним пароли в виде хеша (по умолчанию в plain-text)
auth_password_format: scram

## параметры доступа к базе данных
sql_type: mysql
sql_server: “localhost”
sql_database: “ejabberd”
sql_username: “ejabberd”
sql_password: “ejabberdpassword”

## логин администратора
acl:
admin:
user:
– “admin@litl-admin.ru”

Кажись в конфиге я больше ничего не менял пока.

Запускаем сервер:

# /opt/ejabberd-18.06/bin/start

Создаём администратора:

# /opt/ejabberd-18.06/bin/ejabberdctl register “admin” “litl-admin.ru” “adminpass”

Теперь можно постучать на веб-интерфейс http://192.168.1.99:5280/admin:

Базовая настройка сервера

После входа в веб-интерфейс перед нами открывается такая картина: Сейчас я выполню только первичную настройку. Более детально будем делать позже. Итак, переходим в раздел “Вирутальные хосты”, открываем наш хост [1]. Переходим в раздел “Пользователи” [2].

Создаём нужное количество пользователей [3]:

Теперь переходим в раздел “Группы общих контактов”, чтобы сделать список абонентов, доступный каждому. Вообще, тут довольно гибкая система. К слову, контакты тут называются “ростер”. Соответственно, модуль называется mod_shared_roster.

Создадим группу, дадим ей имя типа “groupname” [2]:

И зайдём в созданную группу по ссылке: Здесь у нас отображается название группы [1], заголовок, который будет видим в списке контактов [2]. Перечислим пользователей в разделе “Члены” [3]. И теперь напишем название группы в раздел [4], чтобы члены группы видели эту же группу (общий список контактов). Вот именно подобная настройка и даёт огромную гибкость в настройке. Т.е. можно сделать контакты, которые будут видеть одних юзеров, но те юзеры не будут видеть эти контакты. Т.е. поле [4] должно совпадать с полем [1].

Сохраняем настройки и пробуем подключиться к нашему серверу.

Подключение к серверу

Так как задача ставилась таким образом, что основной пласт юзеров будет работать из-под мобильных устройств, то надо было протестировать и отладить в первую очередь под ними. Под Android я использовал Xabber.

А под Winodws – Psi+:

Что осталось сделать

  • Наладить передачу файлов — сделано;
  • Многопользовательские чаты;
  • Сохранение логов бесед в виде HTML;
  • Выпуск сертификатов для TLS — сделано;

Статья будет дополняться по ходу дела. Удачи всем!

Вам также может понравиться

About the Author: admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.