Возможности

Что умеет WardPane 2.0

WardPane 2.0 размещает статические, PHP и Node.js сайты, сам выпускает сертификаты и работает с Cloudflare. Защита и управление трафиком настраиваются для каждого сайта и работают внутри веб-сервера. В большинстве из восьми панелей со страницы сравнения для этого нужен ModSecurity или платное дополнение.

Для новичков и для опытных администраторов

Новичку достаточно одной команды: сертификаты выпускаются сами, сайты работают в песочницах, а настройки объяснены простыми словами. Опытному администратору доступны все параметры, терминал в браузере, PM2 на владельца, .htaccess, правила каждого сайта в известном порядке, Cloudflare API, экспорт и импорт, контрольные суммы выпусков и исходный код.

Хостинг

Папки сайтов устроены как в ISPmanager, и у каждого сайта есть владелец, пользователь Linux. Запросы на портах 80 и 443 обслуживает сам WardPane.

Сайты и псевдонимы
Сайт состоит из домена и до 99 псевдонимов (сертификат Let's Encrypt вмещает не больше 100 имён). Псевдоним отдаёт основной сайт или, если у него есть своя папка, эту папку. Сайтам можно дать отображаемое имя.
Схема владельцев
Файлы лежат в /var/www/<owner>/data/www/<domain>, журналы и временные файлы рядом. Владелец по умолчанию www-root: пользователь Linux, которого создаёт WardPane. Сайты из 1.x остаются в своих прежних папках.
Три обработчика
Без обработчика (статический хостинг), PHP или Node.js: выбирается для каждого сайта и меняется в любой момент. Настройки других обработчиков сохраняются, поэтому при возврате они восстанавливаются.
Статические файлы
Режим SPA (неизвестные пути ведут на index.html), своя страница 404.html, строгие ETag и докачка, перенаправление с HTTP на HTTPS и символические ссылки, которые никогда не выходят за пределы папки сайта.
Среды выполнения
Панель показывает версии PHP, установленные на сервере, и поддерживаемые основные версии Node.js: 20, 22, 24 и 26, по умолчанию 24 (поддержка 20 закончилась в апреле 2026 года). Сборки Node.js берутся с nodejs.org и сверяются с опубликованными суммами SHA256.
Меню у каждого сайта
В каждой строке таблицы сайтов есть меню со всеми действиями для этого сайта. Переключатель в строке выключает сайт и включает его обратно, ничего не удаляя.
Терминал в браузере
Терминал открывается в панели: оболочка root в сеансе root или оболочка владельца сайта в папке сайта. Для сайтов на Node.js в нём работают pm2 list и pm2 restart.
Экспорт и импорт
Все сайты со всеми настройками и общий чёрный список попадают в один файл JSON. Импорт объединяет или заменяет данные, сначала проверяет весь файл и никогда не трогает файлы в /var/www.
Таблица сайтов с обработчиками, сроками сертификатов и включённой защитой

PHP и Node.js

Каждый динамический сайт работает от своего пользователя Linux в песочнице systemd. Сломанный или взломанный сайт не прочитает файлы соседей.

Свой пул php-fpm у каждого сайта
Пул, opcache и сессии у сайтов не общие. Код PHP может только читать; писать можно в tmp/, logs/, data/ и указанные вами папки, а PHP-файлы из этих папок не исполняются.
Строгая песочница PHP
Вся файловая система доступна только для чтения и смонтирована с noexec, кроме самого php-fpm, задан open_basedir, отключены exec, system, shell_exec, proc_open, popen и putenv, системные вызовы фильтруются.
.htaccess без Apache
Правила перезаписи, перенаправления, правила доступа, Basic auth, заголовки и кеширование из реальных сайтов работают как есть: WordPress, Laravel и обычные перенаправления на HTTPS и www. Строки, которые применить нельзя, панель показывает отдельно.
Node.js с PM2
Выберите основную версию Node.js, npm-скрипт или файл запуска, переменные окружения и лимиты. Приложения запускает один демон PM2 на владельца, поэтому pm2 работает из терминала владельца.
Прокси перед приложением
Файлы из public/ при желании отдаются напрямую, остальное уходит в приложение с настоящим IP посетителя в X-Forwarded-For и X-Real-IP. WebSocket-соединения проходят после тех же проверок защиты.
Перезапуск, npm install и журналы
На вкладке «Обработчик» есть кнопки перезапуска и npm install (npm ci, если есть lock-файл), журналы вывода, ошибок и установки и список скриптов из package.json.
Вкладка «Обработчик» сайта: версия Node.js, скрипт запуска, переменные окружения и лимиты

Сертификаты и Cloudflare

Сертификаты выпускаются и продлеваются без ручных шагов, в том числе для сайтов за Cloudflare.

Let's Encrypt полностью автоматически
Один сертификат на сайт со всеми его псевдонимами, продление, когда остаётся треть срока. Имена, чей DNS не указывает на сервер, пропускаются и добавляются, как только начнут указывать, а панель показывает причину.
IPv6 тоже проверяется
Let's Encrypt сначала пробует IPv6, поэтому каждая AAAA-запись должна указывать на сервер. WardPane проверяет их до того, как заказать сертификат.
Сертификат для IP
IP сервера получает краткосрочный сертификат, который продлевается каждые несколько дней. Панель по адресу https://<ip>:1500 открывается без предупреждения.
Лимиты Let's Encrypt
Панель не заказывает повторный сертификат, сообщает обо всех неудачных именах заказа сразу, после каждой ошибки ждёт дольше и заменяет деактивированный аккаунт ACME.
Токен Cloudflare в один щелчок
Кнопка «Создать токен Cloudflare» открывает Cloudflare с уже заполненными нужными правами. Вставьте токен обратно, и панель сможет проверять и исправлять зоны ваших сайтов.

Защита

У каждого сайта свои проверки. Они работают внутри веб-сервера, до того как запрос увидят PHP или Node.js. Адрес банится только за явную атаку.

Гео-правила: группы стран, исключения и итоговый список стран
Настройки Bot Fight: категории ботов, краулеры с проверкой по IP, публичные списки IP, обнаружение проб, атак в URL и сканирования
Лимит запросов и баны
По умолчанию каждый адрес может отправить 150 запросов за 10 секунд. Сверх лимита адрес получает 404 и бан на заданное вами число минут. IPv6-посетители считаются и банятся по своей сети /64, так что смена адреса не помогает. У каждого сайта есть белый список.
Bot Fight
Блокирует ИИ-краулеры, SEO-краулеры, сканеры уязвимостей, скрипты и headless-браузеры, пустой User-Agent и ваш собственный список. Поисковики и превью ссылок блокируются, только если вы их выберете. Сервисы мониторинга и RSS-читалки он не трогает.
Пробы и атаки в URL
Запросы к /.env, /.git, /wp-login.php и похожим именам, которых на сайте нет, банят адрес. Явные SQL-инъекции, XSS, обход пути и Log4Shell в URL приводят к бану; неоднозначные случаи лишь отклоняют этот запрос.
Обнаружение сканирования
Много промахов подряд (по умолчанию 25 за 60 секунд) похоже на gobuster или ffuf, и адрес банится. Отсутствующая картинка считается за десятую часть промаха, поэтому старая страница с битыми картинками не сойдёт за сканирование.
Проверенные краулеры
Google, Bing, DuckDuckGo, Apple, OpenAI, Anthropic, Perplexity и Ahrefs публикуют свои диапазоны IP. WardPane ежедневно загружает их и банит любого, кто выдаёт себя за одного из них с другого адреса. Эти краулеры можно и заблокировать по IP, даже если они прячутся за User-Agent браузера.
Публичные списки IP
Spamhaus DROP, FireHOL level 1 и blocklist.de обновляются ежедневно и включаются для сайта одним переключателем.
Гео с группами
Разрешайте или запрещайте страны по одной или группами: бывший СССР, СНГ, ЕАЭС, ЕС, ЕЭЗ, Шенген, НАТО, G7, G20, ОЭСР, БРИКС, ШОС, АСЕАН, Лига арабских государств, МЕРКОСУР, континенты и другие. Добавляйте исключения и смотрите итоговый список стран.
Сети хостингов и номера AS
Блокируйте запросы из AWS, Azure, Google Cloud, Hetzner, OVH, DigitalOcean, Vultr и других облаков, откуда идёт большая часть автоматического трафика, или из любых указанных вами номеров AS.
Фильтр по языку
Разрешайте или запрещайте по языку браузера. Для запросов вообще без языка есть отдельный переключатель. Язык дополняет страну, например когда посетитель за VPN.
Устройства
Пропускайте только Windows, macOS, Linux, Android, iOS или другие выбранные системы. Так отсеиваются клиенты, не похожие на обычный браузер.
Только по ссылке
Обязательные параметры URL: сайт открывается только тем, кто пришёл по вашей ссылке, например ?ref=metaads из рекламы. Подписанная cookie и, по желанию, IP посетителя сохраняют за ним доступ. Пути для вебхуков и платёжных уведомлений остаются открытыми.
Пароль
Вход через HTTP Basic для черновиков и тестовых копий сайта. Пароли хранятся как хеши scrypt и проверяются вне основного потока, после всех остальных фильтров.
Защита от хотлинка
Чужие сайты не смогут вставлять ваши картинки и файлы. Выберите расширения, разрешённые сайты (работают маски) и что делать с запросами без Referer.
Заголовки безопасности
X-Frame-Options, Referrer-Policy, HSTS с includeSubDomains и preload, Content-Security-Policy и Permissions-Policy для каждого сайта.
Ловушка
Путь, запрещённый в robots.txt. Человек его не откроет, поэтому тот, кто его запросил, сразу получает бан.
Свои страницы блокировки
Ваша страница и код ответа (404, 403 или 200) для блокировок по устройствам, ботам, гео и ссылке, с заголовком no-store.
Общий чёрный список
Адреса и сети, заблокированные на всех сайтах, хранятся на диске и сохраняются после перезапусков. Список действует даже там, где у сайта защита выключена.

Управление трафиком

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

Порядок проверок для каждого запроса

  1. Cloudflare: настоящий IP посетителя, режим «только через Cloudflare»
  2. Общий чёрный список, затем белый список сайта
  3. Лимит запросов и действующие баны
  4. Bot Fight: User-Agent, проверенные краулеры, списки IP, пробы, атаки в URL, сканирование, ловушка
  5. Гео: страны и группы, сети хостингов, номера AS, язык браузера
  6. Устройства
  7. Заголовки безопасности и защита от хотлинка
  8. Только по ссылке
  9. Пароль
  10. Правила .htaccess, затем обработчик: файлы, PHP или Node.js
Настоящий IP с учётом Cloudflare
Адрес посетителя берётся из CF-Connecting-IP, только если соединение действительно пришло от Cloudflare. Список сетей ежедневно обновляется с cloudflare.com.
Только через Cloudflare
Прямые запросы на IP сервера получают 404, поэтому никто не обойдёт CDN и его правила.
Если переключатель выключен
Сайт за Cloudflare, не отмеченный как таковой, никогда не банит адреса Cloudflare и даёт каждому серверу Cloudflare в десять раз больший лимит. Журнал подсказывает, как это исправить.
Cloudflare Workers
Запросы от Worker считаются по его зоне с обычными лимитами и банами; Worker вашей собственной зоны считается частью Cloudflare.
Коды страницы блокировки
Выберите 404, чтобы адрес выглядел пустым, 403, чтобы сообщить об отказе, или 200 со своей страницей. Превысившие лимит и забаненные клиенты всегда получают простую 404.
Ответы, безопасные для кеша
Ответы, зависящие от пропуска по ссылке, получают Cache-Control: private и Vary: Cookie, поэтому CDN никогда не отдаст их тому, у кого нет ссылки.

Безопасность панели

Панель работает от непривилегированного пользователя wardpane, а у её страницы входа свои лимиты против перебора паролей.

Вход под root
При желании можно входить под root с паролем root сервера. Его проверяет unix_chkpwd через небольшой помощник с правами root, доступный по сокету, который может открыть только панель. По умолчанию выключено.
Защита от перебора
5 неудачных попыток блокируют адрес (для IPv6 его сеть /64) на 15 минут, а 50 блокируют его /48. Волна неудачных попыток с множества адресов закрывает вход для незнакомых адресов на 5 минут. Адреса, с которых входили за последние 30 дней, продолжают работать.
Белый список IP
Если задан PANEL_ALLOW_IPS, панель вообще не отвечает другим адресам. Список, который отрезал бы адрес, с которого вы работаете, она не примет.
Изоляция помощника root
Панель записывает желаемое состояние, а помощник с правами root, запущенный systemd, заново проверяет каждое значение, прежде чем создавать пользователей, папки и юниты.
PHP и Node.js в песочнице
Отдельные пользователи Linux для каждого сайта, система только для чтения, свой /tmp, запрет новых привилегий, лимиты памяти и CPU, по желанию запрет исходящих соединений.
Контрольные суммы выпусков
Каждый архив публикуется со своей контрольной суммой SHA-256 и содержит полный исходный код. Установщик скачивает его по HTTPS и сверяет SHA-256, прежде чем что-либо запускать.
Обновления можно отменить
Каждое обновление создаёт резервную копию со скриптом восстановления, проверяет, что новая версия запускается, и само откатывается, если она не запустилась.
Восстановление доступа
Если вы заблокировали себе доступ, одна команда на сервере сбрасывает вход в панель и список разрешённых IP и снимает блокировки входа.
Раздел «Безопасность»: общий чёрный список, списки IP краулеров с датами обновления, поиск по IP

Что дальше

Эти возможности запланированы в версиях после 2.0, в самой 2.0 их нет.

Смотреть все планы
  1. 2.1Базы данных и конфигурационный файл сайтаMySQL и MariaDB: базы данных, пользователи и права · Конфигурационный файл для каждого сайта в синтаксисе как у nginx, синхронно с формами · gzip и brotli, журналы доступа с ротацией, блоки location
  2. 2.2ПользователиВход с паролем ОС · Пользователи, которые видят только свои сайты · Права, которые задаёт root, и вход от имени пользователя, чтобы помочь
  3. 2.3Для новичковМастер настройки при первом входе · Простой и экспертный режимы · Готовые наборы защиты в один щелчок · Проверки с кнопкой «Исправить» и более подробная главная страница
  4. 2.4Сертификаты и DNSРаздел SSL-сертификатов · Свой DNS-сервер и серверы имён · Синхронизация DNS с Cloudflare · Вход через Cloudflare
  5. 2.5ПочтаПочтовые домены, ящики и псевдонимы · Postfix, Dovecot, Rspamd и DKIM · Веб-почта Roundcube

Попробуйте на свободном сервере

Установка на чистую Ubuntu 24.04 занимает несколько минут.