Решил перевести свой ejabberd на новый сервер. До этого стоял на Kubuntu 14.04.
Попутно решил сделать инструкцию по настройке сервера.
Вдруг кому пригодится. Если что описываю не так сильно не ругайте.
Инструкция:
Настройка ejabberd сервера на Ubuntu 16.04-18.04, Debian 9 (подойдёт и для других дистрибутивов с установленной версией ejabberd2 16.09-4 и выше.
Устанавливаем ejabberd:
sudo apt install ejabberd
В новых версиях ejabberd все настройки переехали из файла /etc/ejabberd/ejabberdctl.cfg в файл /etc/ejabberd/ejabberd.yml
Открываем файл ejabberd.yml:
sudo nano /etc/ejabberd/ejabberd.yml
Меняем имя хоста в блоке:
###. ================
###' SERVED HOSTNAMES
##
## hosts: Domains served by ejabberd.
## You can define one or several, for example:
## hosts:
## - "example.net"
## - "example.com"
## - "example.org"
##
hosts:
- "localhost"
Вместо localhost пишем наш хост, например jabber:
hosts:
- "jabber"
Перегружаем ПК перед дальнейшей настройкой иначе он не даст зарегистрировать админа на хосте jabber так как всё ещё считает что хост localhost.
Снова открываем файл ejabberd.yml:
sudo nano /etc/ejabberd/ejabberd.yml
Закомментируем tls в блоке
port: 5280
ip: "::"
module: ejabberd_http
request_handlers:
"/websocket": ejabberd_http_ws
## "/pub/archive": mod_http_fileserver
web_admin: true
http_bind: true
## register: true
## captcha: true
## tls: true
certfile: "/etc/ejabberd/ejabberd.pem"
изменив значение tls: true на ## tls: true
Наверное можно было бы не комментировать а просто изменить значение на false но я не пробовал.
Если не закомментировать данную строчку то по адресу 192.168.1.Х:5280/admin зайти не получится.
В блоке
###. ===============
###' TRAFFIC SHAPERS
shaper:
##
## The "normal" shaper limits traffic speed to 1000 B/s
##
normal: 100
##
## The "fast" shaper limits traffic speed to 50000 B/s
##
fast: 50000
##
## This option specifies the maximum number of elements in the queue
## of the FSM. Refer to the documentation for details.
##
max_fsm_queue: 1000
Меняем значения так
###. ===============
###' TRAFFIC SHAPERS
shaper:
##
## The "normal" shaper limits traffic speed to 1000 B/s
##
normal: 1000000
##
## The "fast" shaper limits traffic speed to 50000 B/s
##
fast: 5000000
##
## This option specifies the maximum number of elements in the queue
## of the FSM. Refer to the documentation for details.
##
max_fsm_queue: 100000
Данный блок отвечает за передачу файлов через клиент, например Pidgin.
Если данные значения не изменить то файлы передаваться будут очень медленно и в конце выскочит ошибка о невозможность закончить передачу файла.
Далее в блоке
###. ====================
###' ACCESS CONTROL LISTS
acl:
##
## The 'admin' ACL grants administrative privileges to XMPP accounts.
## You can put here as many accounts as you want.
##
admin:
user:
- "admin@jabber"
указываем администратора сервера. Пусть будет админ на хосте jabber как в примере.
Изменяем в блоке
###. ================
###' DEFAULT LANGUAGE
##
## language: Default language used for server messages.
##
language: "en"
##
## Set a different default language in a virtual host.
##
## host_config:
## "localhost":
## language: "ru"
значение language: "en" на "ru".
Данное значение указывает что сервер по умолчанию должен быть на русском языке.
И напоследок в блоке
###. ============
###' ACCESS RULES
access_rules:
## This rule allows access only for local users:
local:
- allow: local
## Only non-blocked users can use c2s connections:
c2s:
- deny: blocked
- allow
## Only admins can send announcement messages:
announce:
- allow: admin
## Only admins can use the configuration interface:
configure:
- allow: admin
## Only accounts of the local ejabberd server can create rooms:
muc_create:
- allow: local
## Only accounts on the local ejabberd server can create Pubsub nodes:
pubsub_createnode:
- allow: local
## In-band registration allows registration of any possible username.
## To disable in-band registration, replace 'allow' with 'deny'.
register:
- allow
## Only allow to register from localhost
trusted_network:
- allow: loopback
в самом низу ищем строчку - allow: loopback и изменяем её значение на deny.
Данная строчка запретит пользователям самостоятельно регистрироваться на сервере.
Лично я предпочитаю в своей корпоративной среде самостоятельно заводить и удалять пользователей. К тому же у меня есть корпоративный список контактов в который я добавляю новых пользователей и удаляю старых. Но это кому как нравится.
Теперь регистрируем админа:
sudo ejabberdctl register admin jabber password
admin — имя администратора
jabber — имя хоста
password — пароль администратора (администратор системы и администратор jabber разные вещи)
Всё, настройка закончена, заходим в web интерфейс по адресу 192.168.1.Х:5280/admin и админим сервер.
Инструкция по генерации сертификата для ejabberd:
https://forum.ubuntu.ru/index.php?topic=299000.0Для того чтобы в списке общих контактов не отображались имена типа vasyapupkin@jabber а отображались как "Вася Пупкин" можно воспользоваться коммандой:
sudo ejabberdctl set_nickname username server "Новое Имя"
username - имя пользователя на сервере (vasyapupkin)
server - имя виртуального хоста (в нашем примере jabber)
"Новое имя" - Как должен отображаться пользователь в списке контактов ("Вася Пупкин")