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

Обзор развертывания 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, который: - Устанавливает пароль admin для пользователя root. - Удаляет анонимных пользователей. - Запрещает удаленный вход для root. - Удаляет тестовую базу данных. 5. Установка пакетов PHP: php-fpm, php-mysql, php-cli, libapache2-mod-php. 6. Установка phpmyadmin и создание символической ссылки /var/www/html/phpmyadmin. 7. Создание пользователя базы данных admin с паролем admin и полными правами доступа. 8. Настройка базовой аутентификации для phpMyAdmin через файл .htaccess и создание файла паролей /etc/phpmyadmin/.htpasswd. 9. Очистка конфигурации сайта по умолчанию Apache и настройка конфигурации phpMyAdmin через символические ссылки в /etc/apache2/conf-enabled/. 10. Установка certbot и плагина python3-certbot-apache. 11. Получение 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>. - Обновление службы происходит автоматически при обнаружении новой версии в репозитории: 1. Служба останавливается. 2. Скачивается и распаковывается новая версия. 3. Обновляется символическая ссылка на текущую версию. 4. Служба запускается.

Получение токена администратора TeamSpeak 3: - После первого запуска сервера токен администратора извлекается из файла лога <ts_home>/logs/ts3server_1.log. - Токен сохраняется в файл /root/admintocken_teamspeak.out.

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