notby.NET Logo

Установка и настройка Mumble Server в Debian/Ubuntu

Программа голосового общения Mumble бесплатная и с открытым исходным кодом. Mumble server ранее назывался murmur и он не имеет ограничений на количество подключённых пользователей, как в случае с бесплатной версией TeamSpeak. При общении через Mumble все данные шифруются и используется защищённое соединение. В статье показана установка и конфигурация Mumble сервера в операционных системах Debian / Ubuntu.

Все действия выполняются от root пользователя или с его привилегиями через sudo.

su -

1. Установка Mumble server

Устанавливаем Mumble server

apt install mumble-server
Установка Mumble сервера через консольную команду “apt install mumble-server” в операционной системе Debian

Дожидаемся окончания установки.

2. Базовая конфигурация и пароль администратора

После установки необходимо произвести базовую конфигурацию и обязательно создать пароль серверного администратора.

Запускаем конфигурацию Mumble server и отвечаем на вопросы конфигуратора

dpkg-reconfigure mumble-server

2.1. Автозагрузка Mumble server

Конфигурация пакета Mumble сервера при помощи команду “dpkg-reconfigure mumble-server” в операционной системе Debian. Разрешить автозагрузку Mumble сервера? Выбран ответ yes

Разрешить автозагрузку mumble-server при включении сервера? Отвечаем YES

2.2. Более высокий приоритет

Конфигурация пакета Mumble сервера при помощи команду “dpkg-reconfigure mumble-server” в операционной системе Debian. Разрешить mumble-server использовать более высокий приоритет?  Выбран ответ yes

Разрешить mumble-server использовать более высокий приоритет процесса и сети? Отвечаем YES, так как это сократит задержки при общении пользователей на сервере.

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

Чтобы других пользователей сделать администраторами Mumble, необходимо обязательно установить пароль для администратора SuperUser и в последующем зайти от него на сервер.

Конфигурация пакета Mumble сервера при помощи команду “dpkg-reconfigure mumble-server” в операционной системе Debian. Установка пароля для учетной записи SuperUser, введен пароль из 6 символов

Вводим пароль для учетной записи SuperUser и нажимаем Enter

3. Конфигурация Mumble server (mumble-server.ini)

Файл конфигурации сервера Mumble находится по адресу /etc/mumble-server.ini в Debian или по адресу /etc/mumble/mumble-server.ini в Ubuntu

Открываем файл конфигурации mumble-server.ini в Debian

nano /etc/mumble-server.ini

Открываем файл конфигурации mumble-server.ini в Ubuntu

nano /etc/mumble/mumble-server.ini

Mumble сервер будет работать и так, без внесений изменений в файл конфигурации, а более точную его настройку всегда можно произвести позже.

Описание и перевод параметров файла конфигурации mumble-server.ini с настройкой для повышения безопасности:

; Mumble server файл конфигурации mumble-server.ini

; Путь до базы данных mumble-server.sqlite
database=/var/lib/mumble-server/mumble-server.sqlite

; Использование журнала SQLite с опережением записи (WAL).
; Изменять если есть задержка при переходах между каналов.
; 0 - Использовать журнал SQLite по умолчанию.
; 1 - Использовать журнал с опережением записи с синхронностью=NORMAL.
; 2 - Использовать журнал с опережением записи с синхронностью=FULL.
;sqlite_wal=0

; Настройки для использования в качестве базы данных MySQL, MariaDB.
; Рекомендовано использовать встроенную SQLite базу данных.
;
;dbDriver=QMYSQL
;dbUsername=
;dbPassword=
;dbHost=
;dbPort=
;dbPrefix=mumble-server_
;dbOpts=

; Использовать D-Bus, по умолчанию не используется.
;dbus=session

; Альтернативное имя службы D-Bus.
;dbusservice=net.sourceforge.mumble.murmur

; Адрес сервера ZeroC Ice, если используется.
;ice="tcp -h 127.0.0.1 -p 6502"

; Пароль для связи с Ice. Если оставить пустое значение, запретить доступ.
; Доступ записи icesecretwrite всегда включает в себя доступ чтения icesecretread.
;icesecretread=
icesecretwrite=

; Файл для логирования. Пустое значение, лог будет записатся в каталог запуска сервера.
; Для отключения логирования указать /dev/null вместо файла для логов.
logfile=/var/log/mumble-server/mumble-server.log

; PID файл
pidfile=/run/mumble-server/mumble-server.pid

; Приветственное сообщение клиентам при подключении к серверу.
; Если оставить пустое значение, сообщение выведено не будет.
welcometext="<br>Добро пожаловать на сервер Mumble notby.NET"

; Приветственное сообщение вывести из файла.
; Если указан welcometext, welcometextfile игнорируется.
;welcometextfile=

; TCP и UDP порт сервера, по умолчанию 64738.
port=64738

; IP адрес, имя хоста который слушает сервер. По умолчанию все адреса (пустое значение).
;host=

; Пароль для подключения к серверу.
serverpassword=

; Максимальная скорость передачи голоса пользователя (бит/с).
bandwidth=558000

; Время периодической проверки клиентов, что они не отвалились.
; Сервер и клиенты и так хорошо обмениваются данными активности.
;timeout=30

; Максимальное количество подключенных пользователей.
users=25

; Максимальное количество пользователей в канале. 0 - без ограничений.
;usersperchannel=0

; Ограничения для каждого пользователя:
; messageburst количество сообщений, которые разрешено передавать короткими сериями.
; messagelimit количество сообщений в секунду в течение длительного периода времени.
; Минимальное значение параметров 1. Значение 0 недопустимо.
messageburst=5
messagelimit=1

; Аналогично параметрам messagelimit и messageburst,
; но эти опции применяются именно к "plugin-messages". 
; pluginmessagelimit=1
; pluginmessageburst=5

; Отвечать на пакеты UDP ping. Значение true разрешает неавторизированным пользователям
; узнать максимальное количество пользователей, сколько подключено сейчас
; и пропускную способность для пользователей.
allowping=false

; Процент пользователей с поддержкой Opus (аудиокодек) для его принудительно включения.
; 0 = Всегда использовать Opus, 100 = Если все пользователи поддерживают.
opusthreshold=0

; Максимальная глубина вложения каналов. 
channelnestinglimit=3

; Максимальное количество каналов. 0 - без ограничений.
channelcountlimit=100

; Регулярное выражение для проверки имен каналов.
; (Обратные косые черты нужно экранировать с помощью \ )
;channelname=[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+
channelname=[A-Za-zА-ЯЁа-яё0-9 -]+

; Регулярное выражение для проверки имен пользователей.
; (Обратные косые черты нужно экранировать с помощью \ )
;username=[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+
username=[A-Za-zА-ЯЁа-яё -]+

; Канал к которому пользователь будет подключатся по умолчанию.
; Если не задано, то подключится в корневой канал.
;defaultchannel=0

; Автоматически перемещать пользователя при подключении к серверу
; в последний канал в котором он был.
rememberchannel=false

; Сколько секунд сервер должен помнить последний канал пользователя.
; Значение по умолчанию 0, запоминать навсегда.
;rememberchannelduration=0

; Максимальная длина текстовых сообщений. 0 - без ограничений.
;textmessagelength=5000

; Максимальная длина сообщений с изображениями. 0 - без ограничений.
;imagemessagelength=131072

; Разрешить использовать HTML пользователям.
allowhtml=false

; Записи журнала для каждого сервера во внутренней базе данных,
; доступ к которой возможен по шине D-Bus/ICE.
; Указывается в днях. 0 - записывать вечно, -1 - отключить журнал.
logdays=-1

; Регистрации публичного сервера Mumble. Работает если заполнены все параметры.
; Для приватного сервера указывать только параметр registerName.
; Имя сервера, оно также отображается как корневой канал. По умолчанию имя root.
;registerName=notby.NET
; Пароль на сервере регистрации, нужно запомнить.
;registerPassword=
; Адрес сайта
;registerUrl=
; Домен или IP адрес для подключения.
;registerHostname=
; Принадлежность сервера к стране, двухсимвольный код.
;registerLocation=

; Оповещать о своем присутствие в локальной сети через протокол bonjour.
; Подробнее: https://ru.wikipedia.org/wiki/Bonjour
bonjour=false

; Пути до собственного сертификата для TLS.
; Если не указывать параметры, сервер сам создаст необходимый сертификат.
;sslCert=
;sslKey=

; Если указанный выше ключ зашифрован паролем, указываем пароль в открытом виде.
;sslPassPhrase=

; Сертификат центра сертификации, если сертификат выпускался через него.
;sslCA=

; Параметры криптографического протокола Diffie-Hellman
; По умолчанию сервер использует @ffdhe2048.
; Допустимые значения: ; @ffdhe2048, @ffdhe3072, @ffdhe4096, @ffdhe6144, @ffdhe8192
sslDHParams=@ffdhe8192

; Наборы доступных шифров для использования в SSL/TLS.
; Используем только шифры для TLS 1.2 и TLS 1.3:
sslCiphers=ECDHE+AESGCM:DHE+aRSA+AESGCM

; Если сервер запущен от root, на какого пользователя переключится.
uname=mumble-server

; В логах IP-адреса пользователей будут случайными.
;obfuscate=false

; Разрешить подключение только пользователям с сертификатом.
certrequired=true

; Отправлять пользователям информацию о версии сервера и его операционной системе.
sendversion=false

; Минимальная рекомендованная версия Mumble клиента, в X.X.X формате.
; При включении параметра, будет проверка версии клиента и если она меньше
; установленного, то будет выведено уведомление пользователю чтобы обновил клиент.
;suggestVersion=1.5.0

; Установка значение "true" уведомит пользователя, что на сервере рекомендовано
; использовать позиционирование звука. Значение "false" имеет противоположный эффект.
; Закомментированный параметр или пустое значение не проверяет настройку пользователя.
;suggestPositional=

; Установка значение "true" уведомит пользователя, что на сервере рекомендовано
; использовать активацию по кнопке. Значение "false" имеет противоположный эффект.
; Закомментированный параметр или пустое значение не проверяет настройку пользователя.
;suggestPushToTalk=

; Хранить пароли в старом виде. Значение true не безопасно.
;legacypasswordhash=false

; Количество итераций PBKDF2 для паролей. По умолчанию выбирается автоматически.
; Значение больше 0 отменяет автоматический выбор. 
;kdfiterations=-1

; Если пользовать подключится больше чем autobanAttempts раз
; в течение autobanTimeframe секунд, он будет заблокирован на autobanTime секунд.
; Для отключения, установить значение 0 для autobanAttempts и autobanTimeframe.
;autobanAttempts=10
;autobanTimeframe=120
;autobanTime=300
; Уставить "false" в параметр autobanSuccessfulConnections для отключения автобана,
; если подключение происходит с одного IP-адреса.
;autobanSuccessfulConnections=true

; Включить протоколирование изменений в группах.
loggroupchanges=true

; Включить протоколирование ACL в группах.
logaclchanges=true

; Разрешить использование встроенной функции записи. По умолчанию true.
; Если запрещено, при записи пользователь будет выкинут с сервера.
allowRecording=false

; Количество слушателей которые могут быть в канале.
; По умолчанию -1 - без ограничений, 0 - запретить слушателей.
listenersperchannel=0

; Количество слушателей который может иметь один пользователь.
; По умолчанию -1 - без ограничений, 0 - запретить слушателей.
listenersperuser=0


; Принудительная внешняя авторизация.
; forceExternalAuth=false

; Настройка любых параметров конфигурации для Ice.
; Этот раздел должен быть последним в конфигурации.
[Ice]
Ice.Warn.UnknownProperties=1
Ice.MessageSizeMax=65536

Вносим необходимые изменения в файл и закрываем его.

4. Перезагрузка Mumble Server

Чтобы изменения в файле mumble-server.ini были применены, необходимо перезапустить Mumble сервер.

Перезапускаем Mumble сервер

systemctl restart mumble-server.service

5. Выдача прав администратора пользователю

Для управления и администрирования удобно использовать свою учетную запись, так как от серверного администратора SuperUser нельзя говорить и сменить его имя.

Подключаемся к серверу Mumble со своим никнеймом, нажимаем ПользовательЗарегистрировать…

Mumble client подключен к серверу, открыто меню “Пользователь” и выбран пункт Зарегистрировать…

Подтверждаем регистрацию учетной записи и отключаемся от сервера.

Подключаемся от учетной записи системного администратора SuperUser с указанием ранее созданного пароля в пункте 2.3 статьи.

Нажимаем правой кнопкой мышки по имени сервера и выбираем Редактировать…

Mumble client подключен к серверу от администратора SuperUser, открыто меню сервера и выбран пункт Редактировать…

В открывшемся окне выбираем группу admin и вписываем свое имя пользователя (в моем случае Tommy Wirser) ранее зарегистрированного в раздел Члены и нажимаем Добавить

Mumble Client, окно редактирование привилегий сервера, раздел группы, выбрана группа admin и введен новый член на добавление в группу

Нечего страшного если имя пользователя добавится строчными буквами.

Нажимаем OK и отключаемся от сервера.

Подключаемся от учетной записи пользователя и проверяем что при нажатии на имя сервера кнопка Редактировать… активна.

Пользователь стал администратором сервера Mumble и теперь производим создание каналов, настраиваем права и привилегии для каналов и пользователей.

6. Отключение администратора SuperUser

После выдачи прав администратора пользователю, потребность в серверном администраторе SuperUser отпадает. Для безопасности можно удалить пароль SuperUser, тогда учетная запись SuperUser станет неактивной и на сервер от нее будет невозможно зайти.

Удаляем пароль серверного администратора SuperUser в Debian

/sbin/murmurd -ini /etc/mumble-server.ini -disablesu

Удаляем пароль серверного администратора SuperUser в Ubuntu

/bin/mumble-server -ini /etc/mumble/mumble-server.ini -disablesu
  • /sbin/murmurd [Debian] | /bin/mumble-server [Ubuntu] — путь до исполняемого файла Mumble сервера;
  • -ini — путь до файла конфигурации сервера (/etc/mumble-server.ini [Debian] или /etc/mumble/mumble-server.ini [Ubuntu]);
  • -disablesu — удалить пароль администратора SuperUser.

После выполнения команды будет выведено несколько строк. Последняя строка будет содержать следующий вывод SuperUser password disabled on server 1, который означает что пароль системного администратора Mumble сервера отключен.