Teamspeak 3
Загрузка...
Х

Расширенная настройка TeamSpeak3 Server

После установки TeamSpeak3 Server по моей инструкции, вы возможно захотите большей управляемости, да и сделать управление сервисом более приятным. Начнем с того, что настроем TeamSpeak3 Server на использование MariaDB как СУБД и создадим юнит systemd для запуска teamspeak после перезагрузки сервера и удобного управления, а также настроем iptables.

1. Создадим пользователя и базу данных:

CREATE DATABASE ts3server;
CREATE USER 'ts3server'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON ts3server.* TO 'ts3server'@'localhost';
FLUSH PRIVILEGES;

Первая команда создает базу данных ts3server, вторая создает пользователя, третья дает пользователю права только на созданную базу. Последняя обновляет все права доступа.

2. Теперь научим Teamspeak использовать MariaDB. Создаём в директории /home/ts3server/teamspeak3-server_linux-amd64 файл ts3server.ini следующего содержания:

machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
licensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
query_port=10011
query_ip=0.0.0.0
query_ip_whitelist=query_ip_whitelist.txt
query_ip_blacklist=query_ip_blacklist.txt
dbplugin=ts3db_mariadb
dbpluginparameter=ts3db_mariadb.ini
dbsqlpath=sql/
dbsqlcreatepath=create_mariadb/
dbconnections=10
logpath=logs
logquerycommands=0
dbclientkeepdays=30
logappend=0
query_skipbruteforcecheck=0

Где default_voice_port – порт для подключения клиентов, filetransfer_port – порт для передачи файлов, query_port – порт для администрирования сервера при помощи запросов. Ноли в IP-адресах указывают на то, что сервер будет слушать все сетевые интерфейсы. При необходимости можно указать IP-адрес вашего сервера.

После чего в этой же директории создаём файл ts3db_mariadb.ini следующего содержания:

[config]
host=localhost
port=3306
username=ts3server
password=пароль_пользователя_mariadb_(ts3server)
database=ts3server
socket=/var/run/mysqld/mysqld.sock

Где указываем данные для подключения к нашей базе данных. 

Далее переключаемся на нашего пользователя ts3server, переходим в каталог /home/ts3server/teamspeak3-server_linux-amd64 и проверяем всё ли у нас есть для запуска. 

su ts3server
cd /home/ts3server/teamspeak3-server_linux-amd64
ldd libts3db_mariadb.so

Получим на выходе:

        linux-vdso.so.1 (0x00007ffd1b7e0000)
        libmariadb.so.2 => /lib/x86_64-linux-gnu/libmariadb.so.2 (0x00007fedf22c0000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fedf1fbf000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fedf1c16000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fedf280b000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fedf1a12000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fedf17f5000)

Но скорее всего libmariadb.so.2 будет не найдена. Потому что в стандартной сборке MariaDB под Debian 8 этой библиотеки нет. Но по счастью она есть в дистрибутиве сервера, в папке «redist». 

С правами пользователя root создаём ссылку на эту библиотеку. 

ln -s /home/ts3server/teamspeak3-server_linux-amd64/redist/libmariadb.so.2 /lib/x86_64-linux-gnu/libmariadb.so.2

Снова переключаемся на пользователя teamspeak и проверяем ещё раз. На этот раз всё должно быть на месте. Сервер готов к первой загрузке. Стартуем (от имени пользователя teamspeak).

/home/ts3server/teamspeak3-server_linux-amd64/ts3server_startscript.sh start inifile=ts3server.ini

Параметр «inifile=ts3server.ini» указывает на созданную ранее конфигурацию. Соответственно сервер должен запуститься с использованием этой конфигурации и заполнить базу данных.

Важно! При первом старте в терминале, в выдаче команды запуска вы получите сообщение с именем пользователя для админского доступа, паролем и токеном, который вы должны использовать один раз в клиентской программе TeamSpeak. Сохраните эти данные. В противном случае вы получите гостевой доступ при соединении со своим сервером.

e2895b72464c984d015f268e5b6605a8

 

3. На этом сервер установлен и работает. Для автоматического запуска TeamSpeak при перезагрузке сервера и удобного управления сделаем юнит для systemd, создадим файл /lib/systemd/system/ts3server.service с содержимым:

[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
WorkingDirectory=/home/ts3server/teamspeak3-server_linux-amd64/
User=ts3server
Group=ts3server
Type=forking
ExecStart=/home/ts3server/teamspeak3-server_linux-amd64/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/home/ts3server/teamspeak3-server_linux-amd64/ts3server_startscript.sh stop
PIDFile=/home/ts3server/teamspeak3-server_linux-amd64/ts3server.pid
RestartSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Обновим кеш systemd:

systemctl --system daemon-reload

Запустим сервер:

systemctl start ts3server.service

Активируем запуск при загрузке:

systemctl enable ts3server.service

Статус сервера можно проверить старой командой "service ts3server status" или через systemd:

systemctl status ts3server.service

7bef5146a9

Если сервер не будет отвечать 15 сек, то он перезапустится. За это отвечают строки "RestartSec=15" и "Restart=always" в конфигурации юнита.

4. Настройка iptables. После настройки iptables по этой статье вам нужно будет добавить лишь несколько правил. Адреса 80.190.145.215 — accounting.teamspeak.com и 194.97.114.3 — weblist.teamspeak.com нужны для функционирования вашего сервера.

iptables -t filter -A INPUT -p udp -m udp --dport 9987 -j ACCEPT
iptables -t filter -A INPUT -p tcp -m tcp --dport 30033 -j ACCEPT
iptables -t filter -A INPUT -p tcp -m tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p udp -m udp --dport 2010 -j ACCEPT
iptables -t filter -A INPUT -p tcp -m tcp --dport 41144 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m tcp --dport 2008 -j ACCEPT
iptables -A OUTPUT -s 80.190.145.215 -p tcp --dport 2008 -j ACCEPT
iptables -A OUTPUT -s 194.97.114.3 -p udp --dport 2010 -j ACCEPT

Сохранить правила:

iptables-save > /etc/iptables.rules

 

Оставить комментарий

Ваш адрес email не будет опубликован.

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