Rust Server: Обзор развертывания¶
Предварительные требования и базовые условия¶
Для развертывания требуется операционная система на базе Linux, в частности Ubuntu, работающая на сервере с полными правами root. Для функционирования сервера необходимы следующие компоненты и сетевые конфигурации:
-
Операционная система: Ubuntu (совместимость проверена через пакетный менеджер
apt). -
Привилегии: Для установки системных пакетов, создания системных пользователей и настройки сервисов
systemdтребуется доступ root (sudo). -
Необходимая системная библиотека: Библиотека
libc6-i386должна быть установлена для поддержки 32-битных слоев совместимости, требуемых игровым сервером. -
Пользователь и группа: Создается и используется выделенный системный пользователь
rustи соответствующая группаrustдля всех операций сервера. -
Сетевые порты: Следующие порты должны быть открыты и доступны для игрового подключения, запросов (query) и удаленного администрирования:
-
Порт игры:
28015 -
Порт RCON:
28016 -
Порт Query:
28017
Структура файлов и каталогов¶
Файлы сервера Rust, конфигурация и данные организованы внутри домашней директории пользователя rust. Основные локации:
-
Каталог сервера:
/home/rust/rust -
Содержит бинарный файл
RustDedicated, файлы данных и скрипт запускаrunds.sh. -
Подкаталог
RustDedicated_Dataхранит игровые активы и плагины. -
Каталог SteamCMD:
/home/rust/steamcmd -
Содержит клиент SteamCMD (
steamcmd.sh), используемый для загрузки и проверки целостности файлов сервера. -
Каталог секретных данных:
/home/rust/.rust -
Хранит конфиденциальные данные конфигурации, в частности пароль RCON.
-
Файл журнала (лог):
rustserver.log, расположенный внутри каталога сервера (/home/rust/rust/rustserver.log).
Процесс установки приложения¶
Приложение устанавливается путем загрузки клиента SteamCMD, его распаковки и использования для загрузки и валидации Dedicated Server игры Rust (App ID 258550).
-
Клиент
steamcmdзагружается с адресаhttps://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz. -
Архив распаковывается в
/home/rust/steamcmd. -
Файлы сервера устанавливаются в
/home/rust/rustс помощью команды: -
В каталог сервера разворачивается пользовательский скрипт запуска с именем
runds.shдля настройки аргументов запуска. -
Создается файл юнит-сервиса
systemdпо пути/etc/systemd/system/rust.serviceдля управления жизненным циклом приложения.
Права доступа и безопасность¶
Сервер работает под непривилегированной учетной записью rust, что изолирует приложение от доступа root. Меры безопасности включают:
-
Изоляция пользователя: Все файлы и процессы сервера работают от имени пользователя
rustв группеrust. -
Безопасность RCON: Генерируется уникальный пароль RCON, который сохраняется в
/home/rust/.rust/rcon_passwordс правами доступа0600(доступно только владельцу). -
Связывание RCON (Binding): Интерфейс RCON привязан к
0.0.0.0на порту28016, что позволяет удаленное администрирование с любого IP-адреса при условии использования правильного пароля. -
Права доступа к файлам:
-
Каталог сервера (
/home/rust/rust) и каталог SteamCMD (/home/rust/steamcmd) имеют права0755. -
Каталог секретных данных (
/home/rust/.rust) имеет права0700. -
Скрипт запуска (
runds.sh) имеет права на выполнение (0755).
Настройка прав доступа¶
Владение и права доступа строго соблюдаются для всех развернутых компонентов:
-
Владение директориями: Все файлы внутри
/home/rust/rustи/home/rust/steamcmdпринадлежатrust:rust. -
Системный сервис: Файл
rust.serviceпринадлежитroot:rootс правами0644. -
Файлы секретов: Файл пароля RCON ограничен доступом только для владельца, чтобы предотвратить несанкционированный доступ к учетным данным удаленного администрирования.
Расположение файлов конфигурации и данных¶
Конфигурация управляется через аргументы командной строки, определенные в скрипте запуска, и хранимые файлы для динамических секретов.
-
Скрипт запуска:
/home/rust/rust/runds.sh -
Определяет идентификацию сервера, порты, настройки карты и учетные данные RCON.
-
Пароль RCON:
/home/rust/.rust/rcon_password -
Содержит пароль RCON в открытом виде, используемый скриптом запуска.
-
Определение сервиса:
/etc/systemd/system/rust.service -
Определяет параметры системного сервиса, включая рабочую директорию и пользователя выполнения.
Запуск, остановка и обновление¶
Сервер Rust управляется как сервис systemd. Используйте следующие команды для управления сервисом:
-
Запустить сервис:
-
Остановить сервис:
-
Перезапустить сервис:
-
Проверить статус:
-
Включить автозапуск при загрузке:
Сервис настроен на автоматический перезапуск в случае сбоя (Restart=always) с задержкой 10 секунд между попытками перезапуска.
Доступные порты для подключения¶
Сервер слушает следующие порты для различных типов трафика. Эти порты должны быть разрешены в конфигурации межсетевого экрана хоста.
| Порт | Протокол | Назначение |
|---|---|---|
| 28015 | UDP/TCP | Подключение к игровому серверу |
| 28016 | TCP | RCON (Удаленная консоль) |
| 28017 | UDP | Query сервера |
Конфигурация сервера устанавливает максимальное количество игроков в 50 (maxplayers), а размер мира карты — в 4500 единиц. Идентификация сервера устанавливается как хост-имя машины, на которой работает сервер.