Принцип работы и возможности
Модуль лимитирования ispmanager изолирует файлы и процессы, а также ограничивает ресурсы пользователей виртуального хостинга. Модуль является российской альтернативой CloudLinux.
Лимитирование и изоляция могут использоваться вместе или по отдельности.
Лимитирование
Модуль отслеживает процессы обработчиков PHP:
- модулей Apache
mod_php,mod_cgid,mod_fcgid mod_lsphp— модуля Apache от ispmanager, который позволяет выполнять PHP в режиме LSAPIphp-fpm
Когда процесс запускается под пользователем, модуль перехватывает его и помещает в лимитированное окружение (Limited Surrounding или LS-контейнер).
Для процессов su, sudo, SSH, Cron модуль встраивается в подключаемый модуль аутентификации (Pluggable Authentication Module, PAM). Когда пользователь проходит аутентификацию в этих службах, модуль также перехватывает его процесс и помещает в LS-контейнер.
Для ограничения ресурсов используется механизм cgroups v2.
Возможности:
- Контроль ресурсов: ограничение потребления CPU, физической памяти, файла подкачки и общего числа процессов
- Лимитирование «из коробки»: базовая поддержка сервисов
su,sudo,SSH,Cron,ApacheиPHP-FPM - Мониторинг: отслеживание потребления в реальном времени через активные LS-контейнеры
- Аналитика: просмотр статистики в веб-интерфейсе панели, через CLI или в формате Prometheus connector
- Расширяемость: поддержка изоляции для других сервисов с PAM
Изоляция
При первичной активации LimitedFS создается скелет структуры файловой системы, общей для всех пользователей. Туда копируется часть общей файловой системы в режиме read-only, необходимая для корректной работы программ в окружении пользователя. При включении LimitedFS для пользователя создаются его персональные данные.
Модуль отслеживает процессы обработчиков PHP:
- модулей Apache
mod_php,mod_cgid,mod_fcgid - в собственный модуль Apache от ispmanager —
mod_lsphp, который позволяет выполнять PHP в режиме LSAPI php-fpm
Когда процесс запускается под пользователем, модуль перехватывает его и помещает в изолированное окружение (Limited File System, LimitedFS, LFS).
Для процессов su, sudo, SSH, Cron модуль встраивается в подключаемый модуль аутентификации (Pluggable Authentication Module, PAM). Когда пользователь проходит аутентификацию в этих службах, модуль также перехватывает его процесс и помещает в изолированное окружение LimitedFS.
После этого pivot_root/chroot подменяет корневую директорию для процесса на заранее созданную.
Возможности:
- Разделение среды: индивидуальные директории
/etcи/tmpдля каждого пользователя - Изоляция «из коробки»: базовая поддержка сервисов
su,sudo,SSH,Cron,ApacheиPHP-FPM - Собственные пространства имен (PID): пользователь видит только свои процессы
su,sudo,SSH,Cron,Apache(с модулямиmod_fcgid,mod_lsphp) иPHP-FPM - Гибкая настройка: возможность добавлять стороннее ПО в LFS, а также управлять черными и белыми списками для файлов и директорий
- Расширяемость: поддержка изоляции для других сервисов с PAM
Конфигурация веб-сервера
Изоляция и лимитирование доступны для следующих конфигурации веб-сервера:
- Apache MPM-ITK + PHP как модуль Apache
- Apache MPM-ITK / Apache MPM-Prefork + PHP в режиме CGI с механизмом suEXEC
- Apache MPM-Prefork + PHP в режиме FastCGI (Apache)
- Apache MPM-ITK / Apache MPM-Prefork + PHP в режиме LSAPI (модуль lsphp)
- Nginx + PHP-FPM (нативная версия PHP и альтернативные версии 5.3–8.5)
Сравнение с CloudLinux
| CloudLinux OS Shared | Лимитирование ispmanager | |
| Тип решения | Операционная система на базе AlmaLinux | Программный комплекс, который работает на AlmaLinux |
Лимитирование ресурсов | ||
| Технология | LVE (LightWeight Virtual Environment) — собственная разработка | LS (Limited Surrounding) на базе cgroups v2 |
| Лимит CPU | ✅ | ✅ |
| Лимит RAM | ✅ | ✅ |
| Лимит SWAP | ✅ | ✅ |
| Лимит числа процессов (PIDs) | ✅ | ✅ |
| Лимит I/O (дисковая активность) | ✅ | Запланировано |
| Защита от fork-бомб | ✅ | ✅ |
Изоляция файловой системы и процессов | ||
| Технология изоляции ФС | CageFS — виртуализированная ФС для каждого пользователя | LimitedFS — mount namespaces + PivotRoot |
| Пользователь видит только свои файлы | ✅ CageFS | ✅ LimitedFS |
| Скрытие системной информации | ✅ | ✅ |
| Защита от компрометации соседних аккаунтов | ✅ | ✅ |
Языки программирования и веб-сервер | ||
| PHP Selector (несколько версий PHP на пользователя) | ✅ | Частично Подробнее Доступен выбор версии PHP для сайта. Недоступны:
|
| Python Selector | ✅ | Частично Подробнее Доступен выбор версии Python для сайта. Недоступны:
|
| Ruby Selector | ✅ | ❌ |
| Node.js Selector | ✅ | Частично Подробнее Доступен выбор версии Node.js для сайта. Недоступны:
|
| Интеграция с веб-сервером | Через mod_lsapi (собственный) | Через mod_cgid / mod_fcgid / mod_lsphp / PHP-FPM |
Оптимизация WordPress | ||
| AccelerateWP (кеширование, оптимизация) | ✅ Включен бесплатно во все тарифы | ❌ |
| MAx Cache (кеш на уровне Apache/Nginx) | ✅ | ❌ |
Развертывание и интеграция | ||
| Требуется переустановка ОС | ✅ Да — нужно ставить CloudLinux OS вместо CentOS/AlmaLinux | ❌ Нет — переустанавливать OC не нужно, только установить модуль |
| Документация на русском | Ограниченно (community-переводы) | ✅ Полная официальная |
| Бесплатный триал | ✅ 30 дней | ✅ 14 дней |
Поддержка | ||
| Техподдержка 24/7 | ✅ На английском | ✅ На русском и английском |
| База знаний и FAQ | ✅ Большая, на английском | ✅ На русском и английском |
Технические подробности
Изоляция
- Изоляцией управляет сервис lfsctl
- Конфигурационные файлы lfsctl:
/etc/limitedfs/ - Журнал lfsctl:
/var/log/limitedfs-service.log - Файловые системы и точки монтирования для пользователей:
/srv/limitedfs/uids/
Лимитирование
- За лимитирование ресурсов отвечают:
- klsd — служба, которая помещает новые процессы в LS-контейнеры
- lsctl — утилита, которая управляет лимитами для контейнеров
- ls_admin — утилита дополнительных настроек лимитирования
- Конфигурационный файл службы klsd:
/etc/klsd/config - Журнал службы klsd:
/var/log/klsd.log
Статистика
- За сбор статистики отвечают демон сбора данных lsstats.service и утилиты вывода данных
- Конфигурационные файлы lsstats:
/etc/ls-stats/conf.d/ - Журнал lsstats:
/var/log/lsstats-service.log
Активные контейнеры
Мониторинг активных контейнеров и процессов выполняет утилита lsps.