Funkcje

Co robi WardPane 2.0

WardPane 2.0 hostuje strony statyczne, PHP i Node.js z automatycznymi certyfikatami i obsługą Cloudflare. Ochrona i kontrola ruchu działają osobno dla każdej strony wewnątrz serwera WWW. W większości z ośmiu paneli ze strony porównania zapewnia je ModSecurity albo płatny dodatek.

Dla początkujących i dla doświadczonych administratorów

Początkujący dostają jedno polecenie do instalacji, certyfikaty, które wystawiają się same, strony w piaskownicach i ustawienia wyjaśnione prostymi słowami. Doświadczeni administratorzy dostają każdą opcję, terminal w przeglądarce, PM2 na właściciela, .htaccess, reguły każdej strony w znanej kolejności, Cloudflare API, eksport i import, sumy kontrolne wydań i kod źródłowy.

Hosting

Strony są rozmieszczone w układzie podobnym do ISPmanager, należą do użytkownika Linux i są serwowane przez sam WardPane na portach 80 i 443.

Strony i aliasy
Strona to domena plus do 99 aliasów (certyfikat Let's Encrypt mieści najwyżej 100 nazw). Alias serwuje stronę główną lub, jeśli ma własny folder, ten folder. Strony mogą mieć nazwę wyświetlaną.
Układ według właścicieli
Pliki znajdują się w /var/www/<owner>/data/www/<domain>, a logi i pliki tymczasowe obok nich. Domyślnym właścicielem jest www-root, użytkownik Linux tworzony przez WardPane. Strony z 1.x zachowują swoje dotychczasowe foldery.
Trzy handlery
Bez handlera (hosting statyczny), PHP lub Node.js, wybierane dla każdej strony i zmieniane w dowolnym momencie. Ustawienia pozostałych handlerów są zachowywane, więc powrót je przywraca.
Pliki statyczne
Tryb SPA (nieznane ścieżki trafiają do index.html), własny 404.html, silne ETagi ze wznawianiem pobierania, przekierowanie z HTTP na HTTPS i dowiązania symboliczne, które nigdy nie wyjdą poza folder strony.
Środowiska uruchomieniowe
Panel pokazuje wersje PHP zainstalowane na serwerze oraz obsługiwane główne wersje Node.js: 20, 22, 24 i 26, domyślnie 24 (wsparcie dla 20 zakończyło się w kwietniu 2026). Kompilacje Node.js pochodzą z nodejs.org i są sprawdzane z opublikowanymi sumami SHA256.
Menu przy każdej stronie
Każdy wiersz tabeli stron ma menu ze wszystkimi działaniami dla tej strony, a przełącznik wyłącza stronę i włącza ją z powrotem bez usuwania czegokolwiek.
Powłoka w przeglądarce
Terminal bezpośrednio w panelu: powłoka roota w sesji roota albo powłoka właściciela strony w jej folderze. Działają w nim pm2 list i pm2 restart dla stron Node.js.
Eksport i import
Każda strona ze wszystkimi ustawieniami oraz globalna czarna lista trafiają do jednego pliku JSON. Import scala lub zastępuje, najpierw sprawdza cały plik i nigdy nie dotyka plików w /var/www.
Tabela stron z handlerami, terminami certyfikatów i aktywną ochroną

PHP i Node.js

Każda dynamiczna strona działa jako osobny użytkownik Linux w piaskownicy systemd. Uszkodzona lub zhakowana strona nie może czytać swoich sąsiadów.

Pula php-fpm dla każdej strony
Bez wspólnej puli, bez wspólnego opcache i sesji. Kod jest dla PHP tylko do odczytu; PHP może zapisywać wyłącznie w tmp/, logs/, data/ i wskazanych przez Ciebie folderach, i nigdy nie jest z nich uruchamiane.
Ścisła piaskownica PHP
Cały system plików jest tylko do odczytu i noexec poza samym php-fpm, ustawiony jest open_basedir, wyłączone są exec, system, shell_exec, proc_open, popen i putenv, a wywołania systemowe są filtrowane.
.htaccess bez Apache
Reguły przepisywania, przekierowania, reguły dostępu, Basic auth, nagłówki i cache z prawdziwych stron działają bez zmian: WordPress, Laravel i typowe przekierowania na HTTPS i www. Linie, których nie da się zastosować, są pokazywane, a nie zgadywane.
Node.js z PM2
Wybierz główną wersję Node.js, skrypt npm lub plik startowy, zmienne środowiskowe i limity. Aplikacje uruchamia jeden demon PM2 na właściciela, więc pm2 działa z powłoki właściciela.
Proxy przed aplikacją
Pliki z public/ mogą być serwowane bezpośrednio, a reszta trafia do aplikacji z prawdziwym IP odwiedzającego w X-Forwarded-For i X-Real-IP. WebSockety przechodzą po tych samych kontrolach ochrony.
Restart, npm install i logi
Karta Handler ma przyciski restartu i npm install (npm ci, gdy jest plik lockfile), logi wyjścia, błędów i instalacji oraz skrypty z package.json do wyboru.
Karta Handler strony: wersja Node.js, skrypt startowy, zmienne środowiskowe i limity

Certyfikaty i Cloudflare

Certyfikaty są wystawiane i odnawiane bez ręcznych kroków, także dla stron za Cloudflare.

Let's Encrypt, w pełni automatycznie
Jeden certyfikat na stronę ze wszystkimi jej aliasami, odnawiany, gdy zostaje trzecia część okresu ważności. Nazwy, których DNS nie wskazuje na serwer, są pomijane i dodawane, gdy zacznie wskazywać, a panel pokazuje dlaczego.
IPv6 też sprawdzane
Let's Encrypt najpierw próbuje IPv6, więc każdy rekord AAAA musi wskazywać na serwer. WardPane sprawdza je, zanim zamówi certyfikat.
Certyfikat dla IP
IP serwera dostaje krótkoterminowy certyfikat odnawiany co kilka dni. Panel pod https://<ip>:1500 otwiera się bez ostrzeżenia.
Limity Let's Encrypt
Panel nie zamawia drugi raz tego samego certyfikatu, zgłasza wszystkie nieudane nazwy zamówienia naraz, po każdym błędzie czeka dłużej i zastępuje dezaktywowane konto ACME.
Token Cloudflare jednym kliknięciem
Przycisk Utwórz token Cloudflare otwiera Cloudflare z już wypełnionymi właściwymi uprawnieniami. Wklej token z powrotem, a panel będzie mógł sprawdzać i poprawiać strefy Twoich stron.

Ochrona

Każda strona ma własne kontrole, które działają wewnątrz serwera WWW, zanim PHP lub Node.js zobaczą żądanie. Adres jest blokowany tylko za wyraźny atak.

Reguły geo: grupy krajów, wyjątki i wynikowa lista krajów
Ustawienia Bot Fight: kategorie botów, crawlery weryfikowane po IP, publiczne listy IP, wykrywanie sond, ładunków i skanowania
Limit żądań i blokady
Domyślnie każdy adres może wysłać 150 żądań w 10 sekund. Po przekroczeniu limitu dostaje 404 i blokadę na ustawioną liczbę minut. Odwiedzający przez IPv6 są liczeni i blokowani według swojej /64, więc zmiana adresu nie pomaga. Każda strona ma listę dozwolonych adresów.
Bot Fight
Blokuje crawlery AI, crawlery SEO, skanery podatności, skrypty i przeglądarki headless, puste user agenty i Twoją własną listę. Wyszukiwarki i podglądy linków tylko, jeśli tak wybierzesz. Monitoring i czytniki RSS są pozostawiane w spokoju.
Sondy i ładunki
Żądania o /.env, /.git, /wp-login.php i podobne nazwy, które nie istnieją na stronie, blokują adres. Oczywiste ładunki SQL injection, XSS, path traversal i Log4Shell w URL powodują blokadę; niejednoznaczne tylko odrzucają to jedno żądanie.
Wykrywanie skanowania
Wiele chybień z rzędu (domyślnie 25 w 60 sekund) wygląda jak gobuster lub ffuf i blokuje adres. Brakujący obrazek liczy się jako jedna dziesiąta chybienia, więc stara strona z uszkodzonymi obrazkami to nie skanowanie.
Zweryfikowane crawlery
Google, Bing, DuckDuckGo, Apple, OpenAI, Anthropic, Perplexity i Ahrefs publikują swoje zakresy IP. WardPane pobiera je codziennie i blokuje każdego, kto podaje się za jednego z nich z innego adresu. Możesz też blokować te crawlery po IP, nawet gdy ukrywają się za user agentem przeglądarki.
Publiczne listy IP
Spamhaus DROP, FireHOL level 1 i blocklist.de, odświeżane codziennie, włączane dla każdej strony jednym przełącznikiem.
Geo z grupami
Zezwalaj na kraje lub je blokuj pojedynczo albo grupami: byłe ZSRR, WNP, EUG, UE, EOG, strefa Schengen, NATO, G7, G20, OECD, BRICS, SOW, ASEAN, Liga Państw Arabskich, Mercosur, kontynenty i inne. Dodaj wyjątki i zobacz końcową listę krajów.
Sieci hostingowe i numery AS
Blokuj żądania z AWS, Azure, Google Cloud, Hetzner, OVH, DigitalOcean, Vultr i innych chmur, skąd pochodzi większość automatyzacji, albo z dowolnego podanego numeru AS.
Filtr języka
Zezwalaj lub blokuj według języka przeglądarki, z osobnym przełącznikiem dla żądań, które nie wysyłają żadnego języka. Przydatny dodatkowy sygnał obok kraju, na przykład za VPN.
Urządzenia
Wpuszczaj tylko Windows, macOS, Linux, Android, iOS lub inne, jako filtr dla zwykłych przeglądarek.
Tylko z linkiem
Wymagane parametry URL: strona otwiera się tylko dla osób, które przyszły z Twoim linkiem, na przykład ?ref=metaads z reklamy. Podpisane ciasteczko i opcjonalnie IP odwiedzającego utrzymują dostęp. Ścieżki dla webhooków i powiadomień o płatnościach pozostają otwarte.
Hasło
Logowanie HTTP Basic dla wersji roboczych i testowych kopii strony. Hasła są przechowywane jako skróty scrypt i sprawdzane poza głównym wątkiem, po wszystkich innych filtrach.
Ochrona przed hotlinkowaniem
Inne strony nie mogą osadzać Twoich obrazów i plików. Wybierz rozszerzenia, dozwolone strony (działają symbole wieloznaczne) i co robić z żądaniami bez nagłówka Referer.
Nagłówki bezpieczeństwa
X-Frame-Options, Referrer-Policy, HSTS z includeSubDomains i preload, Content-Security-Policy i Permissions-Policy dla każdej strony.
Honeypot
Ścieżka, której zabrania robots.txt. Człowiek jej nie otworzy, więc każdy, kto o nią poprosi, zostaje od razu zablokowany.
Własne strony blokady
Twoja własna strona i kod statusu (404, 403 lub 200) dla blokad urządzeń, botów, geo i trybu tylko z linkiem, serwowane z no-store.
Globalna czarna lista
Adresy i sieci blokowane na każdej stronie, zapisane na dysku i zachowywane po restartach. Działa nawet tam, gdzie strona ma wyłączoną ochronę.

Kontrola ruchu

Zdecyduj, kto dociera do każdej strony, w jakiej kolejności działają reguły i co widzi zablokowany odwiedzający.

Kolejność kontroli przy każdym żądaniu

  1. Cloudflare: prawdziwy IP odwiedzającego, tylko przez Cloudflare
  2. Globalna czarna lista, potem lista dozwolonych adresów strony
  3. Limit żądań i aktywne blokady
  4. Bot Fight: user agenty, zweryfikowane crawlery, listy IP, sondy, ładunki, skanowanie, honeypot
  5. Geo: kraje i grupy, sieci hostingowe, numery AS, język przeglądarki
  6. Urządzenia
  7. Nagłówki bezpieczeństwa i ochrona przed hotlinkowaniem
  8. Tylko z linkiem
  9. Hasło
  10. Reguły .htaccess, potem handler: pliki, PHP lub Node.js
Prawdziwy IP z uwzględnieniem Cloudflare
Adres odwiedzającego jest brany z CF-Connecting-IP tylko wtedy, gdy połączenie naprawdę pochodzi z Cloudflare. Lista sieci jest odświeżana codziennie z cloudflare.com.
Tylko przez Cloudflare
Bezpośrednie żądania na IP serwera dostają 404, więc nikt nie pominie CDN i jego reguł.
Gdy przełącznik jest wyłączony
Strona za Cloudflare, która nie jest tak oznaczona, nigdy nie blokuje adresów Cloudflare i dostaje dziesięć razy wyższy limit na każdy serwer Cloudflare. Log podpowiada poprawkę.
Cloudflare Workers
Żądania z Workera są liczone według jego strefy, ze zwykłymi limitami i blokadami; Worker Twojej własnej strefy jest traktowany jak Cloudflare.
Kody stron blokady
Użyj 404, aby adres wyglądał na pusty, 403, aby powiedzieć, że żądanie jest odrzucone, albo 200 z własną stroną. Klienci przekraczający limit i zablokowani zawsze dostają zwykłe 404.
Odpowiedzi bezpieczne dla cache
Odpowiedzi zależne od przepustki z linku dostają Cache-Control: private i Vary: Cookie, więc CDN nigdy nie przekaże ich komuś bez linku.

Bezpieczeństwo panelu

Panel działa jako nieuprzywilejowany użytkownik wardpane, a jego strona logowania ma własne limity przeciw brute force.

Logowanie jako root
Opcjonalnie możesz logować się jako root hasłem roota serwera. Sprawdza je unix_chkpwd za pośrednictwem małego pomocnika z uprawnieniami roota, na gnieździe, które może otworzyć tylko panel. Domyślnie wyłączone.
Limity przeciw brute force
5 nieudanych prób blokuje adres (w IPv6 jego sieć /64) na 15 minut, a 50 nieudanych prób blokuje jego /48. Fala nieudanych prób z wielu adresów zamyka logowanie dla nieznanych adresów na 5 minut. Adresy, z których logowano się w ciągu ostatnich 30 dni, nadal działają.
Lista dozwolonych IP
Gdy ustawiono PANEL_ALLOW_IPS, panel w ogóle nie odpowiada innym adresom. Odrzuca listę, która odcięłaby adres, z którego właśnie korzystasz.
Izolacja pomocnika roota
Panel zapisuje pożądany stan; pomocnik z uprawnieniami roota uruchamiany przez systemd ponownie sprawdza każdą wartość, zanim utworzy użytkowników, foldery i jednostki.
PHP i Node.js w piaskownicy
Osobni użytkownicy Linux dla każdej strony, system tylko do odczytu, prywatny /tmp, brak nowych uprawnień, limity pamięci i CPU oraz opcjonalnie brak połączeń wychodzących.
Sumy kontrolne wydań
Każde archiwum jest publikowane razem z sumą kontrolną SHA-256 i zawiera pełny kod źródłowy. Instalator pobiera je przez HTTPS i sprawdza SHA-256, zanim cokolwiek uruchomi.
Aktualizacje, które można cofnąć
Każda aktualizacja tworzy kopię zapasową ze skryptem przywracania, sprawdza, czy nowa wersja się uruchamia, a jeśli nie, sama się wycofuje.
Odzyskiwanie dostępu
Jeśli zablokujesz sobie dostęp, jedno polecenie na serwerze resetuje logowanie do panelu i listę dozwolonych IP oraz zdejmuje blokady logowania.
Sekcja Bezpieczeństwo: globalna czarna lista, listy IP crawlerów z datami aktualizacji, wyszukiwanie IP

Co dalej

Te funkcje są zaplanowane w wydaniach po 2.0 i nie ma ich w 2.0.

Zobacz cały plan rozwoju
  1. 2.1Bazy danych i plik konfiguracyjny stronyMySQL i MariaDB: bazy danych, użytkownicy i uprawnienia · Plik konfiguracyjny każdej strony w składni podobnej do nginx, zsynchronizowany z formularzami · gzip i brotli, logi dostępu z rotacją, bloki location
  2. 2.2UżytkownicyLogowanie hasłem systemowym · Użytkownicy, którzy widzą tylko własne strony · Uprawnienia nadawane przez roota i logowanie jako użytkownik, aby mu pomóc
  3. 2.3Dla początkującychKreator konfiguracji przy pierwszym logowaniu · Tryb prosty i tryb eksperta · Gotowe zestawy ochrony jednym kliknięciem · Kontrole stanu z przyciskiem Napraw i bogatszy pulpit
  4. 2.4Certyfikaty i DNSSekcja certyfikatów SSL · Własny serwer DNS i serwery nazw · Synchronizacja DNS z Cloudflare · Logowanie przez Cloudflare
  5. 2.5PocztaDomeny pocztowe, skrzynki i aliasy · Postfix, Dovecot, Rspamd i DKIM · Webmail Roundcube

Wypróbuj na zapasowym serwerze

Instalacja na czystym Ubuntu 24.04 zajmuje kilka minut.