Што ўмее 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.
Сертыфікаты і 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. Адрас атрымлівае бан толькі за відавочную атаку.
- Ліміт запытаў і баны
- Па змаўчанні кожны адрас можа даслаць 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.
- Глабальны чорны спіс
- Адрасы і сеткі, заблакіраваныя на ўсіх сайтах, захоўваюцца на дыску і не губляюцца пры перазапуску. Ён дзейнічае нават там, дзе абарона сайта выключана.
Кантроль трафіку
Вырашайце, хто трапляе на кожны сайт, у якім парадку дзейнічаюць правілы і што бачыць заблакіраваны наведвальнік.
Парадак праверак для кожнага запыту
- Cloudflare: сапраўдны IP наведвальніка, «Толькі праз Cloudflare»
- Глабальны чорны спіс, потым белы спіс сайта
- Ліміт запытаў і актыўныя баны
- Bot Fight: user agent, правераныя краўлеры, спісы IP, зандзіраванне, шкодныя запыты, сканаванне, пастка
- Геа: краіны і групы, сеткі хостынгаў, AS number, мова браўзера
- Прылады
- Загалоўкі бяспекі і абарона ад хотлінкаў
- Толькі па спасылцы
- Пароль
- Правілы .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 і здымае блакіроўкі ўваходу.
Паспрабуйце на запасным серверы
Усталяванне займае некалькі хвілін на чыстай Ubuntu 24.04.