# Webship Webový server: Zabezpečené nastavení ve výchozím stavu
Bezpečný webový server by neměl záviset na tom, že si operátor zapamatuje další nastavení ve dvě hodiny ráno. Měl by vycházet z ochranného základu, odmítat nebezpečnou konfiguraci a vyžadovat uvážené volby, než zpřístupní citlivé funkce.
To je model za Webship. Jeho výchozí konfigurace zapíná hlavní obrany proti požadavkům a odpovědím, omezuje zdroje, které může útočník využít, a nechává volitelné řídicí plochy vypnuté. Tyto výchozí hodnoty můžete upravit pro reálnou aplikaci, ale nemusíte objevovat každou ochranu před příchodem prvního požadavku.
Bezpečné ve výchozím nastavení neznamená bezpečné bez kontextu. Certifikáty, autorizace aplikací, síťová politika, tajné údaje a reakce na incidenty stále patří provozovateli. Úkolem Webship je učinit bezpečný výchozí bod zřejmý—a ztížit náhodné oslabování.
Ochrany, které začínají povolené
Webship umožňuje v základní konfiguraci šest vrstev:
| Vrstva | Výchozí chování | Co snižuje | | --- | --- | --- | | Ochrana souborů začínajících tečkou | Zakazuje statické segmenty cesty začínající tečkou | Náhodné zveřejnění souborů prostředí, metadat repozitáře a lokální konfigurace | | Webová aplikační brána | Blokuje známé vzory útoků | SQL injection, cross-site scripting, traversal, zkoušky citlivých cest, příkazy injection, podvodné hlavičky a nepodporované kódování požadavků | | Ovládání DDoS | Funguje v normálním režimu s omezeným stavem klienta | Záplavy požadavků, neomezené sledování a vyhnutelné vyčerpání zdrojů | | Výzva pro boty | Používá podepsané cookie pro výzvu | Nízké náklady na automatizované zneužívání a opakované skenování | | Hlavičky zabezpečení odpovědi | Přidává restriktivní politiku prohlížeče | Záměna MIME typů, rámcování, únik refererů, nebezpečné schopnosti prohlížeče a široké načítání obsahu | | API Shield | Používá blokovací režim a odmítá neznámé cesty, jakmile je definována smlouva API | Stínové koncové body, neúmyslné metody, neočekávané typy obsahu a chybějící požadavky na autorizaci |
Výchozí WAF také stanovuje pevné hranice pro to, co kontroluje: 32 KiB hlaviček požadavku, cestu o délce 2 048 bajtů a tělo požadavku o velikosti 1 MiB. Jedná se o bezpečnostní limity, ne o libovolné výkonnostní přepínače. Pokud aplikace oprávněně potřebuje větší požadavky, zvyšte příslušný limit pro tuto aplikaci a otestujte výsledek místo toho, abyste globálně zakazovali kontrolu.
Ochrana proti DDoS začíná v normálním režimu při 600 požadavcích za minutu s povoleným přesahem 100 pro každý klientský klíč. Její tabulka stavu klientů je omezena na 65 536 záznamů. Tyto hodnoty jsou základní, nikoli univerzální model provozu: veřejné API, služba pro stahování a interní administrátorský panel by neměly sdílet stejné limity specifické pro aplikaci.
Ochrana prohlížeče je součástí základní úrovně
Politika hlaviček odpovědi Webship je povolena i v případě, že aplikace zapomene přidat vlastní. Výchozí nastavení zahrnuje:
- Možnosti typu obsahu X: nosniff;
- politika odmítání rámců;
- Politika-odkazujícího: žádný-odkazující
- Strict-Transport-Security na jeden rok, včetně subdomén;
- Content-Security-Policy omezená na obsah stejného původu, s omezeními rámování a základního URI;
- Zásady oprávnění zakazující přístup k geolokaci, mikrofonu a kameře.
Tyto výchozí hodnoty jsou záměrně omezené. Přezkoumejte HSTS před jeho použitím na doméně s poddoménami, které nejsou plně připravené na HTTPS. Přezkoumejte Content-Security-Policy před tím, než aplikace načte skripty, styly, písma, obrázky nebo spojení z jiných zdrojů. Bezpečný výchozí stav by měl při nasazení selhat zřetelně, nikoli být tiše oslaben v produkci.
Volitelné plochy zůstávají uzavřené
Webship nezpřístupňuje všechny funkce jen proto, že je binárka obsahuje. Reverzní proxy, WebTransport, koncové body pro pozorovatelnost, automatické TLS, sledující původ odpovědi a řídicí koncový bod MCP jsou ve výchozím nastavení zakázány.
Konec bodu MCP má při povolení rozsah loopback a vyžaduje explicitní bezpečnostní konfiguraci. Metryky a statistiky vyžadují, aby byla instrumentace záměrně povolena. Automatická správa certifikátů vyžaduje, aby provozovatel zvolil ACME adresář, kontakty, úložiště a přijal podmínky služby. To zabraňuje, aby se provozní funkce staly nečekanými síťovými povrchy.
Základní posluchač se také váže na 127.0.0.1. Operátor musí explicitně vybrat veřejnou adresu. Tato jediná volba vytváří užitečný bod pro kontrolu pravidel firewallu, oprávnění služby, identifikace TLS a topologie nasazení.
Reverzní proxy zachovává hranici důvěry
Když je povoleno reverzní proxy, TLS průchod zůstává výchozím nastavením. Webship přeposílá šifrovaný provoz, aniž by převzal přístup k nešifrovaným datům aplikace nebo aktivním klíčům relace. Původní server zůstává odpovědný za TLS a dohodnutý protokol.
Povolte ukončení TLS pouze tehdy, když Webship musí kontrolovat HTTP požadavky, směrovat podle cesty, aplikovat WAF a API politiku, přepisovat hlavičky nebo ukládat odpovědi do vyrovnávací paměti. Ukončení samo o sobě není méně bezpečné; posouvá hranici důvěry. Důležité rozhodnutí je, který stroj smí vidět nešifrovaná data a proč.
Pass-through má také funkční limity. Směrování TCP je založeno na ClientHello SNI, protože HTTP požadavek je šifrovaný. HTTP/3 pass-through vyžaduje, aby trasy sdílely jeden UDP původ. Pokud potřebujete bezpečnost citlivou na obsah na hraně, ukončete TLS tam a chraňte hop z hrany do původu samostatně.
Výrobní základní linie, kterou můžete zkontrolovat
Následující úryvek jasně uvádí důležité výchozí hodnoty místo spoléhání se na jejich vynechání:
listen = "0.0.0.0:443"
deny_dotfiles = true
[tls]
unknown_sni = "reject"
[ddos]
enabled = true
mode = "normal"
requests_per_minute = 600
burst = 100
block_seconds = 60
max_tracked_clients = 65536
[security]
enabled = true
rate_limit_max_entries = 65536
[security.waf]
enabled = true
mode = "block"
sqli = true
xss = true
traversal = true
sensitive_paths = true
header_abuse = true
max_header_bytes = 32768
max_path_bytes = 2048
max_body_bytes = 1048576
[security.response_headers]
enabled = true
nosniff = true
frame_deny = true
referrer_no_referrer = true
hsts = "max-age=31536000; includeSubDomains"
content_security_policy = "default-src 'self'; frame-ancestors 'none'; base-uri 'self'"
permissions_policy = "geolocation=(), microphone=(), camera=()"Na posluchači s více doménami, unknown_sni = "reject" zabraňuje nerozpoznanému hostitelskému jménu v přijetí výchozího certifikátu posluchače. Automatické-TLS posluchače Webship již odmítají neznámá jména, dokud neexistuje certifikát.
Validace je bezpečnostní opatření
Webship ověřuje konfiguraci před tím, než naváže posluchače. Neznámá pole, neplatné limity, neúplné identity, konfliktní posluchače a nepodporované kombinace protokolů způsobí selhání spuštění s konkrétní chybou. Stejné ověření probíhá před instalací živé konfigurace. Nepodařený reload ponechá aktuální konfiguraci aktivní.
Ověřená konfigurace cesty MCP přidává další ochranu: odmítá živé změny, které by vypnuly aktivní WAF, vrstvu DDoS, API Shield, bot challenge, politiku edge-auth nebo vrstvu hlaviček odpovědí. Kontroly verzí zabraňují tomu, aby jeden administrátor přepsal novější snímek konfigurace. Nastavení vázaná na proces stále vyžadují restart místo předstírání, že částečná živá změna byla úspěšná.
To je užitečné rozlišení. Bezpečné výchozí nastavení chrání novou instalaci. Transakční validace a chráněné aktualizace chrání běžící systém.
O čem operátoři stále potřebují rozhodnout
Před vystavením Webship internetu:
- Nakonfigurujte důvěryhodnou identitu TLS a chraňte soukromý klíč.
- Nastavit neznámé zpracování SNI pro topologii posluchače.
- Potvrďte, že HSTS a Content-Security-Policy odpovídají každé aplikaci a subdoméně.
- Definujte koncové body API Shield, přijímané metody, typy obsahu a požadavky na autorizaci.
- Přidejte limity rychlosti specifické pro jednotlivé trasy místo spoléhání se pouze na globální základní hodnotu.
- Povolte ověřování na hraně pro chráněné hostitele nebo cesty a používejte krátkodobé tokeny.
- Udržujte MCP a posluchače pro dohled privátní, ověřené a oddělené od veřejného provozu.
- Spusťte Webship s vyhrazeným neprivilegovaným účtem, pokud možno s rootem aplikace pouze pro čtení a pouze s těmi schopnostmi operačního systému, které potřebuje.
- Ověřte konfiguraci před nasazením a poté otestujte blokovaný a povolený provoz v kanárkovém prostředí.
- Sledujte bezpečnostní auditní události a nacvičujte přepnutí z normálního režimu do režimu pod útokem nebo uzamčení.
Bezpečnější výchozí stav je začátek, nikoli tvrzení
Žádný webový server nemůže rozhodnout, kteří uživatelé by měli vidět vaše faktury, které zdroje mohou volat vaše API nebo jak rychle by měl váš podnikový endpoint přijímat požadavky. Tyto kontroly vyžadují znalosti aplikace.
Webship poskytuje spodní vrstvu: omezovače parserů, přísnou konfiguraci, obranné hlavičky odpovědí, kontrolu požadavků, ochranu proti zneužití a uzavřené volitelné plochy. Výsledek není „vyřešená bezpečnost“. Je to menší mezera mezi instalací serveru a jeho odpovědným provozováním.
Přečtěte si kompletní Webship dokumentaci před nasazením do produkce. Konfigurační schéma a běžící binární soubor zůstávají autoritativními zdroji pro přesnou verzi, kterou provozujete.