Можливості

Що вміє WardPane 2.0

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

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

Початківці отримують встановлення однією командою, сертифікати, що випускаються самі, сайти в ізольованих середовищах і налаштування, пояснені простими словами. Досвідчені адміністратори отримують усі параметри, термінал у браузері, PM2 на власника, .htaccess, правила кожного сайту у відомому порядку, Cloudflare API, експорт та імпорт, контрольні суми випусків і вихідний код.

Хостинг

Сайти розміщуються за схемою в стилі ISPmanager, належать користувачу Linux і обслуговуються самим WardPane на портах 80 і 443.

Сайти й аліаси
Сайт складається з домену та до 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-фіди, виявлення зондування, шкідливих вантажів і сканування
Ліміт запитів і бани
За замовчуванням кожна адреса може надіслати 150 запитів за 10 секунд. Понад ліміт адреса отримує 404 і бан на задану вами кількість хвилин. Відвідувачі з IPv6 рахуються й блокуються за їхньою /64, тож зміна адреси не допоможе. Кожен сайт має білий список.
Bot Fight
Блокує AI-краулери, SEO-краулери, сканери вразливостей, скрипти й headless-браузери, порожні user agent і ваш власний список. Пошукові системи й попередній перегляд посилань лише за вашим вибором. Моніторинг і RSS-читачі не зачіпаються.
Зондування та шкідливі вантажі
Запити до /.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 для кожного сайту.
Пастка (honeypot)
Шлях, заборонений у robots.txt. Людина його не відкриє, тому той, хто його запитав, одразу отримує бан.
Власні сторінки блокування
Ваша сторінка й код статусу (404, 403 або 200) для блокувань за пристроями, ботами, гео й доступом лише за посиланням, з no-store.
Глобальний чорний список
Адреси й мережі, заблоковані на всіх сайтах, зберігаються на диску й переживають перезапуски. Список діє навіть там, де захист сайту вимкнено.

Керування трафіком

Вирішуйте, хто потрапляє на кожен сайт, у якому порядку діють правила і що бачить заблокований відвідувач.

Порядок перевірок для кожного запиту

  1. Cloudflare: справжній IP відвідувача, лише через Cloudflare
  2. Глобальний чорний список, потім білий список сайту
  3. Ліміт запитів та активні бани
  4. Bot Fight: user agent, перевірені краулери, IP-фіди, зондування, шкідливі вантажі, сканування, пастка
  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.