Перейти к содержанию

Обзор развертывания LAMP и TeamSpeak 3 на сервере

Предварительные требования

Для успешного развертывания системы требуется операционная система на базе Debian или Ubuntu с доступом к репозиторию apt. Необходимо наличие прав суперпользователя (root) или доступа через sudo для установки пакетов и управления системными службами.

Система использует следующие компоненты:

  • Веб-сервер Apache.

  • Система управления базами данных MySQL.

  • Интерпретатор PHP с модулем php-fpm и libapache2-mod-php.

  • Сервер голосовой связи TeamSpeak 3.

  • Утилита certbot для получения SSL-сертификатов.

Структура файлов и каталогов

Конфигурация и данные приложений размещаются в следующих директориях:

  • Веб-контент и конфигурация Apache: /etc/apache2/, /var/www/html/.

  • Конфигурация phpMyAdmin: /usr/share/phpmyadmin/, /etc/phpmyadmin/.

  • Файлы авторизации для phpMyAdmin: /etc/phpmyadmin/.htpasswd.

  • Данные и конфигурация TeamSpeak 3:

  • Домашняя директория пользователя: /home/<имя_пользователя>/ (определяется переменной ts_home).

  • Каталог файлов: <ts_home>/files/.

  • Каталог логов: <ts_home>/logs/.

  • Каталог сервера: <ts_home>/server/.

  • Каталог резервных копий: <ts_home>/backup/.

  • Конфигурационный файл сервера: <ts_home>/ts3server.ini.

  • Файлы списков IP: <ts_home>/query_ip_whitelist.txt, <ts_home>/query_ip_blacklist.txt.

  • Скрипт запуска: <ts_home>/ts3server_minimal_runscript.sh.

  • Файл токена администратора: /root/admintocken_teamspeak.out.

  • Файл хоста: /root/hostname.out.

Процесс установки приложения

Установка выполняется через пакетный менеджер apt и скрипты развертывания.

Установка компонентов LAMP:

  1. Обновление всех пакетов системы до последней версии.

  2. Установка пакета apache2 и его автоматический запуск.

  3. Установка пакетов mysql-server и python3-mysqldb.

  4. Запуск скрипта безопасности базы данных /tmp/secure_mysql.sh, который:

  5. Устанавливает пароль admin для пользователя root.

  6. Удаляет анонимных пользователей.

  7. Запрещает удаленный вход для root.

  8. Удаляет тестовую базу данных.

  9. Установка пакетов PHP: php-fpm, php-mysql, php-cli, libapache2-mod-php.

  10. Установка phpmyadmin и создание символической ссылки /var/www/html/phpmyadmin.

  11. Создание пользователя базы данных admin с паролем admin и полными правами доступа.

  12. Настройка базовой аутентификации для phpMyAdmin через файл .htaccess и создание файла паролей /etc/phpmyadmin/.htpasswd.

  13. Очистка конфигурации сайта по умолчанию Apache и настройка конфигурации phpMyAdmin через символические ссылки в /etc/apache2/conf-enabled/.

  14. Установка certbot и плагина python3-certbot-apache.

  15. Получение SSL-сертификата для домена, сформированного по шаблону lamp{hostid}.hostkey.in.

Установка TeamSpeak 3:

  1. Создание пользователя системы с оболочкой /bin/false и домашней директорией.

  2. Создание необходимых каталогов с правами доступа 0700.

  3. Развертывание конфигурационного файла ts3server.ini и файлов списков IP.

  4. Создание файла службы systemd для управления сервером.

  5. Определение последней доступной версии сервера через анализ содержимого репозитория.

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

  7. Создание символической ссылки на текущую версию сервера.

  8. Создание резервной копии базы данных SQLite перед обновлением.

  9. Копирование скрипта запуска и создание символических ссылок на файлы сервера.

  10. Установка прав исполнения на исполняемые файлы.

Права доступа и безопасность

Брандмауэр и сетевая безопасность:

  • В конфигурации TeamSpeak 3 предусмотрены настройки для управления портами через firewalld, однако в текущем скрипте они закомментированы.

  • Для phpMyAdmin настроена защита через HTTP Basic Authentication с использованием файла /etc/phpmyadmin/.htpasswd.

  • Доступ к административному интерфейсу phpMyAdmin разрешен только для пользователя admin с паролем admin.

Безопасность базы данных:

  • Пароль суперпользователя MySQL установлен на admin.

  • Анонимные пользователи удалены.

  • Удаленный вход для root запрещен.

  • Тестовая база данных удалена.

Права на файлы:

  • Директории TeamSpeak 3 (files, logs, server, backup) имеют права 0700 и принадлежат специальному пользователю.

  • Конфигурационные файлы имеют права 0600.

  • Исполняемые файлы имеют права 0700.

  • Файл службы systemd имеет права 0644.

Базы данных

MySQL:

  • Сервер базы данных установлен локально.

  • Создан пользователь admin с паролем admin и правами ALL на все базы данных (*.*).

  • База данных используется для хранения данных phpMyAdmin и, при необходимости, других приложений.

TeamSpeak 3:

  • Использует локальную базу данных SQLite.

  • Путь к файлу базы данных: <ts_home>/<имя_файла_бд>.

  • При обновлении сервера автоматически создается резервная копия базы данных в каталоге <ts_home>/backup/.

Контейнеры Docker и их запуск

В предоставленных конфигурационных файлах не используется технология контейнеризации Docker. Развертывание осуществляется через прямую установку пакетов и управление службами через systemd.

Прокси серверы

Apache:

  • Веб-сервер Apache выступает в роли основного сервера и прокси для phpMyAdmin.

  • Конфигурация сайта по умолчанию очищена.

  • Настроена конфигурация phpMyAdmin через файл phpmyadmin.conf, который активируется через символическую ссылку в /etc/apache2/conf-enabled/.

  • Для домена lamp{hostid}.hostkey.in автоматически получен и настроен SSL-сертификат через certbot.

  • После получения сертификата служба Apache перезапускается для применения изменений.

Настройки прав

Права доступа на файлы и директории устанавливаются следующим образом:

  • Директория домашней папки пользователя TeamSpeak и все вложенные файлы рекурсивно передаются в собственность пользователю и группе, созданным для сервиса.

  • Конфигурационные файлы (ts3server.ini, списки IP) имеют права чтения и записи только для владельца (0600).

  • Директории данных (files, logs, server, backup) имеют права доступа только для владельца (0700).

  • Файл службы systemd имеет права чтения для всех (0644).

  • Исполняемые файлы сервера имеют права на выполнение только для владельца (0700).

  • Файл .htpasswd для phpMyAdmin создается с правами, позволяющими Apache читать его.

Запуск, остановка и обновление

Управление службой Apache:

  • Запуск и включение в автозагрузку: systemctl start apache2 и systemctl enable apache2.

  • Перезапуск для применения конфигурации: systemctl restart apache2.

Управление службой TeamSpeak 3:

  • Служба управляется через systemd с именем, соответствующим переменной ts_service.

  • Запуск службы: systemctl start <ts_service>.

  • Остановка службы: systemctl stop <ts_service>.

  • Перезапуск службы: systemctl restart <ts_service>.

  • Обновление службы происходит автоматически при обнаружении новой версии в репозитории:

  • Служба останавливается.

  • Скачивается и распаковывается новая версия.

  • Обновляется символическая ссылка на текущую версию.

  • Служба запускается.

Получение токена администратора TeamSpeak 3:

  • После первого запуска сервера токен администратора извлекается из файла лога <ts_home>/logs/ts3server_1.log.

  • Токен сохраняется в файл /root/admintocken_teamspeak.out.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×