Jak ochránit server Left 4 Dead 2 před DDoS útoky
Které porty server Left 4 Dead 2 skutečně potřebuje, jak zmírníte dotaz A2S na 27015/UDP, aniž byste vyzamkli vlastní hráče, co zvládne systém lobby jako filtr přístupu a od jaké velikosti útoku pomůže už jen filtrace v síti před serverem.
Server Left 4 Dead 2 vypadne jen zřídka v pohodlný okamžik. Vypadne v poslední části kampaně, ve druhém kole zápasu Versus nebo přesně ve chvíli, kdy byl zabanovaný hráč potřetí odmítnut. Kdo je právě ostřelován, nepotřebuje zásadní debatu o síťové technice, ale pořadí kroků. Tento článek nejprve ukazuje, jak ochránit server Left 4 Dead 2 před DDoS útoky, dokud to jde vlastními prostředky, poté, kde tyto možnosti fyzikálně končí, a nakonec, co se musí odehrát v síti před ním.
Všechny údaje se vztahují k dedikovanému serveru (srcds), nainstalovanému přes SteamCMD pod ID aplikace 222860, na Debianu 12, Debianu 13, Ubuntu 22.04 LTS nebo Ubuntu 24.04 LTS. Příkazy jsou psané pro uživatele root, jako běžný uživatel před ně předřaďte sudo. Jeden bod předem, protože určuje pořadí: během probíhajícího útoku neměňte nic naslepo a server nerestartujte, dokud si nezajistíte naměřené hodnoty. Po útoku už budou pryč.
Proč jsou servery Left 4 Dead 2 vděčným cílem DDoS útoků
Rozdíl oproti střílečce se 64 místy leží ve velikosti kola. Kooperativní kampaň má čtyři místa pro přeživší, zápas Versus osm míst pro oba týmy dohromady. Výpadek proto nikdy nezasáhne jednotlivé hráče, ale vždy celou partii: kdo ukončí kampaň ve třetí z pěti částí, zrušil večer všem účastníkům. Právě to činí útok pro zadavatele přitažlivým, protože ho nestojí ani schopnosti, ani znatelné peníze, zatímco na druhé straně zničí hodinu hraní.
K tomu přistupuje stavba. Left 4 Dead 2 běží na Source Engine a server na Source je veřejně nalezitelný podle IP adresy a portu. To je předpoklad, ne omyl: server, který neodpovídá na dotazy, nestojí v žádném seznamu a nenajde ho žádná lobby. Otázka tedy nikdy nezní, jestli útočník vaši adresu zná, ale jen co se stane, když na ni začne střílet. Herní provoz jde přes UDP, a UDP nezná navázání spojení, které by se dalo vyžadovat, k tomu se zdrojové adresy dají podvrhnout. Co se přitom technicky děje, vysvětluje článek Co je DDoS útok?.
Třetí bod je vlastní Left 4 Dead 2 a nemá obdobu u Counter-Strike, Garry's Mod ani Team Fortress 2: většina hráčů nepřichází přes prohlížeč serverů, ale přes systém lobby. Lobby až čtyř hráčů je přes Steam matchmaking zprostředkována dedikovanému serveru, který k tomu obdrží rezervaci. Tento postup je zároveň vaším nejúčinnějším filtrem přístupu a další útočnou plochou. Obojí stojí podrobněji dál v textu.
Porty, o které ve skutečnosti jde
Server Left 4 Dead 2 zabírá přesně jeden UDP port pro všechno, co tvoří hru. Standardem je 27015, určený pomocí -port, případně +hostport ve spouštěcí řádce:
./srcds_run -game left4dead2 -console -nohltv \
-port 27015 \
+ip 203.0.113.10 \
+maxplayers 4 \
+exec server.cfg \
+map c1m1_hotel
| Port a protokol | K čemu slouží | Musí být otevřený navenek |
|---|---|---|
| 27015/UDP | herní provoz a serverový dotaz A2S na stejném portu | Ano, bez tohoto portu není hra |
| 27015/TCP | RCon, pokud je nastavené rcon_password |
Ne, uvolnit jen pro vlastní adresu |
| 27005/UDP | klientský port, vychází od hráče | Ne, na serveru nepotřebuje uvolnění |
| 27020/UDP | SourceTV, jen s -hltv nebo +tv_enable 1 |
Jen pokud skutečně vysíláte |
| 27016, 27017 a další | další instance na stejném stroji | Každou instanci jednotlivě, ne jako rozsah |
| 80/TCP a 443/TCP | rychlé stahování (sv_downloadurl), pokud je na stejném stroji |
Jen pokud tam webový server běží |
| 22/TCP | přístup SSH | Ne, omezit na vlastní adresu |
První řádek této tabulky je jádrem problému. Herní provoz a serverový dotaz se dělí o 27015/UDP, u Left 4 Dead 2 žádný oddělený query port neexistuje. Kdo tento port paušálně zablokuje nebo na něm hrubě omezí rychlost, vyhodí tím zároveň vlastní hráče a dokoná útok za útočníka.
Dotaz A2S je paket o několika desítkách bajtů, odpověď jeho násobkem. U UDP se dá zdrojová adresa podvrhnout, a tím se váš server nestává jen obětí, ale i zesilovačem: útočník se dotazuje cizích herních serverů s adresou svého cíle a jejich odpovědi tam nasměruje. Valve v prosinci 2020 doplnilo A2S_INFO o předřazenou výzvu (S2C_CHALLENGE), kterou musí tazatel poslat zpátky, než odpověď dostane. To reflexi zmírňuje, ale neukončuje, protože starší dotazovací programy jsou obsluhovány dál.
Co můžete udělat sami, než utratíte peníze
Následující část nic nestojí a vyplatí se nezávisle na tom, kde váš server stojí. Volumetrický útok vám neodebere, ale malé a střední útoky nechá vyšumět, a odstraní výpadky, které jsou mylně hlášené jako DDoS útok.
1. Inventura: co skutečně naslouchá
Než napíšete pravidlo, vyjasněte si, které služby jsou dosažitelné. Na vzrostlém serveru Left 4 Dead 2 je jich téměř vždy víc, než se čekalo, protože vedle srcds běží ještě webový server pro kampaně, statistická databáze a někdy druhý server pro Versus:
ss -lntup
Všechno, co je navázané na 127.0.0.1 nebo ::1, nepotřebuje uvolnění. Všechno, co naslouchá na 0.0.0.0 nebo [::], je dosažitelné z internetu. Pohled útočníka poskytne sken portů zvenčí, a ten se podle zkušeností od vlastního očekávání liší:
nmap -Pn -sU -sT -p 27000-27050,80,443,3306 VASE.IP.ADRESA.SERVERU
Pokud je podloží čerstvě postavené nebo si ho chcete projít, popisuje článek Instalace herního serveru pomocí SteamCMD cestu od SteamCMD až k běžícímu srcds.
2. Nechat otevřené jen porty, které srcds skutečně potřebuje
Jeden UDP port navenek, jeden TCP port pro vlastní adresu, víc ne. RCon do otevřeného internetu nepatří, protože kdo má RCon, mění mapu, zabanuje všechny hráče a server zastaví:
ufw allow 27015/udp comment "L4D2 herní port a A2S"
ufw allow from 203.0.113.10 to any port 27015 proto tcp comment "RCON"
ufw allow from 203.0.113.10 to any port 22 proto tcp comment "SSH"
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
Nahraďte 203.0.113.10 svou vlastní adresou. Pokud se pravidelně mění, vede cesta přes přesměrování portu v SSH, a ne přes trvalé uvolnění. Pořadí při zapínání rozhoduje o tom, jestli se sami vyzamknete; stojí včetně cesty zpátky v článku Jak nastavit firewall UFW, aniž byste se sami vyzamkli. Pokud se to přesto stane: KVM root servery a dedikované servery od KernelHost nemají IPMI ani iDRAC, server zastihnete přes VNC konzoli v zákaznické sekci, a ta nevisí na síťovém stacku hostovaného systému.
3. Zmírnit dotaz A2S, aniž byste vypadli z hledání lobby
Tady leží nejdražší chyba v této oblasti. Protože herní provoz a serverový dotaz zabírají stejný port, musí brzda rozlišovat mezi oběma třídami paketů, ne mezi porty.
Podloží Steam Gameserveru k tomu od změn z prosince 2020 přináší vlastní omezení, které se před spuštěním nastavuje jako proměnná prostředí. STEAM_GAMESERVER_RATE_LIMIT_200MS=N zahazuje pakety bez spojení (A2S_INFO, A2S_RULES, A2S_PLAYERS) jedné zdrojové adresy, jakmile jich v okně 200 milisekund dorazí více než N. Valve uvádí 25 až 75 jako použitelné rozmezí, ve výchozím stavu je omezení vypnuté:
export STEAM_GAMESERVER_RATE_LIMIT_200MS=50
./srcds_run -game left4dead2 -console -port 27015 +exec server.cfg +map c1m1_hotel
V jednotce systemd patří stejná hodnota jako Environment=STEAM_GAMESERVER_RATE_LIMIT_200MS=50 do oddílu [Service], jinak je po příštím restartu pryč. Tato brzda zabere jen tehdy, když váš build serveru přináší aktuální podloží Steamworks, a chrání výpočetní čas vašeho serveru, ne vaši linku: pakety už dorazily.
O úroveň níž se dá týž provoz oddělit v jádře. Všechny pakety bez spojení u Source Engine, tedy serverové dotazy i navázání spojení, začínají čtyřmi nastavenými bajty (0xffffffff), provoz už připojených hráčů tuto hlavičku nemá. Na to se dá pomocí nftables položit omezení rychlosti podle zdrojové adresy:
table inet l4d2 {
chain input {
type filter hook input priority -10; policy accept;
udp dport 27015 @th,64,32 0xffffffff \
meter a2sflood { ip saddr limit rate over 10/second burst 20 packets } drop
}
}
Soubor nahrajete pomocí nft -f. Priorita -10 zajistí, že pravidlo zabere před filtrovacím řetězcem UFW, a @th,64,32 čte první čtyři bajty za hlavičkou UDP. Začněte velkoryse a mez přitáhněte teprve tehdy, když legitimní dotazy prokazatelně projdou: váš vlastní záznam v seznamu serverů na tom visí.
4. Využít systém lobby jako filtr přístupu
To je páka, kterou mají jen Left 4 Dead 2 a jeho předchůdce. Server sám rozhoduje, jestli vůbec přijme spojení mimo matchmaking. Určují to čtyři direktivy v souboru server.cfg:
sv_allow_lobby_connect_only 1
sv_search_key "vas-vlastni-klic"
sv_steamgroup "103582791400000000"
sv_steamgroup_exclusive 2
sv_allow_lobby_connect_only 1připouští výhradně připojení z matchmakingové lobby.connect 203.0.113.10:27015ve vývojářské konzoli a pozvánka ze Steamu budou odmítnuty. Hodnota 0 dovoluje obojí.sv_search_keyje volitelný hledací klíč. Server najde přes matchmaking jen ta lobby, ve které je nastavený stejný klíč. Bez tohoto klíče se ve veřejném hledání neobjeví.sv_steamgroupváže server na skupinu na Steamu a nechá ho vystupovat mezi jejími skupinovými servery.sv_steamgroup_exclusivezná tři stupně: 0 připustí každého, 1 se chová jako 0, ale vyžaduje vstup přes lobby, a 2 pustí dál jen členy skupiny a přímý přístup přes IP adresu.
Pro pevnou komunitu je kombinace hledacího klíče a sv_steamgroup_exclusive 2 nejúčinnějším bezplatným filtrem přístupu, jaký hra zná. Veřejný server je použít nemůže, protože server, který nikdo nenajde, je stejně prázdný jako ten, který je offline.
A teď část, kterou reklamní texty rády vynechávají: tyto direktivy chrání vaši herní logiku, ne vaši linku. Útočník, který zaplavuje 27015/UDP, vůbec nechce vstoupit. Jeho pakety budou odmítnuty, ale přesto dorazily, spotřebovaly šířku pásma a stály jeden průchod síťovým stackem. Proti záplavě připojení z jednorázových účtů funguje sv_allow_lobby_connect_only 1 výborně, proti booteru nefunguje vůbec.
5. Rezervace lobby a kdy je sv_force_unreserved lepší volbou
Rezervace lobby je časově omezené obsazení vašeho serveru matchmakingovou lobby. Dokud trvá, platí server pro ostatní lobby za zadaný a sama vyprší až po chvíli. Pro server se čtyřmi místy je to vzácný prostředek: na rozdíl od střílečky s 32 nebo 64 místy stačí velmi málo k tomu, aby se partie zablokovala.
Kdo svůj server neprovozuje přes matchmaking, tuto plochu odebere úplně:
sv_force_unreserved 1
sv_allow_lobby_connect_only 0
sv_force_unreserved 1 způsobí, že server už neodpovídá na žádosti o rezervaci ze systému lobby a odmítá připojení s příznakem rezervace. Totéž nastavení potřebujete ostatně i tehdy, když provozujete pomocí L4DToolZ více než čtyři kooperativní místa, protože jinak obdrží lobby rezervaci, jakmile jsou obsazená první čtyři místa, a zbylá místa zůstanou nedostupná. Odvrácená strana je jednoznačná: vaši hráči se pak dostanou dovnitř jen přes prohlížeč serverů nebo přes connect.
Rozhodněte se vědomě pro jeden ze dvou režimů provozu. Míchanice napůl otevřeného matchmakingu a napůl otevřeného přímého vstupu je varianta, která spojuje obě nevýhody.
6. Zabezpečit RCon
Otevřený port RCon se slabým heslem není problém DDoS, ale převzetí. rcon_password nikdy nenechávejte prázdné a nikdy uhodnutelné, hodnota z openssl rand -base64 32 stačí. Tituly na Source navíc přinášejí brzdu proti pokusům o přihlášení:
rcon_password "ZDE_NAHODNA_HODNOTA"
sv_rcon_minfailures 3
sv_rcon_maxfailures 5
sv_rcon_minfailuretime 30
sv_rcon_banpenalty 1440
Tím se adresa po třech neúspěšných pokusech během 30 sekund zablokuje na jeden den; find sv_rcon v serverové konzoli ukáže, které z těchto proměnných váš build zná. Omezení ve firewallu z kroku 2 přesto zůstává účinnější, protože pokus vůbec nepustí až k aplikaci. Pokud RCon nepotřebujete, nechte heslo prázdné: pak část 27015 na TCP nenaslouchá.
7. Vlastní kampaně přesunout jinam místo rozesílání přes herní port
Vlastní kampaně jsou důvodem, proč se Left 4 Dead 2 po patnácti letech ještě hraje, a zároveň zdrojem zátěže, který u Counter-Strike v této podobě neexistuje. Kampaň je balíček VPK s mapami, modely, texturami a zvuky, tedy násobek toho, co váží jedna soutěžní mapa.
Pohodlnou cestou pro hráče je Steam Workshop: balíček pak přijde ze Steamu, ne z vašeho serveru, a nestojí vás žádnou šířku pásma. Pokud volné soubory rozesíláte sami, patří jejich rozesílání na webový server, a ne na herní port:
sv_allowdownload 1
sv_allowupload 0
sv_downloadurl "https://cdn.example.org/l4d2/"
sv_consistency 1
Soubory pro sv_downloadurl patří na webový server jako archiv bzip2, z mojemapa.bsp se tedy stane mojemapa.bsp.bz2. Bez sv_downloadurl posílá srcds soubory sám přes herní spojení, a pak platí: každý pokus o připojení nového hráče vás stojí plné stažení, každé přerušení uprostřed stahování rovněž. To je vyloženě levný způsob, jak zaplnit linku, a v žádné statistice nevypadá jako útok.
Tři body k tomu, které v praxi bolí. sv_allowupload 0 patří nastavit, protože nahrávání od klienta na server nepotřebujete. Leží-li webový server pro sv_downloadurl na stejném stroji jako hra, dělí se stahování a herní provoz o stejnou linku a stejnou IP adresu, a útok na 443/TCP pak zasáhne i vaši rozehranou partii. A sv_consistency 1 není ochrana proti útokům, ale proti odlišným souborům na klientu; vypnout byste ji měli jen tehdy, když jinak kampaň prokazatelně nestartuje.
8. SourceMod, Metamod a rozšíření
Značná část výpadků hlášených jako DDoS žádným DDoS není. Jsou to pády a špičky zátěže, které vyvolá jediný klient, protože v binárce serveru nebo v některém rozšíření zůstává otevřená mezera. Proti tomu nepomůže šířka pásma, ale péče:
- Metamod:Source a SourceMod držet odpovídající verzi engine. Left 4 Dead 2 dostává aktualizace dál a neodpovídající rozšíření je nejčastějším důvodem pádů hned po aktualizaci.
- Left4DHooks místo vlastních zásahů. Události typické pro L4D2 leží v tomto rozšíření pohromadě. Vlastní zásahy do stejných funkcí jsou nejrychlejší cestou k binárce serveru, která při určitých sledech paketů vypoví.
- L4DToolZ používat jen vědomě. Rozšíření zvedá pevně zabudované meze počtu míst. Každé další místo je další hráč, který vytváří výpočetní zátěž, a ve spojení se systémem lobby potřebuje
sv_force_unreserved 1. - Méně rozšíření. Každý plugin je kód ve stejném procesu. Rozšíření s vlastními webovými službami otevírají další porty a často zveřejňují právě tu adresu, kterou chcete chránit.
Blokace patří ukládat trvale, jinak jsou po restartu pryč. Tituly na Source k tomu znají banid s writeid a addip s writeip a vytvořené soubory se načítají zpátky pomocí exec banned_user.cfg a exec banned_ip.cfg.
9. Odlehčit sledování spojení a přijímací vyrovnávací paměti
Tento bod se často přehlíží a vysvětluje výpadky, které vypadají jako objemový útok, ale nejsou jím. Jádro zakládá pro provoz UDP záznamy ve sledování spojení (conntrack) a při podvržených zdrojových adresách znamená každá adresa nový záznam. Když se tabulka naplní, zahazuje jádro pakety bez rozdílu: útok i vaši hráči vylétnou společně. Stav a horní mez ukáže jeden pohled:
sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max
Nejúčinnějším krokem je herní provoz vůbec nenechat sledovat, protože engine si své sezení spravuje sám:
table inet raw {
chain prerouting {
type filter hook prerouting priority raw; policy accept;
udp dport 27015 notrack
}
chain output {
type filter hook output priority raw; policy accept;
udp sport 27015 notrack
}
}
S iptables je obdobou iptables -t raw -A PREROUTING -p udp --dport 27015 -j NOTRACK a stejný řádek pro OUTPUT s --sport. Port potom potřebuje výslovné uvolnění, protože bez sledování už nezabere žádné pravidlo, které kontroluje existující stav. Pokud pakety přicházejí rychleji, než je srcds odebírá, přeteče navíc přijímací vyrovnávací paměť, a pro hráče to vypadá jako ztráta paketů na volné lince:
net.core.rmem_max = 16777216
net.core.rmem_default = 1048576
net.core.netdev_max_backlog = 16384
Soubor uložíte do /etc/sysctl.d/ a aktivujete pomocí sysctl -p. Jestli jsou hodnoty vůbec potřeba, prozradí jádro samo: stoupá-li UdpRcvbufErrors v nstat -az, pak zabírají. Zůstává-li čítač na nule, úprava nic nezmění. To je rezerva, ne ochrana.
10. Měřit, abyste během útoku nemuseli hádat
Během útoku je nejdůležitější otázka: kolik toho dorazí, na kterém portu, a jde o dotazovací, nebo herní provoz. Čtyři příkazy stačí:
ip -s link show eth0
nstat -az | grep -i udp
sar -n DEV 1 10
tcpdump -ni eth0 -c 200 "udp port 27015 and udp[8:4] = 0xffffffff"
První příkaz spustíte dvakrát s odstupem deseti sekund, pak máte rychlost místo absolutní hodnoty. Poslední řádek ukáže výhradně pakety bez spojení, tedy právě tu třídu, kterou záplava dotazů zneužívá; naplní-li se čítač během sekund, zatímco je připojeno málo lidí, máte svou odpověď. Záznam držte krátký, protože pod zátěží sám stojí výpočetní čas. Jak hodnoty zařadit, stojí v článku Jak poznat DDoS útok na serveru.
Nejdůležitější krok je ovšem ten, který skoro nikdo neudělá předem: založit si srovnávací základnu, dokud všechno běží normálně. Bez normální hodnoty nedokážete po incidentu říct, jestli bylo 40 000 paketů za sekundu hodně, nebo jestli to byl prostě pátek večer s plným serverem Versus.
Kde tato opatření končí
Teď ta poctivá část. Všechno dosud popsané zabere teprve tehdy, když pakety dorazily na vaši síťovou kartu. 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 odpovídá 125 megabajtům za sekundu. Při nejmenší možné velikosti paketu unese tato linka zhruba 1,49 milionu paketů za sekundu, linka 10 Gbit/s zhruba 14,88 milionu. To je fyzikální horní mez, nezávisle na procesoru, jádře a firewallu. Běžné serverové jádro zpracuje podle procesoru a síťové karty několik set tisíc paketů za sekundu, než začne zahazovat. Útok, který vaši linku nezaplní ani do třetiny, tedy může váš server položit, protože výpočetní čas padne na zahazování. Provozovatelé to zažívají jako „vytížení přece vůbec nebylo vysoké, a stejně bylo všechno pryč“.
Proti tomu stojí reálné útoky. Dva příklady z provozu u KernelHost, oba filtrované v reálném čase: UDP flood proti hernímu serveru na 7777/UDP s více než 112,2 Gbit/s a více než 8,7 milionu paketů za sekundu, a dále útok s mnoha vektory proti hlasovému serveru na 9987/UDP s více než 473,4 Gbit/s a více než 41,5 milionu paketů za sekundu. Přepočtěte si to na svou linku: 473,4 Gbit/s je zhruba 470násobek přípojky 1 Gbit/s a stále ještě zhruba 47násobek přípojky 10 Gbit/s.
Proto jsou dvě rozšířené záchranné brzdy neuspokojivé. Nullrouting (blackholing) odebere napadenou IP adresu ze sítě a ukončí sice útok, ale i váš server: pro vaše hráče je výsledek totožný s úspěšným útokem. Reaktivní přesměrování stojí v době přepnutí právě ty minuty, ve kterých se kampaň rozhoduje. Účinná je jen filtrace, která běží trvale v síti před serverem.
Co proti tomu 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, dávno předtím, 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 na vrstvách 3 až 7, paket po paketu.
Rozhodující jsou dvě vlastnosti. Zaprvé běží filtrace trvale, není tedy žádná doba přepnutí, ve které by vaši hráči vylétli. Zadruhé se nepoužívá nullrouting: napadená IP adresa zůstává v síti, zahazují se jen škodlivé pakety. Ochrana je obsažena v každém serverovém balíčku bez příplatku, bez samostatného ochranného balíčku a bez zřizování, a je aktivní od zřízení serveru. Servery stojí v maincubes Premium Datacenter ve Frankfurtu nad Mohanem. 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, s měnícími se vzory a vždy přesně na dohodnutý večer s kampaní. Pro tyto případy existuje Advanced DDoS Protection od 50,00 € měsíčně, PrePaid a bez minimální doby trvání. Rozdíl neleží ve větší kapacitě, ale v kontrole:
- Dedikovaná chráněná IP. Váš server se v naší síti na tuto adresu přepne, přestavba na vaší straně není nutná.
- Vlastnoručně spravovatelná ochranná pravidla podle portu a protokolu. V zákaznické sekci určíte, který port se filtruje kterým profilem, tedy 27015/UDP jinak než webový server, který rozesílá vaše kampaně.
- Změny se projeví v reálném čase, bez ticketu a bez čekání. Můžete tedy doladit nastavení i během probíhajícího útoku.
- Ochranný profil odpovídající dané hře. Pro Left 4 Dead 2 a ostatní tituly na Source stejně jako pro více než 40 dalších her a protokolů, k tomu volné profily TCP a UDP pro upravené servery.
I zde platí model PrePaid: žádná minimální doba trvání, žádná výpovědní lhůta, žádná smlouva a žádný zřizovací poplatek. Když vlna útoků skončí, jednoduše neprodloužíte.
Srovnání obou stupňů
| Vlastnost | Zahrnutá trvalá ochrana | Advanced DDoS Protection |
|---|---|---|
| Cena | obsažena v každém serverovém balíčku, bez příplatku | od 50,00 € měsíčně, PrePaid bez minimální doby trvání |
| Aktivace | aktivní od zřízení serveru, není co nastavovat | objednat, obdržet chráněnou IP, server se přepne |
| Filtrační kapacita | 17 Tbps globální scrubbing, k tomu 3,2 Tbps filtrace Arbor v reálném čase ve Frankfurtu nad Mohanem | stejná dvoustupňová filtrace, k tomu vlastní pravidla |
| IP adresa | IP adresa vašeho serveru | navíc dedikovaná chráněná IP |
| Změna pravidel | spravuje KernelHost, doladění přes ticket | sami v zákaznické sekci, účinné v reálném čase |
| Herní profily | více než 40 her a protokolů, tituly na Source včetně | profil volitelný podle portu, i pro upravené servery |
| Nullrouting během útoku | ne | ne |
| Vhodné pro | každý server, už od první kampaně | trvale a cíleně ostřelované projekty |
Většině projektů Left 4 Dead 2 stačí zahrnutá trvalá ochrana spolu s čistou konfigurací serveru. Advanced DDoS Protection je odpovědí na to, že si to někdo vzal osobně.
Časté chyby a jejich řešení
Server zmizel z hledání lobby, ale běží dál: Většinou byl 27015/UDP paušálně zablokován nebo příliš těsně omezen v rychlosti, a protože herní provoz a dotaz sdílejí stejný port, zasáhne hrubé pravidlo obojí. Pracujte místo toho s porovnáním na pakety bez spojení. Je-li port dosažitelný a server přesto neviditelný, zkontrolujte sv_search_key, sv_steamgroup_exclusive, sv_lan 0 a sv_region 255, a jestli spuštění omylem neproběhlo s -nomaster.
V serverové konzoli stojí neustále „Invalid split packet length“: To není volumetrický útok, ale chybně složený síťový paket, který se posílá v rychlém sledu. Provoz přitom zůstává nepatrný, server se přesto trhá. Zkontrolujte nejdřív, jestli je šířka pásma vůbec nápadná, a uveďte binárku serveru i rozšíření na aktuální stav. Šířka pásma tady nepomůže.
Všichni hráči mají vysoký ping, ale linka není plná: To ukazuje na paketovou rychlost místo na objem. Podívejte se na zahozené pakety v ip -s link show a na čítače UDP v nstat -az. Stojí-li v systémovém protokolu nf_conntrack: table full, vyjměte herní port pomocí notrack.
Pravidlo firewallu je správné a přesto nezabírá: Zkontrolujte pomocí iptables -L INPUT -n -v, zda stoupají čítače zásahů. Zůstávají-li na nule, pravidlo se nedostane ke slovu, protože stojí až za řetězci UFW nebo se po posledním restartu ztratilo. Stoupají-li a nic se nemění, je linka před serverem nasycená, a od té chvíle pomůže jen filtrace v síti.
Server už nepřijímá hráče, přestože jsou místa volná: Většinou visí rezervace lobby. Buď provozujete server důsledně přes matchmaking, nebo nastavíte sv_force_unreserved 1 a necháte své hráče vstupovat přes prohlížeč serverů. U více než čtyř kooperativních míst s L4DToolZ je toto nastavení ostatně povinné.
Noví hráči načítají věčně a linka je při tom plná: Pak srcds rozesílá soubory kampaní sám přes herní port. Nastavte sv_downloadurl na webový server a uložte tam soubory jako archiv bzip2, nebo odkažte své hráče na Steam Workshop.
Útok se po výměně IP adresy zastaví a po jednom až dvou dnech se vrátí: To je běžný stav, protože váš server novou adresu zveřejní sám, jakmile je znovu zaregistrovaný, a zapomenutý DNS záznam nebo Discord bot se zobrazením stavu udělá zbytek. Výměna IP adresy získá hodiny, ne řešení.
Na serveru běží cizí administrátorské příkazy: Žádný DDoS útok, ale kompromitovaný přístup k RCon. Okamžitě změnit heslo a část 27015 na TCP omezit na vlastní adresu.
Stručné shrnutí
- Server Left 4 Dead 2 potřebuje navenek přesně jeden otevřený port: 27015/UDP. Herní provoz a dotaz A2S se o něj dělí, oddělený query port neexistuje.
- 27015/TCP je RCon a patří výhradně na vlastní adresu. Kdo RCon nepotřebuje, nechá
rcon_passwordprázdné. - Systém lobby je nejúčinnějším bezplatným filtrem přístupu, jaký hra zná:
sv_allow_lobby_connect_only 1, vlastnísv_search_keyasv_steamgroup_exclusive 2vyzamknou všechno, co nepřichází přes matchmaking. Filtruje připojení, ne pakety. - Vlastní kampaně patří do Steam Workshopu nebo za
sv_downloadurl, nikdy přes herní port. Jinak každý přerušený pokus o připojení platíte svou šířkou pásma. - Omezení rychlosti musí rozlišovat mezi pakety bez spojení (začínajícími
0xffffffff) a herním provozem. Hrubé pravidlo na 27015/UDP vyhodí vaše vlastní hráče. - Při paketech o velikosti 64 bajtů unese linka 1 Gbit/s zhruba 1,49 milionu paketů za sekundu. Nad tím rozhoduje výhradně síť před serverem, žádné nastavení na serveru samotném.
- U KernelHost filtrují 17 Tbps globálního scrubbingu a filtrace Arbor v reálném čase s 3,2 Tbps ve Frankfurtu nad Mohanem trvale a bez příplatku, bez nullroutingu a bez doby přepnutí.
Běží-li váš projekt už u KernelHost, je filtrace aktivní, aniž byste museli cokoli dělat. Pokud přesto zaznamenáte nesrovnalosti, otevřete ticket na podporu, aby náš tým doladil filtrační pravidla pro vaši IP adresu. Během probíhajícího útoku nás navíc zastihnete přes nouzový chat na WhatsAppu na čísle +43 650 8209883. Uveďte přitom hned čtyři údaje: IP adresu, port, časové rozmezí ve vašem časovém pásmu a co vidíte (hráči vylétávají, server není v hledání lobby, vysoký ping). To ušetří jedno kolo dotazů, a to se počítá, když právě běží kampaň.
Hostujete-li jinde a jste pravidelně ostřelováni, je přesun ke KernelHost kratší cestou než jakékoli další pravidlo na serveru, jehož linka končí dřív. Trvalá ochrana je součástí každého serverového balíčku, ne přídavek, který si objednáte teprve v nouzi.
Časté dotazy
Které porty musím pro server Left 4 Dead 2 nechat otevřené?
Můj server L4D2 se trhá, ale linka je klidná. Je to DDoS útok?
Chrání sv_allow_lobby_connect_only 1 před DDoS útoky?
Můžu na portu 27015 jednoduše omezit rychlost, když je server ostřelován?
Co je rezervace lobby a proč mi blokuje server?
Činí vlastní kampaně můj server zranitelným?
Od jaké velikosti útoku už žádné pravidlo firewallu nepomůže?
Půjde můj server u KernelHost během útoku offline?
Stojí ochrana proti DDoS u KernelHost něco navíc?
Kdy potřebuji navíc 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.

