Ochrana serveru Palworld před DDoS útoky

Publikováno 19 min čtení

Které porty server Palworld skutečně potřebuje, jak zabezpečit query port Steamu 27015, RCON, REST API a 32 míst, a od jaké velikosti útoku pomůže už jen filtrace v síti před serverem.

Server Palworld, který večer uprostřed hry vyhodí všechny hráče naráz, na několik minut jde offline a poté je sám od sebe znovu dosažitelný, má jen zřídka problém s hardwarem. Zpravidla běží útok. Tento článek ukazuje, jak ochránit server Palworld před DDoS útoky: nejprve to, co si bez dalších nákladů nakonfigurujete sami, poté místo, kde tato opatření technicky končí, a nakonec to, co se musí odehrát v síti před serverem, aby server zůstal dosažitelný.

Všechny údaje se vztahují k oficiálnímu dedikovanému serveru od Pocketpairu (Steam App ID 2394010) 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. Pokud útok právě probíhá, platí jedno pořadí: nejdřív měřit, potom měnit. Tvrdý restart pod zátěží zahodí všechno, co se ve světě stalo od posledního automatického uložení, a naměřené hodnoty incidentu jsou poté také pryč.

Proč se servery Palworld cíleně vyřazují DDoS útoky

Server Palworld je malé, pevné publikum na pevné adrese. Dedikovaný server je omezený na 32 hráčů, řídí se to hodnotou ServerPlayerMaxNum s platným rozsahem 1 až 32. Kdo místo toho hostuje přes herní menu, dostane se na čtyři hráče a jen na tak dlouho, dokud je hostitel sám online. Z těch 32 míst vyplývá všechno další: skupina hraje v pevných večerních časech, navzájem se zná, a výpadek ve 20:00 nezasáhne zlomek hráčů, ale všechny.

Adresa serveru přitom není žádné tajemství. Palworld nezná zprostředkování přes službu výrobce: hráči zadávají IP adresu a port do pole pro přímé připojení, a kdo chce server navíc vést v komunitním seznamu serverů, spustí ho s parametrem -publiclobby a nechá query port odpovídat. Každý, kdo byl jednou připojený, tím zná cíl. Booter služba, která tuto adresu za pár eur měsíčně ostřeluje, nevyžaduje od zadavatele ani schopnosti, ani námahu.

Technicky k tomu přistupuje, že celý herní provoz běží přes UDP. UDP nezná navázání spojení, které by se dalo vyžadovat, a zdrojová adresa UDP paketu se dá podvrhnout. Útočník tedy nemusí na server vstoupit ani ho správně oslovit, aby vytvořil zátěž. Co se při takovém útoku technicky děje, vysvětluje článek Co je DDoS útok?.

Porty, o které u serveru Palworld ve skutečnosti jde

Server Palworld potřebuje přesně jeden otevřený port: 8211 UDP. Všechno ostatní je volitelné a podle úlohy dokonce škodlivé, pokud to stojí v internetu. Z toho plyne užitečné rozlišení: DDoS útok na port 8211 zasáhne vždy samotný herní provoz, útok na port 27015 UDP naopak jen záznam v seznamu serverů.

Port Protokol K čemu slouží Výchozí hodnota a direktiva Patří do internetu?
8211 UDP celý herní provoz, navázání spojení a průběžná synchronizace PublicPort=8211, startovací parametr -port=8211 ano, nutně
27015 UDP dotaz Steamu (A2S) pro záznam v komunitním seznamu serverů startovací parametr -queryport=27015 jen se záznamem v seznamu
8212 TCP REST API pro správu, HTTP Basic Auth s pevným uživatelem admin RESTAPIEnabled=False, RESTAPIPort=8212 ne
25575 TCP vzdálené ovládání RCON, Pocketpairem označené jako zastaralé RCONEnabled=False, RCONPort=25575 ne
22 TCP váš přístup SSH ke stroji systémová výchozí hodnota omezeně

Všechny přepínače k tomu stojí v jediném souboru: Pal/Saved/Config/LinuxServer/PalWorldSettings.ini, pod Windows odpovídajícím Pal\Saved\Config\WindowsServer\PalWorldSettings.ini. Začíná řádkem s označením sekce [/Script/Pal.PalGameWorldSettings], poté následuje jediný řádek OptionSettings=(...), který obsahuje veškerá nastavení jako seznam. Zlom řádku uvnitř té závorky učiní celou konfiguraci neplatnou a server tiše spadne zpátky na výchozí hodnoty. Šablonu DefaultPalWorldSettings.ini v serverovém adresáři neupravujete, protože se při každé aktualizaci přepíše.

Server Palworld v číslech

Následující hodnoty jsou základem každého rozhodnutí o filtračních pravidlech a mezích.

Ukazatel Hodnota
Herní port 8211 UDP
Query port 27015 UDP
Port REST API 8212 TCP
Port RCON 25575 TCP, zastaralý
Maximální počet hráčů na dedikovaném serveru 32 (ServerPlayerMaxNum, rozsah 1 až 32)
Maximální počet hráčů bez dedikovaného serveru 4, v kooperaci z herního menu
Operační paměť, oficiální požadavek 16 GB, při plném obsazení spíše 24 až 32 GB
Steam App ID serverového balíčku 2394010
Typická velikost útoku proti projektům herních serverů 5 až 50 Gbit/s
Paketová rychlost, která zaplní linku s 1 Gbit/s zhruba 1,49 milionu paketů za sekundu při velikosti paketu 64 bajtů
Špičkové hodnoty odfiltrované na serverech KernelHost 473,4 Gbit/s při 41,5 milionu paketů za sekundu

Proč je query port 27015 nejcitlivějším místem

Query port odpovídá na stavové dotazy ve formátu Steamu A2S, tedy na stejný dotaz, jaký obsluhují i servery Counter-Strike a ARK. Dotaz A2S_INFO je UDP paket bez spojení o několika desítkách bajtů, odpověď se jménem serveru, světem, počtem hráčů a stavem hry je jeho násobkem. Protože se u UDP dá podvrhnout zdrojová adresa, může útočník oslovovat cizí query porty a větší odpovědi směrovat na svůj skutečný cíl. Váš server pak není obětí, ale zesilovačem, a účet platí jeho přípojka.

Valve proto 8. prosince 2020 doplnilo A2S_INFO o předřazenou výzvu: server nejdřív odpoví pomocí S2C_CHALLENGE, tazatel musí token poslat zpět a tím dokáže, že svou zdrojovou adresu nepodvrhuje. To zesílení zmírní, ale neukončí ho, a proti pouhé záplavě stejnorodých dotazů ze skutečných adres nepůsobí vůbec.

Pro Palworld z toho plyne důležitá výhoda proti Source Engine: herní provoz a serverový dotaz leží na oddělených portech. U Counter-Strike 2 se oba dělí o port 27015, hrubé omezení rychlosti tam vyhodí i vlastní hráče. U Palworldu můžete 27015 UDP tvrdě omezit nebo úplně zavřít, aniž byste se dotkli jediného běžícího herního provozu na 8211 UDP. Kdo záznam v seznamu nepotřebuje, vypustí -publiclobby i query port bez náhrady a vezme tím ze sítě celou útočnou plochu.

Co můžete udělat sami, než utratíte peníze

Následující kroky žádný volumetrický útok nezastaví, to nedokáže žádný software na serveru. Uklidí ale všechno, co leží pod tím: skeny portů, záplavy dotazů, pokusy o převzetí přes správní porty a obsazení všech 32 míst cizími lidmi. To je většina toho, co server Palworld v běžném provozu ruší, a stojí to půl hodiny.

1. Inventura: co na serveru 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:8211 znamená „dosažitelné z celého internetu“, 127.0.0.1:8212 znamená „jen lokálně“ a nepotřebuje žádné pravidlo firewallu. Vedle herního procesu se tam na vyrostlém serveru často objevuje ještě správní panel, webový server pro zobrazení mapy a databáze. Pohled útočníka poskytne sken portů zvenčí:

nmap -Pn -sU -p 8211,27015 VASE.IP.ADRESA.SERVERU
nmap -Pn -p- --min-rate 1000 VASE.IP.ADRESA.SERVERU

2. Otevřít jen to, co Palworld skutečně potřebuje

Dvě povolení stačí a druhé je volitelné. 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 8211/udp comment 'Palworld herní provoz'
ufw allow 27015/udp comment 'Palworld dotaz Steam'
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose

Třetí řádek vynecháte, pokud váš server nemá stát v komunitním seznamu serverů. Vaši hráči se pak dál připojují přes IP adresu a port 8211, server jen zmizí z veřejného seznamu. Úplný návod včetně záchranné cesty stojí v článku Jak nastavit firewall UFW, aniž byste se sami vyzamkli.

3. Vzít RCON na 25575 a REST API na 8212 z internetu

Oba porty jsou správní přístupy s plnou kontrolou nad serverem a oba jsou z výroby vypnuté: RCONEnabled=False a RESTAPIEnabled=False. Kdo je zapne, měl by vědět, co tím zveřejňuje.

REST API na 8212 TCP se ověřuje přes HTTP Basic Auth s pevným uživatelským jménem admin a hodnotou z AdminPassword, a to přes nešifrované HTTP. Správní heslo tím běží při každém jednotlivém dotazu po lince ve zpětně čitelné podobě. RCON na 25575 TCP je stejně tak nešifrovaný textový protokol a Pocketpair ho ve prospěch REST API označil jako zastaralý. Pro nové instalace je REST API správná volba, pro obojí platí stejné pravidlo: ne do otevřené sítě.

RESTAPIEnabled=True
RESTAPIPort=8212
AdminPassword="dlouhá náhodná hodnota"

Dosažitelné rozhraní si uděláte přes přesměrování portu v SSH, poté pracujete lokálně proti 127.0.0.1:8212:

ssh -N -L 8212:127.0.0.1:8212 root@VASE.IP.ADRESA.SERVERU

Nenechávejte AdminPassword nikdy prázdné, prázdné je totiž výchozí nastavení. Hodnota z openssl rand -base64 32 stačí. Totéž platí pro ServerPassword, k tomu hned dál.

4. Omezit query port 27015, aniž byste přišli o záznam v seznamu

Pakety Steamu bez spojení začínají čtyřmi nastavenými bajty (0xffffffff), běžný herní provoz tuto hlavičku nemá. Na to se dá položit omezení rychlosti podle zdrojové adresy, které dotazy přibrzdí a záznam v seznamu zachová. S nftables, načteno přes nft -f:

table inet palworld {
    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
    }
}

Priorita -10 zajistí, že pravidlo zabere před filtračním řetězcem UFW, a @th,64,32 čte první čtyři bajty za hlavičkou UDP. S klasickým iptables dosáhne stejného oddělení srovnání s označením A2S_INFO:

iptables -A INPUT -p udp --dport 27015 \
  -m string --algo bm --hex-string "|ffffffff54536f7572636520456e67696e6520517565727900|" \
  -m hashlimit --hashlimit-name a2sflood --hashlimit-mode srcip \
  --hashlimit-above 10/sec --hashlimit-burst 20 -j DROP

Deset dotazů za sekundu a adresu je velkorysá míra: služba seznamu se obvykle ptá každých několik minut, ne několikrát za sekundu. Důležité je jen to, aby toto pravidlo stálo na 27015 a ne na 8211, jinak zasáhnete vlastní hráče.

5. Omezit paketové rychlosti na 8211 UDP

Na samotném herním portu pomáhá horní mez podle zdrojové adresy proti malým záplavám z několika zdrojů. U Palworldu se tato mez nastavuje poměrně bezpečně, protože současně je připojených nejvýše 32 hráčů a každý z nich zabírá přesně jednu zdrojovou adresu:

iptables -I INPUT -p udp --dport 8211 \
  -m hashlimit --hashlimit-name palworld_udp --hashlimit-mode srcip \
  --hashlimit-above 400/sec --hashlimit-burst 600 -j DROP

To číslo je výchozí hodnota, ne pravda. Plný server s 32 hráči a mnoha základnami vytváří výrazně více paketů než kolo ve čtyřech, 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 dvojnásobek naměřené špičkové hodnoty.

Samotná pravidla iptables jsou po restartu pryč. Na Debianu a Ubuntu se ukládají takto:

apt-get install -y iptables-persistent
netfilter-persistent save

Pod UFW patří taková pravidla navíc do /etc/ufw/before.rules, protože jinak při příštím ufw reload zmizí. Zda se na pravidlo vůbec dojde, ukáže iptables -L INPUT -n -v: zůstávají-li čítače zásahů na nule, nezabírá.

6. Heslo serveru, seznam banů a 32 míst proti vyčerpání slotů

Vyčerpání slotů je nejlevnější útok na server Palworld a nepotřebuje žádnou šířku pásma. Dedikovaný server má nejvýše 32 míst, stačí tedy 32 současných spojení, aby se celá komunita vyzamkla. Volumetrický útok stojí zadavatele peníze, 32 relací ho nestojí nic. To dělá tuto cestu u malých serverů přitažlivější než jakoukoli záplavu.

Palworld nemá vestavěný whitelist. Moderátorskými nástroji jsou kick, ban a heslo serveru, a právě heslo serveru je proti vyčerpání slotů nejúčinnějším jednotlivým opatřením:

ServerPassword="hodnota, kterou zná jen vaše skupina"
ServerPlayerMaxNum=32
bShowPlayerList=True
BanListURL="https://api.palworldgame.com/api/banlist.txt"

ServerPassword je z výroby prázdné, dovnitř se tedy dostane každý, kdo má IP adresu a port. BanListURL standardně ukazuje na seznam spravovaný Pocketpairem a dá se přesměrovat na vlastní textový soubor, pokud chcete vést vlastní blokace projektu. ServerPlayerMaxNum nenastavujte nad 32: vyšší hodnoty nejsou podporované a vrátí se vám to nejpozději při další aktualizaci. A jedno musí být jasné: heslo serveru chrání vaše místa, ne vaši linku. Útočník, který váš server zaplavuje, vůbec nechce vstoupit.

7. Odlehčit sledování spojení a zvětšit vyrovnávací paměti

Tento bod vysvětluje výpadky, které vypadají jako objemový útok, ale nejsou jím. Jádro zakládá pro UDP provoz záznamy ve sledování spojení (conntrack), a při podvržených zdrojových adresách znamená každá adresa nový záznam. Je-li tabulka plná, zahazuje jádro pakety bez rozdílu, útok a vaši hráči letí ven společně 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

Nejúčinnějším krokem je herní provoz vůbec nenechat sledovat, protože Palworld své relace spravuje sám:

table inet raw {
    chain prerouting {
        type filter hook prerouting priority raw; policy accept;
        udp dport { 8211, 27015 } notrack
    }
    chain output {
        type filter hook output priority raw; policy accept;
        udp sport { 8211, 27015 } notrack
    }
}

S iptables zní obdoba iptables -t raw -A PREROUTING -p udp --dport 8211 -j NOTRACK a stejný řádek pro OUTPUT s --sport. Porty potřebují poté výslovné povolení, protože bez sledování už nezabere žádné pravidlo, které kontroluje existující stav. Přicházejí-li pakety rychleji, než je serverový proces vyzvedává, přeteče navíc přijímací vyrovnávací paměť. Pro hráče to vypadá jako ztráta paketů, přestože je linka volná. Doplněk v /etc/sysctl.d/, aktivovaný pomocí sysctl -p:

net.core.rmem_max = 16777216
net.core.rmem_default = 1048576
net.core.netdev_max_backlog = 16384

Zda jsou ty hodnoty 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í.

8. Sbírat naměřené hodnoty, dokud nejde do tuhého

Nejdůležitější krok je 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ě 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
dmesg -T | tail -50
tcpdump -ni eth0 -c 200 "udp port 8211 or udp port 27015"

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. Palworld navíc dodává jednu měřenou hodnotu, kterou nemá žádný jiný nástroj. Je-li REST API aktivované, vrací endpoint s metrikami mimo jiné snímkovou frekvenci serveru, aktuální počet hráčů a dobu běhu:

curl -s -u admin:VASE_ADMIN_HESLO http://127.0.0.1:8212/v1/api/metrics

Toto jediné číslo čistě oddělí dvě nejčastější příčiny. Propadne-li snímková frekvence serveru, zatímco paketové rychlosti zůstávají nenápadné, není to útok, ale zátěž nebo známé narůstání spotřeby paměti serverového procesu. Zůstává-li snímková frekvence stabilní, zatímco příchozí pakety stoupají daleko nad normální hodnotu, jde o útok. Jak vyhodnotit síťové hodnoty v jednotlivostech, 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 odpovídá 125 megabajtům za sekundu, a linka je plná, jakmile někdo pošle více. Útoky proti projektům herních serverů leží obvykle mezi 5 a 50 Gbit/s, tedy na pěti až padesátinásobku vaší linky. Jestli je vaše pravidlo v iptables za tím dobré, pak už nehraje roli, protože pakety vašich hráčů se nedostanou skrz už dřív.

Druhou veličinou je paketová rychlost a udeří často dřív než šířka pásma. U malých paketů o velikosti 64 bajtů se do linky s 1 Gbit/s vejde zhruba 1,49 milionu paketů za sekundu. Běžné jádro serveru jich podle procesoru a síťové karty zpracuje několik set tisíc, než začne zahazovat. Útok, který vaši linku nezaplní ani do třetiny, tedy může váš server přesto 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č“, a u Palworldu se to projevuje nejdřív jako lag spiky a teprve potom jako přetržení spojení.

U serveru Palworld k tomu přistupuje nepříznivý poměr. Plně obsazený server s 32 hráči vytíží jen zlomek linky s 1 Gbit/s. Útok tedy nemusí být velký, aby dosáhl násobku normálního provozu, a právě proto tady stačí i útoky, které by na velké platformě neupadly do oka.

Pro zařazení, jaké velikosti se reálně vyskytují: na serverech KernelHost byl mimo jiné odfiltrován útok s více než 473,4 Gbit/s při více než 41,5 milionu paketů za sekundu na hlasový server a UDP flood s více než 112,2 Gbit/s na herní server. Na to neexistuje žádné lokální nastavení. Volumetrické útoky musí skončit v síti před serverem.

Co proti tomu staví KernelHost

Trvalá ochrana, která je obsažená v každém serverovém balíčku

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. Palworld patří ke hrám s vlastním ochranným profilem, které další tituly 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 Palworld

Některé projekty nejsou napadány příležitostně, ale cíleně a celé týdny. Pro to existuje Advanced DDoS Protection od 50,00 EUR 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á.
  • Vlastnoručně spravovatelná ochranná pravidla podle portu a protokolu v zákaznické sekci: stanovíte odděleně, co je povolené na 8211 UDP a co na 27015 UDP, a nemusíte k tomu 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, například query port přechodně omezit tvrději a herní port nechat nedotčený.
  • Ochranný profil odpovídající hře, pro Palworld stejně jako pro vlastní aplikace na libovolných TCP nebo UDP portech.

Advanced DDoS Protection je určená pro servery, které stojí u KernelHost. Kdo svůj projekt Palworld provozuje momentálně jinde a je trvale napadán, přeloží ho k tomu do KernelHost, potom oba stupně zaberou od zřízení.

Srovnání obou stupňů

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 EUR 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, 8211 UDP odděleně od 27015 UDP
Změny probíhají automaticky projeví se v reálném čase, i během útoku
Herní profil optimalizované profily pro běžné hry, Palworld včetně profil odpovídající hře, i pro vlastní aplikace
Nullrouting ne ne
Aktivace aktivní od zřízení chráněná IP hned po objednání
Doba trvání vázaná na serverový balíček PrePaid, žádná minimální doba trvání, žádný zřizovací poplatek

Většině serverů Palworld 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 u serverů Palworld a jejich řešení

„Zablokoval jsem 27015 a teď server zmizel z komunitního seznamu“: To je očekávané chování, protože query port nese záznam v seznamu. Neblokujte ho paušálně, ale omezte pakety bez spojení podle zdrojové adresy jako v kroku 4. Pokud záznam v seznamu tak jako tak nepotřebujete, nechte port zavřený, vypusťte -publiclobby a dejte svým hráčům IP adresu a port 8211 pro přímé připojení.

„Vyměnil jsem IP adresu a za dvě hodiny jsem byl znovu offline“: Útočník má novou adresu ze stejného zdroje jako tu starou. U Palworldu je to téměř vždy jedna ze tří cest: hráč, který má adresu tak jako tak zapsanou v poli pro přímé připojení, bot na Discordu se stavovým ukazatelem, který ji znovu zveřejní, nebo starý záznam A v DNS, který ukazuje na předchozí adresu. Výměna adresy je zisk času, ne řešení.

„Server má lag spiky, ale linka je klidná“: To je u Palworldu častěji zátěž než útok. Serverový proces si v průběhu běhu zabírá stále více operační paměti, proto plánovaný restart patří k normálnímu provozu a nelze ho chápat jako nouzové řešení. Zkontrolujte snímkovou frekvenci serveru přes endpoint s metrikami a spotřebu paměti procesu. Zůstává-li přitom sar -n DEV 1 10 nenápadný, nebyl to DDoS útok.

„Všech 32 míst je obsazených, ale ve hře není nikoho vidět“: To je vyčerpání slotů a zasahuje herní logiku, ne linku. Nastavte ServerPassword, zablokujte nápadné účty přes seznam banů a omezte pakety podle zdrojové adresy na 8211 UDP.

„REST API bylo několik dní otevřeně dosažitelné“: Pak je vaše správní heslo kompromitované, protože HTTP Basic Auth přes nešifrované HTTP ho při každém dotazu přenáší ve zpětně čitelné podobě. Změňte AdminPassword, zavřete 8212 TCP navenek a k rozhraní se dostávejte už jen přes přesměrování portu v SSH.

„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, zda stoupají čítače zásahů.

„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, zda 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 za určitých okolností dostat ani SSH relace, kterou jste chtěli měřit. Použijte pak VNC konzoli v zákaznické sekci, která funguje nezávisle na síti hostovaného systému.

Stručné shrnutí

  • Server Palworld potřebuje přesně jeden otevřený port: 8211 UDP. Query port 27015 UDP je potřeba jen pro záznam v komunitním seznamu serverů.
  • RCON na 25575 TCP a REST API na 8212 TCP nepatří nikdy do otevřené sítě, protože oba přenášejí své přístupové údaje nešifrovaně. RCON je navíc od Pocketpairu označený jako zastaralý.
  • Protože herní provoz a serverový dotaz leží u Palworldu na oddělených portech, dá se 27015 UDP tvrdě omezit, aniž byste se dotkli běžícího herního provozu na 8211 UDP.
  • Dedikovaný server je omezený na 32 míst, proto je vyčerpání slotů nejlevnějším útokem. Nastavené ServerPassword je proti tomu nejúčinnějším jednotlivým opatřením, protože Palworld nemá vestavěný whitelist.
  • Lokální opatření končí na lince: 1 Gbit/s je 125 megabajtů za sekundu a u paketů o velikosti 64 bajtů se tam vejde zhruba 1,49 milionu paketů za sekundu. Všechno nad tím musí skončit v síti před serverem.
  • U KernelHost je dvoustupňová trvalá ochrana obsažená v každém serverovém balíčku bez příplatku a aktivní od zřízení, bez nullroutingu. Advanced DDoS Protection s dedikovanou chráněnou IP a vlastnoručně spravovatelnými pravidly podle portu začíná na 50,00 EUR měsíčně.

Běží-li váš server Palworld 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 Palworld je právě offline. Jak poznám, jestli jde o DDoS útok?
Podívejte se na paketovou rychlost rozhraní, ne na zátěž procesoru. Pomocí sar -n DEV 1 10 uvidíte pakety a bajty za sekundu, pomocí ip -s link show eth0 čítače zahozených paketů. Stoupají-li příchozí pakety daleko nad normální hodnotu, zatímco serverový proces téměř nepracuje, jde o útok. Palworld dodává druhou zkoušku: je-li REST API aktivované, vrací endpoint s metrikami na portu 8212 snímkovou frekvenci serveru. Propadne-li snímková frekvence, zatímco paketové rychlosti zůstávají nenápadné, je to zátěž a ne útok.
Které porty musím pro server Palworld nechat otevřené?
Přesně jeden: 8211 UDP, nastavený přes PublicPort v souboru PalWorldSettings.ini nebo přes startovací parametr -port. K tomu volitelně 27015 UDP pro dotaz Steamu, a to jen tehdy, když má server stát v komunitním seznamu serverů. Port REST API 8212 TCP a port RCON 25575 TCP do otevřené sítě nepatří, oba jsou z výroby vypnuté. Hráči se i bez záznamu v seznamu kdykoli připojí přes IP adresu a port 8211.
Jaký je u Palworldu rozdíl mezi portem 8211 a portem 27015?
Port 8211 UDP nese celý herní provoz, tedy navázání spojení a průběžnou synchronizaci. Port 27015 UDP odpovídá výhradně na stavové dotazy ve formátu Steamu A2S, ze kterých vzniká záznam v komunitním seznamu serverů. Toto oddělení je výhodou proti Source Engine, kde obojí leží na 27015: u Palworldu můžete query port tvrdě omezit v rychlosti nebo úplně zavřít, aniž byste narušili jediného připojeného hráče na 8211 UDP.
Může být můj server Palworld zneužit jako zesilovač útoku na třetí strany?
Ano, přes query port 27015 UDP. Dotaz A2S_INFO je UDP paket bez spojení o několika desítkách bajtů, odpověď se jménem serveru, světem a počtem hráčů je jeho násobkem, a zdrojová adresa UDP paketu se dá podvrhnout. Valve doplnilo A2S_INFO 8. prosince 2020 o předřazenou výzvu, která to zmírňuje. Účinné proti tomu je omezení rychlosti paketů bez spojení podle zdrojové adresy nebo rezignace na veřejný záznam v seznamu.
Kolik hráčů se vejde na server Palworld a proč je to u DDoS důležité?
Dedikovaný server Palworld pojme nejvýše 32 hráčů, nastavuje se to hodnotou ServerPlayerMaxNum s platným rozsahem 1 až 32. Hostováno přes herní menu jsou to čtyři. Z tohoto malého počtu plyne levný útok: vyčerpání slotů. Kdo naváže 32 současných spojení, vyzamkne celou komunitu, aniž by koupil jediný gigabit šířky pásma. Palworld nemá vestavěný whitelist, proto je proti tomu nastavené ServerPassword nejúčinnějším jednotlivým opatřením.
Jak zabezpečím RCON a REST API svého serveru Palworld?
Tím, že oba porty do internetu vůbec nedáte. REST API na 8212 TCP používá HTTP Basic Auth s pevným uživatelem admin a hodnotou z AdminPassword, a to přes nešifrované HTTP: heslo běží při každém dotazu po lince ve zpětně čitelné podobě. RCON na 25575 TCP je stejně tak nešifrovaný a Pocketpairem označený jako zastaralý. K rozhraní se dostávejte přes přesměrování portu v SSH na 127.0.0.1 a AdminPassword nikdy nenechávejte prázdné.
Pomůže teď rychle vyměnit IP adresu?
Jen krátce. U Palworldu zadávají hráči IP adresu a port sami do pole pro přímé připojení, adresu tedy zná každý, kdo byl kdy připojený. K tomu přistupují boti na Discordu se stavovým ukazatelem, kteří ji znovu zveřejňují, a staré záznamy A v DNS, které ukazují na předchozí adresu. Útočník proto novou adresu většinou do minut až hodin znovu najde. Výměna adresy získá čas, problém ale nevyřeší.
Mohu se pomocí iptables nebo UFW bránit DDoS útoku?
Proti malým útokům a nečistým botům ano, proti volumetrickým útokům ne. Pravidlo firewallu na serveru rozhoduje o paketech, které už po vaší lince proběhly. Je-li linka nasycená, pakety vašich hráčů se nedostanou skrz už dřív, docela nezávisle na tom, jak dobrá je vaše sada pravidel. Smysluplná lokální pravidla přesto zůstávají: zachytí záplavy dotazů na 27015 UDP, paketové záplavy z několika zdrojů na 8211 UDP a pokusy o převzetí na správních portech.
Od jaké velikosti útoku to můj server Palworld už sám nezvládne?
Typický herní server visí na 1 Gbit/s, to odpovídá 125 megabajtům za sekundu. Útoky proti projektům herních serverů leží obvykle mezi 5 a 50 Gbit/s. Stejně důležitá je paketová rychlost: do 1 Gbit/s se při paketech o velikosti 64 bajtů vejde zhruba 1,49 milionu paketů za sekundu, běžné jádro serveru jich zpracuje jen několik set tisíc. U Palworldu k tomu přistupuje, že 32 hráčů vytíží jen zlomek takové linky: útok tedy vůbec nemusí být velký, aby dosáhl násobku normálního provozu.
Půjde můj server Palworld u KernelHost během útoku offline?
Ne. Nepoužívá se žádný nullrouting. Vaše IP adresa zůstává v síti, zahazují se jen škodlivé pakety. Ochrana je postavená dvoustupňově: 17 Tbps mitigační kapacity v globální scrubbingové síti a navíc filtrace Arbor v reálném čase s 3,2 Tbps ve Frankfurtu nad Mohanem. Běží trvale a nemusí na útok teprve reagovat, nejsou tedy žádné minuty na začátku, kdy je server pryč. Palworld patří ke hrám s vlastním ochranným profilem.
Stojí ochrana proti DDoS pro Palworld u KernelHost něco navíc?
Ne. Dvoustupňová trvalá ochrana je u každého serverového balíčku obsažená bez příplatku a aktivní od zřízení. Nemusíte ji objednávat, zapínat ani konfigurovat a za herní server se neplatí žádný příplatek. Většině serverů Palworld tato trvalá ochrana spolu s čistou konfigurací úplně stačí, tedy se zavřenými správními porty, omezeným query portem a nastaveným heslem serveru.
Kdy potřebuji pro Palworld navíc Advanced DDoS Protection?
Když váš server není napadán příležitostně, ale cíleně a celé týdny, a chcete filtraci řídit sami. Dostanete dedikovanou chráněnou IP a ochranná pravidla podle portu a protokolu spravujete sami v zákaznické sekci, tedy 8211 UDP odděleně od 27015 UDP. Změny se projeví v reálném čase, doladit můžete i během probíhajícího útoku. Cena začíná na 50,00 EUR měsíčně, PrePaid, bez minimální doby trvání a bez zřizovacího poplatku. Podmínkou je server u KernelHost.

Palworld Ochrana Palworldu proti DDoS Ochrana herního serveru Port 8211 Port 27015 Dotaz Steamu Vyčerpání slotů Advanced DDoS Protection