Магчымасці

Што ўмее 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.
Меню ў кожнага сайта
У кожным радку табліцы сайтаў ёсць меню з усімі дзеяннямі для гэтага сайта, а пераключальнік выключае сайт і ўключае яго назад, нічога не выдаляючы.
Shell у браўзеры
Тэрмінал прама ў панэлі: shell root у сеансе root або shell уладальніка сайта ў папцы сайта. Для сайтаў на 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 працуе з shell уладальніка.
Проксі перад дадаткам
Файлы з 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, path traversal і 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, абнаўляюцца штодня, уключаюцца для сайта адным пераключальнікам.
Геа з групамі
Дазваляйце або забараняйце краіны паасобку або групамі: былы СССР, СНД, ЕАЭС, ЕС, ЕЭП, Шэнген, NATO, G7, G20, АЭСР, БРІКС, ШАС, АСЕАН, Ліга арабскіх дзяржаў, МЕРКАСУР, кантыненты і іншае. Дадавайце выключэнні і глядзіце выніковы спіс краін.
Сеткі хостынгаў і AS number
Блакіруйце запыты з AWS, Azure, Google Cloud, Hetzner, OVH, DigitalOcean, Vultr і іншых воблакаў, адкуль ідзе большасць аўтаматызацыі, або з любога пералічанага вамі AS number.
Фільтр па мове
Дазвол або забарона па мове браўзера, з асобным пераключальнікам для запытаў, якія не перадаюць мову зусім. Карысны дадатковы сігнал побач з краінай, напрыклад за 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 number, мова браўзера
  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.