Аддон для Pterodactyl v1.x DiskGuard [1.0]

DiskGuard
Краткое описание:
Pterodactyl Disk Protection Plugin
15
284

placeholder_diskguard.png


DiskGuard
Защита Pterodactyl от атак заполнения диска

Разработано с ❤️ — Xipher Cloud



▎ О плагине

DiskGuard — Blueprint-плагин для Pterodactyl, который закрывает критическую уязвимость: злоумышленник внутри контейнера может запустить скрипт и за считанные секунды забить весь диск хоста, положив все сервера на ноде.

Плагин используется исключительно в защитных целях и полностью закрывает данный вектор атаки.



▎ Суть проблемы

В открытом доступе существуют скрипты (т.н. «Pterodactyl Crasher»), которые запускают десятки потоков с вызовом:

Bash:
fallocate -l 1G .tmp_<uuid>

Почему это так опасно:

  • fallocate — системный вызов ядра Linux, который выделяет место на диске за миллисекунды, не записывая байты
  • Wings проверяет использование диска раз в 150 секунд по умолчанию
  • 48 потоков × 1GB × 10 секунд = диск забит до того, как Wings вообще узнал
  • Квота Wings работает только для файлов, записанных через его API — прямой вызов fallocate полностью обходит защиту

Реальный тест без плагина:
Код:
До DiskGuard: 155GB диска забито за ~10 секунд
Диск хоста: 100% | Wings: ещё не знает о проблеме



▎ Как защищает DiskGuard

Плагин использует три независимых слоя защиты:

СлойТехнологияРезультат
🛡 SeccompБлокировка syscall fallocate на уровне ядра LinuxСкрипт падает мгновенно, 0 байт записано
⚡ Wings configdisk_check_interval: 5 сек (было 150)Wings реагирует в 30× быстрее
👁 Monitor daemonПроверка диска каждые 3 секундыЛовит альтернативные методы (dd, write и др.)

После установки DiskGuard:
Код:
fallocate: fallocate failed: No space left on device
BLOCKED ✓

Диск хоста: 4.8G / 155G — не изменился



▎ Совместимость

Pterodactyl Panel:
  • ✅ 1.6.x — 1.14.x (все стабильные релизы)
  • ✅ 1.0-develop (develop-ветка)

Wings:
  • ✅ 1.7.x — 1.13.x

Операционные системы:
  • ✅ Ubuntu 20.04 / 22.04 / 24.04 LTS
  • ✅ Debian 11 / 12
  • ✅ CentOS Stream 8 / 9

Требования:
  • Docker ≥ 20.10
  • Blueprint ≥ alpha-09
  • Root-доступ на ноде Wings



▎ Установка

Через Blueprint (рекомендуется):

Bash:
blueprint -install diskguard.blueprint

Вручную:

Bash:
bash install.sh

Мульти-нода: установи плагин на каждой ноде Wings отдельно. Панель патчить не нужно.



▎ Проверка после установки

Bash:
# Статус всех компонентов защиты
systemctl status diskguard wings docker

# Лог монитора в реальном времени
journalctl -u diskguard -f

# Тест: fallocate должен быть заблокирован
docker exec <container_id> bash -c \
  "fallocate -l 1G /tmp/test && echo FAIL || echo BLOCKED"



▎ Стек технологий

  • Linux Kernel Seccomp — фильтрация системных вызовов (syscall whitelist/blacklist)
  • Docker Security Profiles — применение seccomp-профиля ко всем контейнерам
  • systemd — управление демоном мониторинга
  • Bash — установщик и демон мониторинга
  • Blueprint — фреймворк расширений Pterodactyl
  • YAML — конфигурация Wings
  • MySQL/MariaDB — чтение лимитов серверов из БД панели



▎ Скачать


📦 diskguard.blueprint

Версия 1.0.0 | MIT License




Разработано с ❤️ командой Xipher Cloud
cloud.xipher.pro

Автор

SvortexHost

Еще ресурсы от SvortexHost

Web Site для спам рассылки на ApexNodes
Web Site для спам рассылки на email адреса по старой базе данных ApexNodes
ВерхНиз