Ochrana serveru MTA:SA před DDoS útoky
Server MTA:SA nabízí tři oddělené služby: hru na 22003 UDP, HTTP server na 22005 TCP a dotaz ASE na 22126 UDP. Který z nich čím zabezpečit, a od jaké velikosti útoku pomůže už jen filtrace v síti před serverem.
Server pro Multi Theft Auto: San Andreas se pod DDoS útokem chová jinak než každý jiný multiplayerový projekt kolem GTA, protože nabízí tři oddělené síťové služby současně: herní provoz na 22003 UDP, plnohodnotný HTTP server na 22005 TCP a dotaz ASE na 22126 UDP. Každou z těch tří služeb lze napadnout samostatně a každá vypadává jinak. Tento článek nejprve ukazuje, co si můžete bez dalších nákladů zabezpečit sami, poté, kde tato opatření končí na fyzice linky, a nakonec, co musí účinná ochrana MTA:SA proti DDoS odvést v síti před serverem.
Pokud útok právě probíhá, je nejdůležitější otázkou, která z těch tří služeb je zasažená. Zůstávají-li hráči připojení, ale při vstupu se jim už nestahují žádné resources, jde o HTTP server na 22005. Zmizí-li server z prohlížeče, zatímco připojení hráči normálně hrají dál, jde o dotaz ASE na 22126. Přetrhnou-li se všechna spojení naráz, je cílem buď 22003, nebo je plná linka. Všechny údaje se vztahují k serveru MTA 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.
Proč se servery MTA:SA tak často stávají cílem DDoS útoků
Projekty MTA:SA jsou pohodlné cíle, protože svou adresu musí zveřejnit samy. Server se v herním prohlížeči objeví jen tehdy, když se přihlásí u master serveru a poté odpovídá na dotazy zvenčí. Seznam obsahuje IP adresu a port v otevřeném textu, předběžný průzkum je tedy pro útočníka zbytečný.
K tomu přistupuje samotná scéna. Německojazyčné a brazilské roleplay servery, drift servery a převody DayZ soupeří o stejnou hráčskou základnu a výpadek v hlavní herní době je maximálně vidět. Zabanovaný hráč, rozhádaný tým nebo konkurenční projekt nepotřebuje ke znehodnocení celého večera ani schopnosti, ani znatelné peníze. Objednatelné útočné služby, ve scéně zvané booter nebo stresser, prodávají za pár eur měsíčně přesně dva výsledky: dostat server MTA na minuty offline, nebo ho lag spiky učinit nehratelným. Co je DDoS útok technicky a jaké druhy útoků existují, vysvětluje článek Co je DDoS útok?.
Technicky to MTA:SA útočníkům usnadňuje na dvou místech více než jiné multiplayerové modifikace. Zaprvé leží dotaz na vlastním UDP portu, který na jediný bajt posílá odpověď o velikosti několika kilobajtů. Zadruhé ke každému serveru MTA patří HTTP server, který vydává klientské soubory všech resources, a to bez přihlášení každému, kdo o ně požádá.
Porty, o které ve skutečnosti jde
Server MTA:SA potřebuje přesně tři porty: 22003 UDP pro hru, 22005 TCP pro interní HTTP server a 22126 UDP pro dotaz ASE. Třetí port není volně nastavitelná hodnota, ale vyplývá pevně z herního portu plus 123. Kdo nastaví serverport na 22010, dostane dotaz na 22133.
| Port | Protokol | K čemu slouží | Direktiva v mtaserver.conf | Musí do otevřené sítě? |
|---|---|---|---|---|
| 22003 | UDP | herní provoz, navázání spojení, synchronizace, přenos hlasu | <serverport>22003</serverport> |
ano |
| 22005 | TCP | interní HTTP server: stahování resources, webadmin, resourcebrowser | <httpport>22005</httpport> |
ano, dokud nejsou stahování přenesená jinam |
| 22126 | UDP | dotaz ASE: prohlížeč serverů, seznam master serveru, stavové stránky, boti na Discordu | vyplývá z <serverport> plus 123 |
jen kvůli záznamu v prohlížeči serverů |
| 22 | TCP | přístup SSH pro provozovatele | není v mtaserver.conf | ne, omezit na vlastní adresu |
| 3306 | TCP | MariaDB nebo MySQL za gamemodem | není v mtaserver.conf | ne, navázat na 127.0.0.1 |
Dvě jemnosti stojí takto v dodávaném souboru mtaserver.conf a pravidelně se přehlížejí. httpport smí mít stejnou číselnou hodnotu jako serverport, protože jeden port je TCP a druhý UDP. A serverip stojí na auto a má tam zůstat: pevně zapsaná hodnota naváže socket ASE přesně na tuto adresu a rozbije záznam v seznamu, jakmile se adresa změní.
Dotazovací protokol ASE a proč je zesilovačem
ASE (All-Seeing Eye) je čistě UDP dotazovací protokol: první bajt paketu určuje odpověď, navázání spojení neexistuje. Server MTA zná pět dotazů a odpovídá na ně na portu 22126:
sje úplný dotaz ASE. Odpověď začíná naEYE1a obsahuje jméno serveru, typ hry, jméno mapy, verzi, stav hesla, počet hráčů, úplný seznam všech pravidel nastavených pomocísetRuleValuea poté každého připojeného hráče se jménem, skóre a pingem. Tato odpověď nemá žádné omezení velikosti.barjsou útlejší dotazy pro herní prohlížeč. Odpověď začíná naEYE2a ve zdrojovém kódu se kvůli fragmentaci odřezává na 1 340 bajtů.xvrací zkrácenou stavovou zprávu,vjen označení verze ASE.
Z toho plyne problém. Dotaz se skládá z jediného bajtu datové části, na drátě tedy z 29 bajtů (20 bajtů hlavičky IP, 8 bajtů hlavičky UDP, 1 bajt datové části). Odpověď se 1 400 bajty datové části je na drátě 1 428 bajtů. Poměr činí zhruba 49násobek, a protože UDP nezná navázání spojení, dá se zdrojová adresa podvrhnout. Útočník tedy může váš server použít jako zesilovač proti třetímu cíli, aniž by kdy vstoupil do vaší hry. U úplného dotazu roste faktor s počtem hráčů a s každým pravidlem, které váš gamemode nastaví.
MTA proti tomu přináší dvě vestavěné brzdy, které je dobré znát, protože vysvětlují, proč některé záplavy působí a jiné ne. Server odpoví na jednu zdrojovou adresu nejvýše na pět dotazů za šest sekund a poté adresu sedm sekund ignoruje. Kromě toho drží odpovědi deset sekund v mezipaměti, místo aby je pro každý dotaz skládal znovu. Počítání podle zdrojové adresy se ale úplně přeskočí, jakmile je v seznamu současně více než 100 různých adres odesílatelů. Přesně to je u rozložené záplavy z botnetu nebo s podvrženými odesílateli normální stav, a proto vestavěná brzda proti vážnému útoku nepomůže.
Co můžete udělat sami, než utratíte peníze
Tento oddíl je nejdelší, a to záměrně. Čistě nakonfigurovaný server MTA ustojí malé a střední útoky vlastními silami, nezávisle na tom, u koho stojí.
1. Inventura: co vlastně naslouchá?
Podívejte se nejdřív, co váš server nabízí navenek. Nehádat, podívat se:
ss -lntup
Očekávatelné jsou tři řádky procesu MTA: 0.0.0.0:22003 na UDP, 0.0.0.0:22005 na TCP a 0.0.0.0:22126 na UDP. Objeví-li se tam navíc databáze na 0.0.0.0:3306, webový server nebo zapomenutá hlasová služba, patří to odstavit. Pohled útočníka poskytne sken portů zvenčí:
nmap -Pn -sU -p 22003,22126 VASE.IP.ADRESA.SERVERU
nmap -Pn -p 22005 VASE.IP.ADRESA.SERVERU
Server k tomu přináší i vlastní příkaz konzole. V serverové konzoli zkontroluje openports, zda jsou všechny tři porty dosažitelné zvenčí.
2. Nechat otevřené jen tři porty, které MTA skutečně potřebuje
S UFW vypadá nosná výchozí konfigurace takto, a to přesně v tomto pořadí, abyste se sami nevyzamkli:
ufw allow 22/tcp comment 'SSH'
ufw allow 22003/udp comment 'MTA hra'
ufw allow 22005/tcp comment 'MTA HTTP'
ufw allow 22126/udp comment 'MTA ASE'
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose
Úplný návod včetně záchranné cesty stojí v článku Nastavení firewallu UFW. U KVM root serverů a dedikovaných serverů od KernelHost se do systému v nouzi dostanete přes VNC konzoli v zákaznické sekci, i když je linka nasycená.
Databáze do otevřené sítě nepatří. Ukazuje-li ss -lntp | grep 3306 hodnotu 0.0.0.0:3306, nastavte v /etc/mysql/mariadb.conf.d/50-server.cnf řádek bind-address = 127.0.0.1 a službu restartujte.
3. Omezit port ASE, aniž byste vypadli ze seznamu serverů
Na rozdíl od SA-MP leží u MTA:SA dotaz na vlastním portu, můžete ho tedy omezit nezávisle na herním provozu. To je největší praktická výhoda této architektury: pravidlo na 22126 nevyhodí ani jednoho hráče.
S nftables ve vlastní tabulce, aby si sada pravidel nelezla do cesty s UFW:
nft add table inet mtaguard
nft add chain inet mtaguard input '{ type filter hook input priority -150 ; policy accept ; }'
nft add rule inet mtaguard input udp dport 22126 meter aseperip '{ ip saddr limit rate over 3/second burst 6 packets }' drop
nft add rule inet mtaguard input udp dport 22126 limit rate over 2000/second burst 500 packets drop
nft list table inet mtaguard
První pravidlo omezuje každou jednotlivou zdrojovou adresu, druhé celý port. Obě dohromady jsou důležitá: rozložená záplava projde mezerou mezi mnoha jednotlivými zdroji, pokud se omezuje jen podle adresy. Hodnoty jsou zvolené těsně, a to je tady obhajitelné, protože skutečný prohlížeč serverů se vašeho serveru ptá jen každých několik sekund. S iptables dosáhne téhož modul hashlimit:
iptables -A INPUT -p udp --dport 22126 -m hashlimit --hashlimit-name mta_ase \
--hashlimit-mode srcip --hashlimit-above 3/sec --hashlimit-burst 6 \
--hashlimit-htable-expire 30000 -j DROP
Pokus port úplně zavřít je úvaha, ne tajný tip: bez ASE váš server zmizí z herního prohlížeče a tím i z přirozeného přísunu nových hráčů. Pokud to přesto chcete, nestačí <ase>0</ase>. Ve zdrojovém kódu visí uvolnění portu na logickém součtu internetového a LAN režimu, socket tedy při <ase>0</ase> zůstává dál otevřený, dokud stojí <donotbroadcastlan>0</donotbroadcastlan>. Kdo chce port skutečně zavřít, nastaví obojí:
<ase>0</ase>
<donotbroadcastlan>1</donotbroadcastlan>
Poctivější cesta pro rostoucí projekt je: port nechat otevřený, omezit rychlost a efekt zesílení držet malý tím, že váš gamemode nezveřejňuje nepotřebná pravidla pomocí setRuleValue. Každé pravidlo stojí v úplném dotazu a zvětšuje odpověď.
4. Odlehčit internímu HTTP serveru
HTTP server na 22005 je u MTA:SA vlastní útočná plocha, protože každý vstupující hráč si tam stahuje veškeré klientské soubory všech běžících resources. U roleplay projektu s vlastními modely je to rychle několik set megabajtů rozdělených do stovek jednotlivých souborů. Vestavěný server je záměrně držený jednoduše: žádná komprese, pevný počet vláken. Několik desítek současných stahování stačí k tomu, aby skuteční hráči celé minuty viseli na obrazovce nahrávání.
Nejúčinnějším opatřením je vzít stahování z herního serveru úplně ven. MTA si soubory k vydání sám připraví, a to v mods/deathmatch/resource-cache/http-client-files. Tuto složku vydáte přes nginx nebo lighttpd a adresu zapíšete do mtaserver.conf:
<httpdownloadurl>http://cdn.ihre-domain.tld/mta</httpdownloadurl>
To přinese dvě věci naráz. Stahování běží přes webový server, který je pro to postavený, a neběží už přes adresu vašeho herního serveru. Leží-li webový server na jiném stroji nebo za sítí pro doručování obsahu, nezasáhne záplava proti stahování už herní provoz. Důležité: je-li externí adresa špatná nebo nedosažitelná, přepne MTA tiše zpátky na interní server.
Zůstává-li interní server v provozu, využijte jeho vlastní meze. V souboru mtaserver.conf:
<httpmaxconnectionsperclient>5</httpmaxconnectionsperclient>
<httpdosthreshold>20</httpdosthreshold>
<http_dos_exclude></http_dos_exclude>
<httpthreadcount>8</httpthreadcount>
httpmaxconnectionsperclient omezuje současná spojení na klienta na 5 v přípustném rozsahu 1 až 8. httpdosthreshold omezuje, kolik spojení smí jedna IP adresa v krátké době navázat, výchozí hodnota je 20. http_dos_exclude z toho vyjímá jednotlivé adresy, například vaši vlastní stavovou stránku. httpthreadcount určuje počet vláken, výchozí hodnota je 8 v rozsahu 1 až 20. Vyšší hodnota pomáhá u mnoha malých souborů, ale stojí výpočetní čas, který pak chybí hernímu provozu.
Myslete kromě toho na to, co všechno se na stejném portu vydává. Resources webadmin a resourcebrowser jsou v dodávané konfiguraci spuštěné a přes 22005 dosažitelné v prohlížeči. Správní rozhraní nepatří nechráněné do otevřené sítě: nastavte v acl.xml čistá práva, zaveďte vlastní účet s dlouhým náhodným heslem a resource zastavte, pokud ho nepotřebujete.
5. Využít vestavěné meze v mtaserver.conf
MTA přináší více ochranných mezí, než většina projektů využívá. Některé stojí pevně ve zdrojovém kódu, jiné v souboru mtaserver.conf. Tato tabulka shrnuje ty, které při útoku hrají roli:
| Mez | Výchozí hodnota | Přípustný rozsah | Působí proti |
|---|---|---|---|
| dotazy ASE na zdrojovou adresu (pevně ve zdrojovém kódu) | 5 za 6 sekund, poté 7 sekund ignorovat | nekonfigurovatelné | jednotlivým zaplavovačům dotazů, ne rozloženým |
| mezipaměť odpovědi ASE (pevně ve zdrojovém kódu) | 10 sekund | nekonfigurovatelné | výpočetní zátěži z opakovaných dotazů |
| připojení na zdrojovou adresu (pevně ve zdrojovém kódu) | 4 za 30 sekund, poté 30 sekund ignorovat | nekonfigurovatelné | záplavám připojení z jednotlivých adres |
httpdosthreshold |
20 | 1 až 100 | záplavám HTTP spojení na jednu adresu |
httpmaxconnectionsperclient |
5 | 1 až 8 | paralelním stahováním jednoho klienta |
httpthreadcount |
8 | 1 až 20 | čekacím frontám při stahování resources |
player_triggered_event_interval |
1000 milisekund | 50 až 5000 | záplavám událostí z klienta |
max_player_triggered_events_per_interval |
100 | 1 až 1000 | záplavám událostí z klienta |
maxplayers |
32 | volný | velikosti úplného dotazu a vyčerpání slotů |
bandwidth_reduction |
medium | none, medium, maximum | odchozí šířce pásma při plném serveru |
Tři nastavení si zaslouží uvědomělé rozhodnutí. maxplayers stojí na 32 a mělo by odpovídat realitě: každý další slot zvětšuje úplný dotaz a zvyšuje počet spojení, která může útočník obsadit. bandwidth_reduction stojí na medium, hodnota maximum znatelně snižuje odchozí zátěž, ale stojí přesnost synchronizace. A <password></password> udělá z vašeho serveru bez námahy uzavřený kruh, zatímco záznam v seznamu zůstává: nejrychlejší nouzová brzda při probíhající záplavě připojení.
6. Rozlišovat záplavy připojení a záplavy událostí
Dva útočné vzory nemíří na linku, ale na herní logiku, a pravidelně se navzájem pletou.
Záplava připojení navazuje v rychlém sledu skutečná spojení, dokud nejsou obsazené všechny sloty nebo dokud server jejich navazování nestíhá. MTA to samo omezuje na čtyři spojení na zdrojovou adresu za 30 sekund a poté adresu 30 sekund ignoruje. Co brzda právě dělá, ukáže příkaz konzole debugjoinflood. Mez působí podle adresy, botnet s tisícem adres jde mimo. Proti tomu pomáhají heslo serveru, whitelist v gamemodu a omezení rychlosti na 22003.
Záplava událostí přichází naopak od už připojených hráčů: upravený klient posílá triggerServerEvent ve smyčce, dokud server nepřestane stíhat výpočetní čas. MTA k tomu z výroby dovoluje 100 událostí na hráče a sekundu a nad tuto hranici vypisuje hlášení o záplavách událostí. Pokud váš gamemode používá mnoho malých událostí, hodnotu zkontrolujte, než ji snížíte: nastavená příliš těsně vyhazuje vaše vlastní hráče.
Nezávisle na tom platí na serverové straně stejné pravidlo jako všude: nikdy se nespoléhejte na hodnoty, které posílá klient, hráče zjišťujte z odesílatele události a omezujte všechno, co spouští databázový dotaz. Jediná neověřená událost, která startuje dotaz, stačí k tomu, aby server zastavila bez jakéhokoli síťového útoku.
7. Seznam serverů, IP adresa a co všechno ještě prozradí
Vaši IP adresu nelze udržet v tajnosti. Zná ji každý hráč, který byl jednou připojený, a záznam v seznamu master serveru ji zveřejňuje tak jako tak. Doména před ní nepomůže: klient jméno jednou přeloží a poté mluví přímo s adresou.
Zkontrolujte místo toho, co vaše adresa prozradí ještě jinak. Typické únikové cesty u projektů MTA jsou staré záznamy A a AAAA v DNS, projektová stránka na stejném stroji, bot na Discordu se stavovým ukazatelem, který veřejně vyčítá dotaz ASE, TLS certifikáty se starými jmény hostitelů a příspěvky ve fóru z počátků. Z toho plyne pravidlo, které se mnoho projektů naučí pozdě: když se přesouváte na chráněnou adresu, vyměňte zároveň i tu starou. Zůstane-li v provozu, stojí v každé databázi skenerů a útok jde mimo ochranu.
Dva záznamy v souboru mtaserver.conf se viditelnosti týkají přímo. <serverip>auto</serverip> zůstává na auto, pokud přesně nevíte, proč ne. A <owner_email_address> patří vyplnit: chybí-li záznam nebo je špatný, může to zhoršit viditelnost v seznamu master serveru.
8. Logovat, abyste v ostrém případě měli data
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ě pátek večer. S apt-get install -y vnstat sysstat běží měření trvale.
Během incidentu nejdřív oddělte ty tři porty od sebe. Tyto čtyři příkazy stačí:
sar -n DEV 1 10
nstat -az | grep -E 'Udp(InDatagrams|InErrors|NoPorts|RcvbufErrors)'
tcpdump -ni eth0 -c 200 -q 'udp port 22126'
ss -tn state established '( dport = :22005 or sport = :22005 )' | wc -l
Vyhodnocení je jednodušší, než vypadá. Stoupají-li chyby vyrovnávací paměti při nízké zátěži CPU, dorazí k vám více provozu, než kolik proces zvládne odpracovat. Běží-li jedno jádro na plný výkon, zatímco provoz vypadá normálně, leží problém v gamemodu, a ne v síti. Ukazuje-li záznam na 22126 mnoho paketů s jediným bajtem datové části, jde o záplavu ASE. Stojí-li počet otevřených spojení na 22005 trvale ve čtyřciferných hodnotách, jde o HTTP server. 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 v jednotlivostech, popisuje článek Jak poznat DDoS útok na serveru.
Samotný protokol serveru leží v logs/server.log, protokol skriptů v logs/scripts.log. Obě cesty stojí v souboru mtaserver.conf a dají se přesměrovat.
Kde tato opatření končí
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 u paketů o velikosti 64 bajtů zhruba 1,49 milionu paketů za sekundu. Útoky proti projektům herních serverů této velikosti leží obvykle mezi 5 a 50 Gbit/s, tedy na pěti až padesátinásobku vaší linky. Jestli je vaše pravidlo v nftables za tím dobré, pak už nehraje roli, protože pakety vašich hráčů se nedostanou skrz už dřív.
Paketová rychlost přitom často udeří dřív než šířka pásma. Běžné jádro serveru zpracuje podle CPU 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č“.
U MTA:SA k tomu přistupuje třetí mez a zabírá nejdřív ze všech. Server čte síťové porty v jediném pracovním vlákně. Záplava dotazů na 22126 toto vlákno zaměstná tak, že synchronizační pakety skutečných hráčů propadnou v přijímací vyrovnávací paměti dávno předtím, než je plná linka. Proces přitom nespadne, jen zpomalí, a hráči vidí gumový efekt. Totéž platí pro HTTP server: dělí se o výpočetní čas s herním provozem.
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 při více než 8,7 milionu paketů za sekundu na herní server. První případ je zhruba 473násobek šířky pásma a asi 28násobek paketové rychlosti, kterou linka s 1 Gbit/s vůbec zvládne přijmout. 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 v ceně každého serveru
Každý server u KernelHost stojí za trvale aktivní, dvoustupňovou filtrací:
- 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ž vůbec dorazí do datacentra ve Frankfurtu nad Mohanem.
- Stupeň 2: filtrace Arbor v reálném čase s 3,2 Tbps přímo na místě ve Frankfurtu nad Mohanem. Bezprostředně před serverem se rozpoznávají vzory specifické pro jednotlivé protokoly a zahazují se paket po paketu.
Rozhodující jsou tři vlastnosti. Ochrana je trvale aktivní, není tedy žádná fáze rozpoznávání, ve které by váš server šel offline. Nepoužívá se žádný nullrouting: napadená adresa zůstává v síti, zahazují se jen škodlivé pakety, zatímco spojení skutečných hráčů běží dál. A nestojí nic navíc, je od zřízení obsažená v každém serverovém balíčku, od KVM root serveru přes herní server až po dedikovaný server. Filtruje se na Layer 3, 4 a 7 na každém TCP nebo UDP portu, tedy současně na 22003 UDP, 22005 TCP a 22126 UDP. Provozuje se to v datacentru maincubes ve Frankfurtu nad Mohanem v Německu. Které hry a protokoly mají vlastní profily, ukazuje č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 zasažené příležitostně, ale cíleně a celé týdny. Pro takový případ 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 z frankfurtského jádra. Váš server se na ni v rámci sítě KernelHost přepne, na vaší straně nic nepřestavujete.
- Vlastnoručně spravovatelná ochranná pravidla podle portu a protokolu v zákaznické sekci. Přesně o to u MTA:SA jde: pro 22003 UDP, 22005 TCP a 22126 UDP nastavíte oddělená pravidla, místo abyste tři velmi rozdílné služby házeli do jednoho pytle.
- Změny se projeví v reálném čase, bez ticketu a bez čekání. Doladit tedy můžete i uprostřed probíhajícího útoku.
- Ochranný profil odpovídající hře. Multi Theft Auto je k dispozici jako vlastní profil, stejně tak webové servery, hlasové servery a vlastní TCP nebo UDP aplikace, které se za tutéž chráněnou adresu vejdou.
Srovnání obou stupňů
| Vlastnost | Zahrnutá trvalá ochrana | Advanced DDoS Protection |
|---|---|---|
| Cena | bez příplatku v každém serverovém balíčku | od 50,00 € měsíčně, PrePaid |
| Aktivace | aktivní od zřízení, není co nastavovat | objednat, obdržet chráněnou IP, server se přepne |
| Filtrační kapacita | 17 Tbps globální scrubbing, k tomu filtrace Arbor v reálném čase s 3,2 Tbps ve Frankfurtu nad Mohanem | stejná infrastruktura, doplněná o vlastní pravidla |
| Adresa | IP serveru z daného balíčku | navíc dedikovaná chráněná IP |
| Správa pravidel | předkonfigurovaná a automatická | vlastnoručně spravovatelná v zákaznické sekci, odděleně podle portu a protokolu |
| Ochranné profily | automatické rozpoznávání vzorů | profil volitelný podle hry, Multi Theft Auto včetně |
| Nullrouting | ne | ne |
| Vhodné pro | běžný případ, i při občasných útocích | projekty ostřelované trvale a cíleně |
| 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ě projektů MTA:SA 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í
„Zablokoval jsem 22126, server přesto není v žádném seznamu, ale dotazy dál přicházejí“: Pak je socket ještě otevřený. Samotné <ase>0</ase> port nezavře, dokud je nastavené <donotbroadcastlan>0</donotbroadcastlan>. Zkontrolujte pomocí ss -lnup | grep 22126, zda tam skutečně už nic nenaslouchá.
„Hráči visí na obrazovce nahrávání, hra sama běží normálně“: To není útok na 22003, ale HTTP server na 22005 na svém limitu. Přeneste stahování přes httpdownloadurl jinam a zkontrolujte httpmaxconnectionsperclient a httpthreadcount.
„Server zmizel z prohlížeče, hráči na něm nic nepoznají“: Pak je zasažený výhradně 22126. Pro připojené hráče je to bez následků, pro přísun nových hráčů ne. Správnou odpovědí je omezení rychlosti na tento jediný port, ne na herní port.
„Vyměnili jsme IP adresu a za dvě hodiny jsme byli znovu offline“: Útočník má novou adresu ze stejného zdroje jako tu starou, většinou ze záznamu v seznamu, z bota na Discordu se stavovým dotazem nebo ze starého záznamu v DNS. Výměna adresy je zisk času, ne řešení.
„Nastavili jsme rate limit 20 paketů za sekundu na adresu na portu 22003“: To je příliš těsně. Už jediný hráč je při aktivní synchronizaci nad tím, a několik hráčů za stejnou NAT adresou se dělí o stejnou kvótu. Vyhazujete tím vlastní hráče. Na 22126 jsou naopak těsné hodnoty bez problému.
„Vyzamkli jsme se firewallem“: Restart nepomůže, protože UFW svá pravidla při startu obnoví. U KernelHost otevřete VNC konzoli v zákaznické sekci a spustíte tam ufw disable. VNC konzole pracuje nezávisle na síti hostovaného systému.
„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.
„Útok prostě vyčkáme“: Útoky, které zaberou, se opakují. Zdokumentujte čas včetně časové zóny, dobu trvání, špičkové hodnoty a zasažený port. Přesně tyto údaje potřebuje i ticket na podporu, aby se filtrace cíleně doladila.
Stručné shrnutí
- Server MTA:SA potřebuje přesně tři porty: 22003 UDP pro hru, 22005 TCP pro interní HTTP server a 22126 UDP pro dotaz ASE. Třetí vyplývá pevně z herního portu plus 123.
- Dotaz ASE leží na vlastním portu, a proto se dá omezit, aniž byste vyzamkli jediného hráče. To je nejdůležitější rozdíl proti SA-MP, kde hra a dotaz dělí stejný port.
- Jediný bajt dotazu na 22126 vytvoří odpověď o velikosti až několika kilobajtů a zdrojová adresa je podvržitelná. Nebrzděný port ASE je tím zároveň cílem i zesilovačem.
- Vestavěné brzdy MTA působí podle zdrojové adresy: pět dotazů za šest sekund, čtyři připojení za 30 sekund. Při více než 100 současných zdrojových adresách se počítání dotazů přeskočí, rozložená záplava tedy projde.
- Interní HTTP server na 22005 je vlastní útočná plocha. Kdo stahování přenese přes
httpdownloadurlna externí webový server, vezme je z herního provozu ven. - Všechno, co běží na serveru, rozhoduje jen o malých útocích. Při 1 Gbit/s je konec u zhruba 1,49 milionu paketů za sekundu, nezávisle na kvalitě vašich pravidel.
- Dvoustupňová trvalá ochrana u KernelHost je obsažená v každém serverovém balíčku bez příplatku a pracuje bez nullroutingu. Kdo chce pravidla podle portu řídit sám, přibere si Advanced DDoS Protection od 50,00 € měsíčně.
Běží-li váš projekt už u KernelHost, je filtrace trvale aktivní a nemusíte nic zapínat. Pokud přesto zaznamenáte nesrovnalosti, otevřete ticket na podporu s časovým rozsahem, portem a pozorovaným chováním, aby se pravidla pro vaši 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. Hostujete-li ještě někde jinde a jste pravidelně zasahováni, je přesun do Frankfurtu nad Mohanem kratší řešení: další kroky pro akutní případ stojí v článku Vážný DDoS útok: co dělat?.
Časté dotazy
Které porty server MTA:SA skutečně potřebuje?
Proč je port ASE 22126 u MTA:SA vlastním rizikem?
Mohu omezit query port, aniž bych vyzamkl své hráče?
Stačí nastavit ase na 0, aby se port zavřel?
Můj server se právě chová nápadně. Která z těch tří služeb je zasažená?
Proč hráči visí na obrazovce nahrávání, přestože server běží?
Chrání mě vestavěná brzda dotazů v MTA?
Stačí firewall na serveru proti DDoS útoku?
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.

