Ochrana serveru Project Zomboid před DDoS útoky
Které porty dedikovaný server Project Zomboid skutečně potřebuje, na kterých direktivách v servertest.ini záleží, proč srovnání modů při připojení otevírá cestu k útoku a od jaké velikosti útoku pomůže už jen filtrace v síti před serverem.
Kdo chce ochránit svůj server Project Zomboid před DDoS útoky, musí nejdřív vědět, na co útočník vlastně střílí. Dedikovaný server zabírá přesně dva UDP porty, 16261 a 16262, a oba musí stát otevřené v síti, protože jinak se nikdo nepřipojí. Tento článek postupuje v pořadí, které se v ostrém případě počítá: nejdřív to, co můžete v následujících deseti minutách bez dalších nákladů udělat sami, potom místo, kde tato opatření technicky končí, a nakonec to, co se musí odehrát v síti před serverem.
Všechny údaje se vztahují k dedikovanému serveru (aplikace Steamu 380870) na Debianu 12, Debianu 13, Ubuntu 22.04 LTS nebo Ubuntu 24.04 LTS, a to pro Build 41 stejně jako pro Build 42. Konfigurační soubor se jmenuje servertest.ini a leží v ~/Zomboid/Server/, data světa leží v ~/Zomboid/Saves/Multiplayer/. Příkazy jsou psané pro uživatele root, jako běžný uživatel před ně předřaďte sudo.
Pokud útok právě probíhá: teď neměňte nic v servertest.ini a server nerestartujte. Nejdřív si zajistěte naměřené hodnoty (oddíl 9), po útoku už budou pryč. Restart navíc stojí čas, který server potřebuje k nahrání světa, a právě ten vám chce útočník sebrat.
Proč se servery Project Zomboid stávají terčem DDoS útoků
Project Zomboid je hra s trvalou smrtí a se světem, který běží dál celé měsíce. Přerušení spojení uprostřed nebezpečné situace tady stojí víc než téměř v jakémkoli jiném žánru: postava je pryč a svět si to pamatuje. Právě to dělá z výpadku zbraň. Útok ve 20:00 zasáhne pevnou komunitu, a zasáhne ji v místě, kde má nejvíc co ztratit.
K tomu přistupuje, že samotný útok nic nestojí a nevyžaduje žádné schopnosti. Objednané útočné služby (ve scéně se jim říká booter nebo stresser) se namíří několika kliknutími na jednu IP adresu a jeden port, a u Project Zomboid je cíl vždycky stejný: 16261 UDP. Kdo je ve sporu se zabanovaným hráčem nebo provozuje konkurenční komunitu, má tím v ruce nástroj, ke kterému nepotřebuje ani znalosti, ani znatelné peníze.
K tomu přistupuje, že herní server musí svou adresu zveřejnit. Pokud v servertest.ini stojí Public=true, objeví se server v prohlížeči serverů ve hře, a server s napojením na Steam je tak jako tak vidět v prohlížeči serverů Steamu. Otázka tedy nikdy nezní, jestli útočník najde vaši IP adresu, ale jen to, co se stane, když na ni začne střílet.
Technicky přichází nejnepříjemnější část nakonec: celý herní provoz běží přes UDP. UDP nezná navázání spojení, které by se dalo vyžadovat, každý paket stojí sám za sebe a adresu odesílatele lze podvrhnout. Útočník tedy nemusí na váš server vstoupit ani ho správně oslovit, aby vytvořil zátěž. Co je DDoS útok podrobně, vysvětluje článek Co je DDoS útok?.
Které porty server Project Zomboid skutečně potřebuje
Dedikovaný server Project Zomboid potřebuje přesně dva otevřené porty: 16261 UDP a 16262 UDP. Oficiální seznam portů hry žádný třetí neuvádí. V servertest.ini stojí jako dvě oddělené direktivy, druhý port nevyplývá automaticky z prvního:
DefaultPort=16261
UDPPort=16262
SteamPort1=8766
SteamPort2=8767
RCONPort=27015
RCONPassword=
Rozdělení úloh je jednoznačné. 16261 UDP nese herní provoz a navázání spojení a odpovídá na dotazy prohlížeče serverů. 16262 UDP je port pro přímé připojení klientů. Chybí-li první, server nikdo nenajde, chybí-li druhý, vaši hráči záznam v seznamu vidí a přesto se nedostanou dovnitř. Právě odtud pochází nejznámější chybová hláška hry, totiž že je port 16262 zavřený.
| Port | Protokol | Úloha | Direktiva v servertest.ini | Dosažitelný z internetu? |
|---|---|---|---|---|
| 16261 | UDP | herní provoz, navázání spojení, dotazy prohlížeče serverů | DefaultPort=16261 |
ano, povinně |
| 16262 | UDP | přímé připojení klientů | UDPPort=16262 |
ano, povinně |
| 8766 a 8767 | UDP | napojení serveru na Steam | SteamPort1, SteamPort2 |
ne, v oficiálním povinném seznamu stojí jen 16261 a 16262 |
| 27015 | TCP | vzdálená správa RCON | RCONPort=27015 |
ne, jen pro vaši vlastní adresu |
| 22 | TCP | přístup SSH k operačnímu systému | není v servertest.ini | omezeně |
Dva body, které pravidelně dělají potíže. Zaprvé: každá instance serveru potřebuje dva volné UDP porty. Kdo na stejném stroji provozuje druhý svět, vyhradí pro něj druhou dvojici, například 16274 a 16275, a oba údaje zapíše do servertest.ini druhé instance. Zadruhé: SteamPort1 a SteamPort2 stojí v konfiguračním souboru s hodnotami 8766 a 8767, patří ale k napojení na Steam, ne k hernímu provozu. Otevřete je jen tehdy, když se váš server bez nich neobjeví v seznamu Steamu, ne preventivně.
Co můžete udělat sami, než utratíte peníze
Tento oddíl je nejdelší, a to záměrně. Čistě nakonfigurovaný server ustojí malé a střední útoky vlastními silami, nezávisle na tom, u koho stojí. Volumetrický útok za vás nevyřeší, postará se ale o to, že levné útoky zůstanou bez účinku a že v ostrém případě budete mít čísla místo dohadů.
1. Inventura: co skutečně naslouchá
Než napíšete jediné pravidlo, podívejte se, co váš server nabízí navenek. Nehádat, podívat se:
ss -lntup
Zajímavý je sloupec s lokální adresou. 0.0.0.0:16261 a [::]:16261 znamenají „dosažitelné z celého internetu“, 127.0.0.1:27015 znamená „jen lokálně“ a nepotřebuje žádné uvolnění. Výsledek si srovnejte se svou konfigurací, místo abyste se spoléhali na výchozí hodnoty:
grep -E "^(DefaultPort|UDPPort|SteamPort1|SteamPort2|RCONPort|Public|Open|MaxPlayers|MaxAccountsPerUser)=" ~/Zomboid/Server/servertest.ini
Pohled útočníka poskytne sken portů zvenčí. Protože Project Zomboid používá výhradně UDP, je k tomu potřeba UDP sken, čistý TCP sken herní port vůbec nezobrazí:
nmap -Pn -sU -p 16261,16262,8766,8767 VASE.IP.ADRESA.SERVERU
nmap -Pn -p- --min-rate 1000 VASE.IP.ADRESA.SERVERU
2. Nechat otevřené jen 16261 a 16262
Dvě uvolnění navenek stačí, všechno ostatní se omezí nebo se vůbec nezveřejní. S UFW to vypadá takto, a to přesně v tomto pořadí, abyste se sami nevyzamkli:
ufw allow 22/tcp comment "SSH"
ufw allow 16261/udp comment "Project Zomboid"
ufw allow 16262/udp comment "Project Zomboid přímé připojení"
ufw allow from 203.0.113.10 to any port 27015 proto tcp comment "RCON"
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose
Nahraďte 203.0.113.10 svou vlastní adresou. Pořadí při zapínání rozhoduje o tom, jestli se sami nevyzamknete. Stojí včetně záchranné cesty v článku Jak nastavit firewall UFW, aniž byste se sami vyzamkli. Pokud k tomu přece dojde: u KVM root serverů a dedikovaných serverů od KernelHost se k systému dostanete přes VNC konzoli v zákaznické sekci, která pracuje nezávisle na síti hostovaného systému.
Jedno slovo k databázím a doplňkovým službám: Project Zomboid žádné nepotřebuje. Co vedle hry naslouchá na 0.0.0.0, pochází z dřívější instalace nebo ze správního panelu a patří buď navázat na 127.0.0.1, nebo vypnout.
3. Vzít RCON na portu 27015 z internetu
RCON je vzdálená správa serveru a u Project Zomboid běží na 27015 TCP. V dodávané servertest.ini stojí RCONPassword= bez hodnoty. Kdo RCON používá, nastaví dlouhé náhodné heslo, protože protokol přenáší nešifrovaně, a dosažitelný port RCON se slabým heslem vydá server celý, aniž by k tomu byl potřeba jediný paket útočného provozu.
Bezpečná cesta je port navenek vůbec neotvírat a dostat se k němu přes přesměrování portu v SSH. Potom mluvíte lokálně s 127.0.0.1:27015:
ssh -N -L 27015:127.0.0.1:27015 root@VASE.IP.ADRESA.SERVERU
Kdo RCON nepotřebuje, nechá pole s heslem prázdné a port zavřený. Služba, která není dosažitelná, se nedá ani prolomit zkoušením, ani zaplavit.
4. Omezit paketovou rychlost podle zdrojové adresy
Proti malým útokům a nečistým botům pomáhá horní mez podle zdrojové adresy. Protože oba herní porty leží vedle sebe, stačí jedno pravidlo pro celý rozsah:
iptables -I INPUT -p udp --dport 16261:16262 -m hashlimit --hashlimit-name pz_udp --hashlimit-mode srcip --hashlimit-above 400/sec --hashlimit-burst 600 -j DROP
iptables -L INPUT -n -v
Pravidlo zahazuje UDP pakety, jakmile stejná zdrojová adresa trvale posílá více než 400 paketů za sekundu. Hodnota je výchozí bod, ne pravda: server s 30 hráči ve stejném městě vytváří výrazně více provozu než server se čtyřmi hráči v různých koutech mapy, a kdo nastaví meze příliš těsně, vyhazuje vlastní hráče. Měřte nejdřív týden v normálním provozu, potom nastavte mez na několikanásobek špičkové hodnoty.
Dvě poznámky k tomu. Samotná pravidla iptables jsou po restartu pryč, na Debianu a Ubuntu se ukládají takto:
apt-get install -y iptables-persistent
netfilter-persistent save
A pod UFW patří taková pravidla do /etc/ufw/before.rules, protože jinak při příštím ufw reload zmizí. Pomocí čítačů zásahů z iptables -L INPUT -n -v zkontrolujte, jestli se na pravidlo vůbec dojde. Zůstávají-li čítače na nule, stojí pravidlo na špatném místě.
5. Odlehčit sledování spojení
Často přehlížené úzké hrdlo sedí v jádře. Sledování spojení zakládá i pro UDP záznam na každou zdrojovou adresu a port, a záplava s podvrženými odesílateli tuto tabulku naplní během sekund. Když se naplní, zahazuje server i legitimní pakety a v protokolu stojí „nf_conntrack: table full“. Stav a horní mez ukáže:
sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max
Herní provoz Project Zomboid sledování stavu nepotřebuje, protože UDP žádný stav nemá. Oba herní porty proto můžete z tabulky vynechat:
iptables -t raw -I PREROUTING -p udp --dport 16261:16262 -j NOTRACK
To jádro znatelně odlehčí. Důležité: pravidlo platí jen tak dlouho, dokud server dostává pakety přímo. Kdo před ním provozuje překlad adres, například v kontejnerové sestavě s předáváním portů, ho nastavit nesmí, protože zpětný směr se pak už nepřiřadí.
6. Zabezpečit připojení a sloty
Následující řádky nic nestojí a působí proti všemu, co přichází běžnou cestou připojení:
Password=DLOUHE-NAHODNE-HESLO
Open=false
MaxAccountsPerUser=1
MaxPlayers=32
DenyLoginOnOverloadedServer=true
Password je společné heslo serveru a je oddělené od účtu jednotlivého hráče. Open=false znamená, že se smějí připojit jen účty, které předem založil administrátor, a to je whitelist hry. MaxAccountsPerUser omezuje, kolik účtů si smí jediný uživatel Steamu na vašem serveru založit, výchozí hodnota 0 znamená bez omezení. MaxPlayers stojí od výrobce na 32 a nad touto hodnotou dokumentace výslovně varuje před špatným dohráváním mapy a desynchronizací.
PingLimit je na tomto místě past. Direktiva vyhazuje hráče od určité latence v milisekundách a od výrobce stojí na 0, tedy vypnutá. Během útoku stoupá latence nejdřív vašim vlastním hráčům, těsná hodnota tedy vykopne právě ty lidi, které si chcete udržet. Mez nechte vypnutou nebo ji nastavte velkoryse.
A jedno musí být jasné: whitelist chrání vaši herní logiku, ne vaši linku. Útočník, který váš server zaplavuje, se vůbec nechce připojit. Jeho pakety se odmítnou, ale přesto dorazily, a právě o to jde.
7. Srovnání modů při připojení je nejdražší sekunda vašeho serveru
Project Zomboid kontroluje při připojení víc než jen heslo. Seznam modů serveru stojí ve dvou řádcích servertest.ini: WorkshopItems obsahuje číselná ID z Workshopu, Mods načítací ID modů, obojí oddělené středníkem. Při připojení klient tento seznam srovná, chybějící obsah z Workshopu si automaticky dotáhne přes Steam a teprve potom mu server začne streamovat data mapy. Navíc server při DoLuaChecksum=true porovnává kontrolní součty herních souborů a vyhazuje klienty, jejichž soubory k jeho vlastním nepasují.
Pro útočníka je zajímavé právě to, protože ta práce padne ještě před vlastním vstupem do hry. Každý pokus o spojení stojí server výpočetní čas na verzi, kontrolní součet, seznam modů a data mapy, a to i pokus, který se nakonec odmítne. Dlouhý seznam modů dělá každý takový pokus dražší. Záplava připojení je proto na silně modifikovaném serveru účinnější než na nezměněném, a potřebuje k tomu zlomek šířky pásma volumetrického útoku. Hra proti tomu přináší dvě vestavěné brzdy:
DenyLoginOnOverloadedServer=true
LoginQueueEnabled=true
LoginQueueConnectTimeout=60
DenyLoginOnOverloadedServer odmítá nová přihlášení, dokud je server přetížený, místo aby s sebou strhl i běžící kolo. LoginQueueEnabled staví přicházející hráče do fronty, místo aby je vyřizoval současně, a LoginQueueConnectTimeout určuje, jak dlouho smí připojení trvat, výchozí hodnota je 60 sekund, dovolené jsou hodnoty od 20 do 1200.
Jeden detail k tomu patří, protože se často řeší chybně: na linuxových serverech existuje dokumentovaná chyba, při které DoLuaChecksum hlásí planý poplach a nepouští hráče dovnitř. Provozovatelé proto kontrolu vypínají. To je pochopitelné, odstraňuje to ale kontrolu, která drží dál klienty s pozměněnými herními soubory. Kdo ji vypnout musí, měl by tím přísněji nastavit heslo serveru, whitelist a mez počtu účtů.
8. Seznam serverů, UPnP a vlastní adresa
Tady se vyplatí poctivost místo zbožných přání: vaši IP adresu nelze udržet v tajnosti. Public=true ukazuje server v prohlížeči serverů ve hře a server s napojením na Steam je podle dokumentace tak jako tak vidět v prohlížeči serverů Steamu. Public=false vám tedy odebere viditelnost pro nové hráče, aniž by vás udělalo neviditelnými.
Public=true
PublicName=Můj Zomboid server
UPnP=false
server_browser_announced_ip=
UPnP stojí od výrobce na true a nechává server pokoušet se sám zřídit uvolnění portu na internetové bráně. Na pronajatém serveru žádná taková brána není, pokus jde do prázdna a patří vypnout. server_browser_announced_ip zůstává prázdné, pokud váš server nemá více adres a nemá se cíleně objevovat pod jednou z nich. Právě toto pole budete potřebovat později znovu, když přejdete na dedikovanou chráněnou IP.
Dva zvyky pomohou víc než jakékoli nastavení. Nezveřejňujte surovou IP adresu nikde sami, tedy ani v kanálu na Discordu, ani na stránce projektu, a dejte svým hráčům jméno hostitele. Klasikou při výměně adresy jsou staré DNS záznamy: zapomenutý A záznam na předchozí adresu udělá každou výměnu bezúčelnou.
9. Měřit, dokud všechno běží normálně
Nejdůležitější krok je ten, který skoro nikdo předem neudělá: založit si srovnávací základnu, dokud je všechno v klidu. Bez normální hodnoty nedokážete po incidentu říct, jestli bylo 40 000 paketů za sekundu hodně, nebo jestli to byl prostě sobotní večer. S apt-get install -y vnstat sysstat běží měření trvale. Během incidentu stačí čtyři příkazy:
sar -n DEV 1 10
ip -s link show eth0
tcpdump -ni eth0 "udp port 16261 or udp port 16262" -c 200 -q
journalctl -u zomboid --since "-15 min" | tail -50
První dva ukazují paketovou rychlost a čítače zahozených paketů na rozhraní, třetí krátký vzorek provozu, čtvrtý hlášení serveru, pokud běží jako služba systemd (jméno služby si upravte). U tcpdump platí: vždy omezit pomocí -c, záznam při plném zatížení dodatečně zatěžuje už tak přetížený server. Jak naměřené hodnoty vyhodnotit, stojí v článku Jak poznat DDoS útok na serveru.
Kde tato opatření končí: šířka pásma a paketová rychlost
Teď část, kterou nevyřeší žádný konfigurační soubor. Všechna dosavadní opatření běží na vašem serveru, tedy na konci linky. Pravidlo firewallu rozhoduje o paketu, který už po kabelu proběhl. Můžete ho zahodit, ale nemůžete ho udělat neodeslaným.
Spočítejte si to jednou. Typický herní server visí na 1 Gbit/s, to je 125 megabajtů za sekundu, a linka je plná, jakmile někdo pošle více. Druhou veličinou je paketová rychlost a ta udeří často dřív než šířka pásma: u malých paketů o velikosti 64 bajtů se do 1 Gbit/s vejde zhruba 1,49 milionu paketů za sekundu, zatímco běžné jádro serveru jich podle CPU a síťové karty zpracuje jen několik set tisíc, než začne zahazovat. Útok, který vaši linku nezaplní ani do třetiny, tedy může váš server položit. Provozovatelé to zažívají jako „vytížení přece vůbec nebylo vysoké, a stejně bylo všechno pryč“.
| Ukazatel | Hodnota |
|---|---|
| 1 Gbit/s v bajtech | 125 megabajtů za sekundu |
| Pakety, které se při 64 bajtech vejdou do 1 Gbit/s | zhruba 1,49 milionu za sekundu |
| Co z toho zpracuje jádro serveru | několik set tisíc za sekundu |
| Běžná velikost útoku proti komunitním herním serverům | 5 až 50 Gbit/s |
| UDP flood odfiltrovaný u KernelHost na herním serveru | více než 112,2 Gbit/s |
| Největší doložený útok na server KernelHost | více než 473,4 Gbit/s při více než 41,5 milionu paketů za sekundu |
Běžné útoky proti komunitám herních serverů leží mezi 5 a 50 Gbit/s, tedy na pěti až padesátinásobku normální linky. Na to neexistuje žádné lokální nastavení. Volumetrické útoky musí skončit v síti před serverem.
Co proti DDoS útokům na herní servery staví KernelHost
Trvalá ochrana, která je na každém serveru v ceně
Ochrana proti DDoS od KernelHost je postavená dvoustupňově a je trvale aktivní, aniž byste museli cokoli zapínat, objednávat nebo konfigurovat:
- Stupeň 1: 17 Tbps mitigační kapacity v globální scrubbingové síti. Volumetrické útoky se čistí blízko svého zdroje, ještě než dorazí do datacentra.
- Stupeň 2: filtrace Arbor v reálném čase s 3,2 Tbps ve Frankfurtu nad Mohanem. Přímo před serverem se rozpoznávají a zahazují vzory specifické pro jednotlivé protokoly, paket po paketu.
Rozhodující jsou dvě vlastnosti. Ochrana běží trvale a nemusí na útok teprve reagovat, nejsou tedy žádné minuty na začátku, kdy je server pryč. A nepoužívá se nullrouting: vaše IP adresa zůstává v síti, zahazují se jen škodlivé pakety. Kdo IP adresu ze sítě stáhne, dosáhne pro vás stejného výsledku jako útočník. Které hry a protokoly jsou pokryté, vypisuje článek Ochrana herních serverů proti DDoS v reálném čase.
Advanced DDoS Protection pro trvale ostřelované projekty
Některé projekty nejsou napadány příležitostně, ale cíleně a celé týdny. Pro takové případy existuje Advanced DDoS Protection od 50,00 € měsíčně, PrePaid, bez minimální doby trvání a bez zřizovacího poplatku. Rozdíl neleží ve větší kapacitě, ale v kontrole:
- Dedikovaná chráněná IP z frankfurtského jádra, na kterou se váš server ve vlastní síti přepne. Na vaší straně není žádná přestavba nutná, novou adresu jen zapíšete tam, kde vaši hráči server hledají.
- Vlastnoručně spravovatelná ochranná pravidla podle portu a protokolu v zákaznické sekci: určíte, co je povolené na 16261 a 16262 UDP, a všechno ostatní zůstane zavřené, aniž byste k tomu museli psát ticket.
- Změny se projeví v reálném čase, můžete tedy doladit nastavení i během probíhajícího útoku.
- Odpovídající ochranný profil. Pro běžné hry existují hotové profily, pro upravené a vlastní aplikace nastavíte pravidla podle portu a protokolu sami. Project Zomboid se přitom dá vymezit obzvlášť přesně, protože celý herní provoz běží přes dva vedle sebe ležící UDP porty.
Oba stupně ve srovnání
| Vlastnost | Zahrnutá trvalá ochrana proti DDoS | Advanced DDoS Protection |
|---|---|---|
| Cena | obsažena v každém serverovém balíčku, bez příplatku | od 50,00 € měsíčně, PrePaid |
| Filtrační kapacita | 17 Tbps globální scrubbing plus filtrace Arbor v reálném čase s 3,2 Tbps ve Frankfurtu nad Mohanem | stejná dvoustupňová filtrace |
| IP adresa | IP adresa vašeho serveru | navíc dedikovaná chráněná IP |
| Sada pravidel | automatické profily, žádná konfigurace není nutná | vlastní pravidla podle portu a protokolu v zákaznické sekci |
| Změny | probíhají automaticky | projeví se v reálném čase, i během útoku |
| Nullrouting | ne | ne |
| Doba trvání | vázaná na serverový balíček | PrePaid, žádná minimální doba trvání, žádná výpovědní lhůta, žádný zřizovací poplatek |
Většině serverů Project Zomboid stačí zahrnutá trvalá ochrana spolu s čistou konfigurací. Advanced DDoS Protection je odpovědí na to, že si to někdo vzal osobně.
Časté chyby a jejich řešení
„Moji hráči dostávají hlášení, že je port 16262 zavřený“: To není útok, ale chybějící uvolnění. Server potřebuje oba porty, 16261 UDP a 16262 UDP, a to jako pravidlo pro UDP. Uvolnění na TCP se stejnými čísly nezpůsobí nic. Zkontrolujte pomocí ufw status verbose a UDP skenem zvenčí, jestli jsou skutečně otevřené oba.
„Vyměnil jsem IP adresu a dvě hodiny nato jsem byl znovu offline“: Útočník má novou adresu ze stejného zdroje jako tu starou, většinou ze záznamu v seznamu serverů, z Discord bota se stavovým výpisem nebo ze starého DNS záznamu. U Project Zomboid stojí výměna navíc: klienti ukládají data mapy lokálně podle adresy a portu, ve složce podle vzoru 123.45.0.12_16261_... pod Zomboid/Saves. Po výměně si každý hráč prozkoumanou mapu stáhne ze serveru znovu. Výměna adresy je tedy zisk času s dodatečnými náklady, ne řešení.
„Moje pravidla iptables nezabírají“: Časté jsou tři příčiny. Pravidla stojí až za řetězci UFW a nikdy se na ně nedojde, po posledním restartu byla pryč (pak pomůže netfilter-persistent save nebo záznam v /etc/ufw/before.rules), nebo je útok volumetrický a pravidlo pracuje správně na lince, která je už plná. Zkontrolujte pomocí iptables -L INPUT -n -v, jestli stoupají čítače zásahů.
„Hráči vypadávají při připojení, ale server běží normálně dál“: To je téměř vždy srovnávání, ne útok. Příčinou je rozdíl verzí mezi klientem a serverem, chybějící nebo zastaralý záznam z Workshopu nebo kontrolní součet, který nepasuje. Klient obvykle sám vypíše mody, které se neshodují. Srovnejte WorkshopItems a Mods řádek po řádku.
„Každých pár minut lag spiky, potom to zase běží“: To je běžný obraz krátkých útoků, které běží jen tak dlouho, dokud hráči otrávení neskončí. Podívejte se nejdřív na síťové čítače, ne na vytížení CPU. Zůstávají-li sar -n DEV 1 10 a čítače zahozených paketů nenápadné, nebyl to útok, ale zátěž: příliš mnoho hráčů ve stejné buňce, drahý mod nebo příliš málo operační paměti pro instanci Javy.
„Můj dosavadní poskytovatel zablokoval moji IP adresu“: To je nullrouting. Poskytovatel tím chrání vlastní síť, pro vás je výsledek totožný s úspěšným útokem, většinou ještě hodiny poté. V případě pochybností se ptejte, jestli se filtruje, nebo nulluje. Odpověď rozhoduje o vaší dostupnosti víc než jakýkoli údaj o hardwaru.
„V tcpdump nevidím nic nápadného“: Když se provoz filtruje už v síti před serverem, na server podle očekávání nic nedorazí. To je při funkční filtraci normální stav. Naopak platí: je-li linka nasycená, nemusí se k vám dostat ani SSH relace, kterou jste chtěli měřit. Použijte pak VNC konzoli v zákaznické sekci.
Krátké shrnutí
- Dedikovaný server Project Zomboid potřebuje přesně dva otevřené porty: 16261 UDP (
DefaultPort) a 16262 UDP (UDPPort). Oba stojí vservertest.inijako oddělené direktivy. - RCON běží na 27015 TCP a od výrobce je zapsaný bez hesla. Port nepatří do otevřeného internetu, ale má být omezený na vlastní adresu, nebo zavřený.
- Srovnání modů při připojení je nejdražší místo: verze, kontrolní součet, seznam z Workshopu a data mapy stojí výpočetní čas, a to i u každého odmítnutého pokusu. Vestavěnými brzdami jsou proti tomu
DenyLoginOnOverloadedServera fronta na připojení. - Heslo serveru,
Open=falseaMaxAccountsPerUser=1chrání herní logiku. Proti nasycené lince nezabere žádné z těchto nastavení. - Fyzikální hranice je dána: 1 Gbit/s je 125 megabajtů za sekundu a u paketů o velikosti 64 bajtů zhruba 1,49 milionu paketů za sekundu. Běžné útoky proti herním serverům leží mezi 5 a 50 Gbit/s.
- Volumetrické útoky musí skončit v síti před serverem. U KernelHost je to 17 Tbps mitigační kapacity v globální scrubbingové síti a filtrace Arbor v reálném čase s 3,2 Tbps ve Frankfurtu nad Mohanem, bez příplatku a bez nulloutingu.
- Kdo je ostřelován trvale, řídí filtraci sám pomocí Advanced DDoS Protection: dedikovaná chráněná IP, pravidla podle portu a protokolu, změny v reálném čase, od 50,00 € měsíčně.
Běží-li váš server už u KernelHost, je filtrace aktivní, aniž byste museli cokoli dělat. Pokud přesto zaznamenáte nesrovnalosti, otevřete ticket na podporu, aby se filtrační pravidla pro vaši IP adresu doladila. Během probíhajícího útoku nás navíc zastihnete přes nouzový chat na WhatsAppu na čísle +43 650 8209883.
Časté dotazy
Můj server Project Zomboid je právě offline. Je to DDoS útok?
Které porty musím pro server Project Zomboid otevřít?
K čemu je port 16262 a proč mi klient hlásí, že je zavřený?
Potřebuji porty 8766 a 8767?
Je port RCON 27015 u Project Zomboid riziko?
Proč dělá srovnání modů při připojení server zranitelným?
Pomůže teď rychle vyměnit IP adresu?
Můžu se pomocí UFW nebo iptables bránit DDoS útoku?
Od jaké velikosti útoku to můj server sám nezvládne?
Půjde můj server u KernelHost během útoku offline?
Stojí ochrana proti DDoS u KernelHost něco navíc a kdy potřebuji Advanced DDoS Protection?
2026 KernelHost GmbH. Všechna práva vyhrazena. Tento návod je chráněn autorským právem. Jeho zveřejnění na jiných webech, a to i po částech nebo v upravené podobě, není bez našeho písemného souhlasu dovoleno. Citace s uvedením zdroje a odkazem jsou výslovně vítány.

