Protejarea serverului DayZ împotriva atacurilor DDoS

Publicat pe 24 min de citit

De ce porturi are nevoie în realitate un server DayZ, cum asigurați portul de interogare Steam, BattlEye RCon, coada de conectare și faza de pornire de după repornire, și de la ce dimensiune a atacului mai ajută doar filtrarea în rețeaua din fața serverului.

Un server DayZ care seara, în mijlocul jocului, dă afară toți jucătorii și dispare după aceea minute întregi din browserul de servere are rar o problemă de hardware. De cele mai multe ori este în desfășurare un atac, și anume exact atunci când cei mai mulți jucători sunt online sau când urmează repornirea programată. Cine vrea să își protejeze serverul DayZ împotriva atacurilor DDoS are nevoie de aceea de amândouă: o deschidere curată a porturilor pe server și o filtrare în rețeaua din fața lui. Acest articol arată mai întâi ce puteți asigura singur fără costuri suplimentare, după aceea unde se termină tehnic aceste măsuri și la final ce trebuie să se întâmple atunci în fața serverului.

Toate datele se referă la un server DayZ dedicat propriu, cu serverDZ.cfg, indiferent dacă rulează pe Windows Server sau pe Debian și Ubuntu printr-un strat de compatibilitate. Un program de server nativ pentru Linux, pregătit pentru producție, pentru ramura stable nu este livrat de Bohemia Interactive, iar build-ul experimental pentru Linux acceptă exclusiv clienți experimentali. Comenzile pentru Linux sunt scrise pentru root, ca utilizator normal puneți sudo în față.

Dacă atacul este în desfășurare chiar acum: nu modificați acum nimic în serverDZ.cfg și nu reporniți serverul. O repornire de DayZ încarcă din nou modurile și economia centrală și vă costă câteva minute în care serverul este garantat offline. Salvați mai întâi valorile măsurate (vedeți secțiunea „Jurnalizare”), după atac nu mai există.

De ce serverele DayZ sunt atât de des ținta atacurilor DDoS

DayZ reunește mai multe proprietăți care fac dintr-un server o țintă comodă. În primul rând, un server de comunitate își publică adresa din proprie inițiativă: pentru ca el să apară în browserul de servere al jocului și în DZSA Launcher, trebuie să răspundă la interogările Steam, iar acest răspuns conține adresa IP și portul în clar. Un atacator nu trebuie deci să afle nimic, trebuie doar să citească o listă.

În al doilea rând, programul zilnic al unui server DayZ este public. Practic toate proiectele repornesc automat la fiecare trei sau patru ore, anunță asta printr-un mesaj în chat și scriu planul pe Discord. Un atac care cade exact în această fereastră de timp acționează dublu: serverul oricum nu este accesibil chiar atunci, iar jucătorii care atârnă în zona de așteptare se duc în altă parte.

În al treilea rând, miza pentru jucători este mare. O cădere în minutul nepotrivit înseamnă în DayZ nu doar frustrare, ci echipament pierdut, raiduri întrerupte și o bază care rămâne neprotejată în lume. Exact de aceea jucătorii banați, grupurile rivale și proiectele concurente sunt cei mai frecvenți comanditari. Un atac printr-unul dintre serviciile booter obișnuite nu îl costă pe cel care îl declanșează nici pricepere, nici bani demni de menționat.

În al patrulea rând, tot traficul DayZ circulă prin UDP. UDP nu cunoaște o inițiere de conexiune care ar putea fi pretinsă, iar adresa expeditorului poate fi falsificată. Un atacator nu trebuie deci nici să intre pe serverul dumneavoastră, nici să îl adreseze corect pentru a produce încărcare. Că nici producătorul nu este scutit de asta a arătat februarie 2025: serviciile online ale Bohemia Interactive pentru DayZ și Arma Reforger au stat sub atac DDoS mai bine de o săptămână, confirmat pe 3 februarie 2025 și încă neîncheiat pe 6 februarie 2025, iar serverele de comunitate au fost afectate împreună cu ele. Ce este în detaliu un atac DDoS explică articolul Ce este un atac DDoS?.

Porturile unui server DayZ: tabelul cu datele concrete

Un server DayZ vorbește exclusiv UDP. Nu există un port de joc TCP. Singura valoare care este realmente fixă la DayZ este 2302/UDP ca port de joc, tot restul este configurabil și diferă de la un hoster la altul. Uitați-vă de aceea în propria linie de pornire și în propriul serverDZ.cfg, în loc să vă bazați pe o valoare implicită.

Port Protocol Pentru ce Unde se configurează În internetul deschis
2302 UDP Portul de joc, tot traficul de joc, inclusiv transmiterea vocii -port=2302 în linia de pornire da
2303 până la 2305 UDP Blocul de deasupra portului de joc, pe care motorul îl ocupă în plus rezultă din -port de obicei da
2305 sau 27016 UDP Portul de interogare Steam: intrarea în browserul de servere și în DZSA Launcher steamQueryPort în serverDZ.cfg da, altfel serverul este invizibil
liber ales, uzual 2305 sau 2310 UDP BattlEye RCon pentru instrumente de administrare precum BEC sau DaRT RConPort în BEServer_x64.cfg nu
22 TCP Accesul SSH al sistemului de operare sshd_config numai pentru adresa dumneavoastră
3389 TCP Desktop la distanță pe serverele Windows setare de sistem nu
8080 și 2022 TCP Interfața web și SFTP ale unui panel de joc, aici pe exemplul Pterodactyl configurația panelului nu

Două valori provoacă în mod regulat confuzie, de aceea aici lămurirea. Portul de interogare Steam: configurația de exemplu livrată de Bohemia setează steamQueryPort = 2305;, în timp ce o mare parte a hosterilor folosește 27016/UDP. Ambele valori sunt valabile, decisivă este numai valoarea din fișierul dumneavoastră. Portul BattlEye RCon: aici nu există absolut niciun standard obligatoriu. Regula empirică răspândită este portul de joc plus trei, deci 2305, alți hosteri setează 2310. De la DayZ 1.13, BattlEye evaluează parametrul RConPort din BEServer_x64.cfg în mod fiabil, înainte portul era greu de prevăzut.

Din asta rezultă o capcană care îi lovește pe mulți operatori: nu setați niciodată steamQueryPort și RConPort pe aceeași valoare. Dacă configurația dumneavoastră prevede 2305 pentru interogarea Steam, RCon aparține pe un alt port, de exemplu 2310.

De ce portul de interogare Steam este portul cel mai sensibil

Portul de interogare Steam răspunde la cele trei interogări A2S_INFO, A2S_PLAYERS și A2S_RULES. A2S_INFO livrează numele serverului, harta, numărul de jucători și versiunea, A2S_PLAYERS numele jucătorilor conectați, A2S_RULES variabilele de server setate. Fiecare dintre aceste răspunsuri este vizibil mai mare decât cererea care l-a declanșat, și exact asta face portul periculos în două feluri.

Pentru dumneavoastră, ca țintă, înseamnă: un atacator poate ocupa portul dumneavoastră de interogare cu câțiva byte pe cerere, în timp ce serverul dumneavoastră compune și trimite de fiecare dată un răspuns complet. Pentru terți înseamnă: un atacator poate interoga serverul dumneavoastră cu adresa expeditorului falsificată și poate dirija răspunsurile către ținta lui reală. Serverul dumneavoastră nu este atunci doar victimă, ci și amplificator. Valve a completat de aceea A2S_INFO în decembrie 2020 cu o interogare de tip challenge: serverul răspunde mai întâi cu un număr aleatoriu, pe care cel care întreabă trebuie să îl trimită înapoi. Asta atenuează amplificarea, dar nu o încheie, pentru că nu orice interogare merge pe acest drum.

DayZ are aici o particularitate pe care alte jocuri nu o au: la dumneavoastră întreabă două liste de servere separate, browserul de servere de comunitate integrat și DZSA Launcher, foarte răspândit. Închiderea pur și simplu a portului de interogare nu este de aceea o opțiune, pentru că atunci proiectul dumneavoastră a dispărut din ambele liste, deși conexiunea directă funcționează în continuare. Limitarea în loc de închidere este răspunsul corect.

Ce puteți face singur înainte să dați bani

Această secțiune este cea mai lungă, și asta în mod intenționat. Un server DayZ configurat curat rezistă din propriile forțe la atacuri mici și medii, independent de locul în care se află.

1. Inventar: ce porturi deschide în realitate serverul dumneavoastră DayZ

Înainte să scrieți o singură regulă de firewall, uitați-vă ce oferă serverul dumneavoastră spre exterior. Nu ghiciți, verificați. În Linux:

ss -lnup
ss -lntup

În Windows Server, linia de comandă livrează aceeași imagine:

netstat -ano -p UDP | findstr "2302 2303 2304 2305 27016"

Interesantă este coloana cu adresa locală. 0.0.0.0:2302 înseamnă „accesibil din tot internetul”, 127.0.0.1:2310 înseamnă „numai local” și nu are nevoie de nicio deschidere. După aceea citiți valorile reale direct din fișierele dumneavoastră de configurare, în loc să vă bazați pe un ghid:

grep -iE "steamQueryPort|maxPlayers|password|enableWhitelist|verifySignatures" serverDZ.cfg
grep -iE "RConPort|RestrictRCon" battleye/BEServer_x64.cfg

Perspectiva atacatorului o oferă o scanare de porturi UDP din exterior, executată de pe un alt calculator:

nmap -Pn -sU -p 2302-2310,27015-27020 ADRESA.IP.A.SERVERULUI

2. Deschideți numai ce au nevoie în realitate linia de pornire și serverDZ.cfg

Pentru DayZ sunt suficiente două deschideri spre exterior: blocul portului de joc și portul de interogare. Tot restul este restrâns la adresa dumneavoastră sau nu este publicat deloc. Cu UFW asta arată astfel, și anume exact în această ordine, ca să nu vă blocați singur accesul:

ufw allow 22/tcp comment 'SSH'
ufw allow 2302:2305/udp comment 'DayZ port de joc'
ufw allow 27016/udp comment 'DayZ Steam Query'
ufw allow from 203.0.113.10 to any port 2310 proto udp comment 'BattlEye RCon'
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose

Înlocuiți 203.0.113.10 cu adresa dumneavoastră și 27016 cu valoarea care se află realmente în linia dumneavoastră steamQueryPort. Ghidul complet, inclusiv calea de salvare, îl găsiți la Configurarea firewallului UFW fără să vă blocați singur accesul. Pe un server Windows se aplică același principiu: o regulă de intrare pentru fiecare grup de porturi, desktopul la distanță limitat la adresa proprie, tot restul blocat.

3. Limitați portul de interogare Steam în loc să îl închideți

O limită superioară per adresă sursă separă listele de servere reale de floodurile de interogări. Un browser de servere vă întreabă din secundă în secundă, un atacator din milisecundă în milisecundă:

iptables -I INPUT -p udp --dport 27016 -m hashlimit --hashlimit-name dayz_query --hashlimit-mode srcip --hashlimit-above 10/sec --hashlimit-burst 20 -j DROP
iptables -I INPUT -p udp --dport 2302 -m hashlimit --hashlimit-name dayz_game --hashlimit-mode srcip --hashlimit-above 600/sec --hashlimit-burst 900 -j DROP

Prima regulă elimină interogările Steam de la mai mult de zece pe secundă în mod durabil din aceeași sursă, a doua pachetele de joc de la mai mult de 600 pe secundă. Ambele cifre sunt valori de start, nu adevăruri. Un server plin cu 60 de jucători produce vizibil mai multe pachete decât unul gol, iar cine setează prea strâns își dă afară propriii jucători sau zboară din lista de servere. Măsurați mai întâi o săptămână în funcționare normală.

Regulile pure de iptables dispar după o repornire. În Debian și Ubuntu ele se salvează astfel:

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

Sub UFW, locul unor astfel de reguli este în /etc/ufw/before.rules, deoarece altfel ele dispar la următorul ufw reload. În plus, biblioteca de server Steam cunoaște o frână proprie pentru pachetele fără conexiune: variabila de mediu STEAM_GAMESERVER_RATE_LIMIT_200MS elimină toate pachetele A2S ale unei adrese imediat ce într-o fereastră de 200 de milisecunde sosesc mai multe decât valoarea setată.

Al treilea punct nu costă absolut nimic: dacă botul dumneavoastră de Discord sau pagina proiectului afișează numărul de jucători, nu interogați serverul de la fiecare vizitator, ci stocați rezultatul temporar, la intervale fixe. Astfel, o pagină de stare mult vizitată produce o interogare pe interval în loc de una pe vizitator.

4. Scoateți BattlEye RCon din internetul deschis

BattlEye este componenta anti-cheat a DayZ și se activează în serverDZ.cfg cu BattlEye = 1;. Administrarea la distanță se află însă într-un fișier propriu, BEServer_x64.cfg din directorul BattlEye, lângă BEServer_x64.dll, director pe care linia de pornire îl setează cu -BEpath=:

RConPassword O-PAROLA-LUNGA-ALEATORIE
RConPort 2310
RestrictRCon 0

Trei reguli legate de asta. În primul rând: portul RCon este UDP, nu TCP. O regulă de firewall care spune din greșeală proto tcp nu filtrează nimic și lasă în același timp instrumentele de administrare să lucreze în gol. În al doilea rând: limitați portul la adresele administratorilor dumneavoastră. Cine nu are o adresă fixă lasă portul complet închis din exterior și pornește instrumentul de administrare direct pe server, accesibil prin SSH sau desktop la distanță. În al treilea rând: RestrictRCon 1 limitează comenzile care pot fi executate prin RCon și este setarea corectă imediat ce mai mult de o persoană are acces.

Un port RCon deschis este două lucruri în același timp: o invitație la încercarea de parole și încă un port UDP care poate fi inundat. Amândouă dispar imediat ce deschiderea este valabilă doar pentru o mână de adrese.

5. Coada de conectare, lista albă și epuizarea sloturilor

DayZ nu procesează conexiunile toate în același timp, ci printr-o coadă de așteptare. Cinci valori din serverDZ.cfg o controlează:

maxPlayers = 60;
loginQueueConcurrentPlayers = 5;
loginQueueMaxPlayers = 100;
guaranteedSlots = 10;
maxPing = 200;

loginQueueConcurrentPlayers stabilește câți jucători sunt invitați în același timp (valoare implicită 5), loginQueueMaxPlayers limitează coada însăși (valori uzuale între 100 și 500). Exact aici intervine epuizarea sloturilor: un atacator nu are nevoie de lățime de bandă, are nevoie doar de suficiente conturi sau încercări de conectare pentru a ocupa coada. Jucătorii reali nu mai trec atunci, deși serverul funcționează tehnic ireproșabil. guaranteedSlots rezervă locuri pentru echipa dumneavoastră, ca să puteți intra chiar dumneavoastră pe server exact în această situație.

Împotriva acestui lucru ajută lista albă integrată. Ea se activează cu enableWhitelist = 1; și citește după aceea fișierul profiles/whitelist.txt, cu un Steam64-ID pe linie. Orice ID nelistat este respins la conectare. Fișierul este citit la pornirea serverului, deci modificările au nevoie de o repornire. O password suplimentară în serverDZ.cfg acționează asemănător, dar este mai slabă, pentru că o parolă se dă mai departe, iar un Steam64-ID nu.

Un lucru trebuie să fie clar: o listă albă protejează locurile jucătorilor dumneavoastră, nu conexiunea dumneavoastră. Un atacator care vă inundă serverul nu vrea deloc să intre. Pachetele lui sunt respinse, dar au ajuns totuși, și exact acesta este punctul esențial.

6. Modurile, verificarea semnăturilor și fereastra de timp de după repornire

La DayZ, modurile nu sunt doar o chestiune de confort, ele sunt o parte a suprafeței de atac. Patru setări din serverDZ.cfg trebuie în orice caz stabilite:

verifySignatures = 2;
forceSameBuild = 1;
allowFilePatching = 0;
BattlEye = 1;

verifySignatures = 2 verifică fiecare fișier PBO față de semnătura .bisign corespunzătoare și are nevoie pentru asta de fișierele .bikey potrivite în folderul keys. forceSameBuild = 1 pretinde exact aceeași versiune de joc ca pe server. allowFilePatching = 0 respinge clienții care pornesc cu fișiere de joc modificate. Niciuna dintre aceste setări nu oprește un atac volumetric, dar toate trei închid calea pe care un client manipulat vă scoate serverul din ritm.

Al doilea punct este cel mai important și este aproape întotdeauna trecut cu vederea: faza de pornire. Un server DayZ încarcă la pornire mai întâi lista lui de moduri din linia de pornire și după aceea economia centrală cu toate tabelele de loot. La un server puternic modificat asta înseamnă cu ușurință mai multe minute în care serverul nu răspunde la nicio interogare Steam:

./DayZServer -config=serverDZ.cfg -port=2302 -profiles=./profiles -BEpath=./battleye -mod=@CF;@ModulDvs;@AltModul -cpuCount=4 -dologs -adminlog -netlog -freezecheck

Deoarece practic fiecare proiect repornește la fiecare trei sau patru ore și își anunță pe deasupra acest plan, fereastra de timp este trivial de nimerit pentru un atacator. Trei contramăsuri sunt eficiente și nu costă nimic. Țineți lista de moduri cât se poate de scurtă, fiecare mod suplimentar prelungește exact această fereastră. Puneți orele de repornire pe valori neregulate în loc de ora fixă. Și măsurați o dată cât durează în realitate pornirea dumneavoastră, în loc să estimați: cu timeStampFormat = "Full"; și un logFile setat, durata apare după aceea în jurnal.

7. Urmărirea conexiunilor, bufferele de recepție și parametrii de kernel

Un blocaj adesea trecut cu vederea este urmărirea conexiunilor din kernel. UDP nu cunoaște, ce e drept, conexiuni, dar kernelul creează totuși o intrare pentru fiecare pereche de adresă sursă și adresă destinație. Dacă tabela se umple, serverul elimină și pachete legitime, iar în jurnal apare „nf_conntrack: table full”. Starea și limita superioară le arată:

sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max

Pentru un server de joc pur, soluția curată este să nu lăsați deloc traficul de joc să fie urmărit și, în plus, să măriți bufferele de recepție și coada plăcii de rețea:

iptables -t raw -A PREROUTING -p udp --dport 2302 -j NOTRACK
iptables -t raw -A OUTPUT -p udp --sport 2302 -j NOTRACK
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.rmem_default=1048576
sysctl -w net.core.netdev_max_backlog=5000
sysctl -w net.netfilter.nf_conntrack_max=524288

Atenție: NOTRACK și regulile cu stare se exclud reciproc. Cine scoate portul de joc din urmărire nu mai are voie să folosească pentru acest port nicio regulă cu -m conntrack --ctstate, altfel deschiderea nu mai funcționează. Pentru a rămâne permanente, valorile sysctl aparțin în /etc/sysctl.d/, altfel dispar după următoarea repornire.

8. Adresa dumneavoastră IP se află în browserul de servere

Aici merită sinceritatea în locul iluziilor: adresa IP a unui server DayZ public nu poate fi ținută secretă. O cunoaște fiecare jucător care s-a conectat o dată, browserul de servere o publică, iar DZSA Launcher o stochează temporar. O schimbare de adresă vă câștigă ore, rar zile.

Mai eficiente sunt două obiceiuri. Nu publicați nicăieri suplimentar adresa IP brută, deci nici în postarea fixată de pe Discord, nici pe pagina proiectului. Și faceți ordine în înregistrările dumneavoastră DNS: o înregistrare A uitată, care indică adresa anterioară, face orice schimbare inutilă, și exact din cauza asta eșuează majoritatea schimbărilor. Cine lasă pe vechiul server un serviciu de stare care rulează în continuare dezvăluie noua adresă împreună cu el.

9. Jurnalizare, ca să nu fiți nevoit să ghiciți în timpul atacului

Cel mai important pas este acela pe care aproape nimeni nu îl face dinainte: să creați o bază de comparație cât timp totul funcționează normal. Fără o valoare normală nu puteți spune după un incident dacă 40.000 de pachete pe secundă au fost mult sau pur și simplu sâmbătă seara. Pe partea serverului activați pentru asta jurnalele integrate:

timeStampFormat = "Short";
logAverageFps = 300;
logPlayers = 300;
logFile = "server_console.log";

logAverageFps este la asta valoarea cea mai cinstită pe care o livrează DayZ. Dacă rata de cadre a serverului scade în timp ce numărul de jucători rămâne același, este o problemă de mod sau de economie. Dacă rata de cadre rămâne stabilă în timp ce jucătorii zboară afară, este din cauza rețelei. Pe partea sistemului, măsurătorile rulează permanent cu apt-get install -y vnstat sysstat, iar în timpul unui incident sunt suficiente patru comenzi:

sar -n DEV 1 10
ip -s link show eth0
dmesg -T | tail -50
tcpdump -ni eth0 udp port 2302 -c 200 -q

La tcpdump se aplică regula: limitați întotdeauna cu -c, o captură la încărcare maximă apasă suplimentar un server care oricum este suprasolicitat. Cum evaluați valorile este descris în Recunoașterea unui atac DDoS pe server.

Unde se termină protecția proprie: lățimea de bandă și rata de pachete

Acum partea pe care nu o poate rezolva niciun fișier de configurare. Toate măsurile de până acum rulează pe serverul dumneavoastră, deci la capătul conexiunii. O regulă de firewall decide asupra unui pachet care a trecut deja prin cablu. Îl puteți elimina, dar nu îl puteți face netrimis.

Indicator Valoare Ce înseamnă asta pentru serverul dumneavoastră DayZ
Conexiunea unui server de joc obișnuit 1 Gbit/s 125 de megabyte pe secundă, după aceea conexiunea este plină
Rata de pachete la pachete de 64 de byte circa 1,49 milioane de pachete pe secundă în 1 Gbit/s un kernel de server normal procesează doar câteva sute de mii dintre ele
Dimensiunea uzuală a atacurilor împotriva proiectelor de servere de joc 5 până la 50 Gbit/s de cinci până la cincizeci de ori conexiunea dumneavoastră
Valoarea maximă filtrată pe serverele KernelHost peste 473,4 Gbit/s la peste 41,5 milioane de pachete pe secundă la această ordine de mărime nu mai acționează nicio setare locală
Flood UDP filtrat la KernelHost împotriva unui server de joc peste 112,2 Gbit/s trebuie să se termine în rețeaua din fața serverului
Valoarea implicită maxPlayers în serverDZ.cfg 60 valoarea dumneavoastră normală de pachete pe secundă trebuie să o măsurați, ea este diferită la fiecare proiect

La DayZ, rata de pachete lovește adesea mai devreme decât lățimea de bandă, iar asta are un motiv simplu: traficul de joc este format din multe pachete UDP mici, nu din puține pachete mari. Un atac care nu vă umple conexiunea nici măcar la o treime vă poate deci totuși paraliza serverul, pentru că timpul de calcul se duce pe eliminarea pachetelor. Operatorii trăiesc asta ca „încărcarea nici nu era mare, și totuși toți aveau vârfuri de lag și zburau afară unul după altul”.

Atacurile volumetrice trebuie să se termine în rețeaua din fața serverului. Asta nu este o afirmație despre produs, ci fizică.

Protecție DDoS pentru DayZ: ce opune KernelHost

Protecția permanentă, care rulează pe fiecare server

Protecția DDoS de la KernelHost este construită pe două niveluri și este activă permanent, fără să fie nevoie să activați, să comandați sau să configurați ceva:

  • Nivelul 1: 17 Tbps capacitate de mitigare în rețeaua globală de scrubbing. Atacurile volumetrice sunt curățate aproape de sursa lor, înainte să ajungă la centrul de date.
  • Nivelul 2: filtrare Arbor în timp real de 3,2 Tbps în Frankfurt pe Main. Direct în fața serverului, modelele specifice protocoalelor sunt recunoscute și eliminate, pachet cu pachet.

Două proprietăți sunt decisive. Protecția rulează permanent și nu trebuie să reacționeze abia la un atac, deci nu există minute la început în care serverul lipsește. Și nu se folosește nullrouting: adresa dumneavoastră IP rămâne în rețea, sunt eliminate doar pachetele dăunătoare. Cine scoate adresa IP din rețea obține pentru dumneavoastră același rezultat ca atacatorul. Ce jocuri și protocoale sunt acoperite listează Protecție DDoS în timp real pentru servere de joc.

Advanced DDoS Protection pentru proiectele atacate permanent

Unele proiecte nu sunt atacate ocazional, ci țintit și pe parcursul mai multor săptămâni. Pentru asta există Advanced DDoS Protection de la 50,00 € pe lună, PrePaid și fără durată minimă. Diferența nu stă în mai multă capacitate, ci în control:

  • IP de protecție dedicat din nucleul de la Frankfurt, pe care serverul dumneavoastră este comutat în rețeaua proprie. De partea dumneavoastră nu este nevoie de nicio modificare.
  • Reguli de protecție administrabile de dumneavoastră pe fiecare port și protocol în panoul clientului: setați separat ce este permis pe 2302/UDP, ce pe portul de interogare și ce pe portul RCon. Exact această separare este la DayZ pârghia, deoarece traficul de joc și traficul de interogare arată complet diferit.
  • Modificările se aplică în timp real, deci puteți ajusta în timpul unui atac în curs, în loc să așteptați un tichet.
  • Profil de protecție potrivit jocului, și pentru servere puternic modificate și aplicații proprii pe orice porturi TCP ori UDP.

Cele două niveluri în comparație

Caracteristică Protecția DDoS permanentă inclusă Advanced DDoS Protection
Preț inclusă în fiecare pachet de server, fără cost suplimentar de la 50,00 € pe lună, PrePaid
Capacitate de filtrare 17 Tbps scrubbing global plus filtrare Arbor în timp real de 3,2 Tbps în Frankfurt pe Main aceeași filtrare pe două niveluri
Adresă IP adresa IP a serverului dumneavoastră IP de protecție dedicat suplimentar
Set de reguli profiluri automate, nu este nevoie de configurare reguli proprii pe fiecare port și protocol în panoul clientului
Modificări se aplică automat se aplică în timp real, chiar și în timpul unui atac
Profil de joc profiluri optimizate pentru jocurile uzuale, DayZ inclus profil potrivit jocului, și pentru servere puternic modificate
Nullrouting nu nu
Durată legată de pachetul de server PrePaid, fără durată minimă, fără termen de preaviz, fără taxă de instalare

Pentru majoritatea proiectelor DayZ, protecția permanentă inclusă împreună cu o configurație curată de server este suficientă. Advanced DDoS Protection este răspunsul la situația în care cineva o ia personal. Cine își operează în prezent serverul DayZ în altă parte nu poate adăuga protecția ulterior: ea este parte a rețelei și este valabilă pentru serverele care se află la KernelHost. Calea spre ea este o mutare, nu un produs suplimentar.

Greșeli frecvente și soluții

„Serverul meu a dispărut din DZSA Launcher și din browserul de servere, dar prin conexiune directă intru pe el”: în majoritatea cazurilor acesta nu este un atac, ci portul de interogare. Fie în steamQueryPort se află o altă valoare decât în firewall, fie o limitare de rată prea strânsă elimină interogările listei de servere. Verificați ambele valori una față de alta înainte să bănuiți un atac.

„RCon nu se mai conectează de când am filtrat porturile”: BattlEye RCon funcționează prin UDP. O deschidere cu proto tcp pe același port nu produce nimic. Verificați în plus dacă RConPort și steamQueryPort se află din greșeală pe aceeași valoare.

„Am schimbat adresa IP și două ore mai târziu eram iar offline”: atacatorul a luat noua adresă din aceeași sursă ca pe cea veche, de obicei din browserul de servere, dintr-un bot de stare de pe Discord sau dintr-o înregistrare DNS veche. O schimbare de adresă este un câștig de timp, nu o soluție.

„Atacul vine în fiecare zi exact la repornire”: asta nu este o coincidență. Planul de repornire se află pe Discord și este anunțat în joc, iar în timp ce modurile și economia se încarcă, serverul oricum nu răspunde. O listă de moduri mai scurtă, ore de repornire neregulate și o filtrare care rulează permanent în loc să reacționeze abia la un atac iau acestui model efectul.

„Toți jucătorii au vârfuri de lag, dar rețeaua este liniștită”: atunci nu a fost un atac DDoS. Uitați-vă mai întâi în logAverageFps dacă rata de cadre a serverului a scăzut, iar după aceea în economia centrală și în lista de moduri. Dacă sar -n DEV 1 10 nu arată nimic ieșit din comun, nu este din cauza rețelei.

„Regulile mele de iptables nu se aplică”: trei cauze sunt frecvente. Regulile stau în spatele lanțurilor UFW și nu sunt niciodată atinse, ele au dispărut după ultima repornire (atunci ajută netfilter-persistent save sau o intrare în /etc/ufw/before.rules), sau atacul este volumetric și regula lucrează corect la o conexiune care este deja plină. Verificați cu iptables -L INPUT -n -v dacă contoarele de potriviri cresc. Dacă rămân la zero, regula nu este atinsă.

„Furnizorul meu anterior mi-a blocat adresa IP”: acesta este nullrouting. Furnizorul își protejează astfel propria rețea, pentru dumneavoastră rezultatul este identic cu un atac reușit, de obicei încă pentru ore după el. La nevoie întrebați dacă se filtrează sau se face nullrouting. Răspunsul decide mai mult despre disponibilitatea dumneavoastră decât orice specificație de hardware.

„În tcpdump nu văd nimic ieșit din comun”: dacă traficul este filtrat deja în rețeaua din față, pe server nu ajunge, cum era de așteptat, nimic. Acesta este cazul normal al unei filtrări care funcționează. Invers este valabil: dacă conexiunea este saturată, în anumite situații nu vă mai ajunge nici măcar sesiunea SSH cu care voiați să măsurați. Folosiți atunci consola VNC din panoul clientului, care funcționează independent de rețeaua sistemului invitat.

Pe scurt

  • Un server DayZ are nevoie spre exterior de exact două lucruri: blocul portului de joc de la 2302/UDP și portul de interogare Steam din linia dumneavoastră steamQueryPort. Tot restul trebuie restrâns sau închis.
  • Portul BattlEye RCon nu are un standard obligatoriu, funcționează prin UDP și se setează în BEServer_x64.cfg cu RConPort. El nu are niciodată ce căuta în internetul deschis și niciodată pe aceeași valoare ca portul de interogare.
  • Portul de interogare se limitează în loc să fie închis: cine îl închide dispare din browserul de servere și din DZSA Launcher, deși conexiunea directă funcționează în continuare.
  • Lista albă, guaranteedSlots și coada de conectare protejează locurile jucătorilor dumneavoastră împotriva epuizării sloturilor, dar nu conexiunea dumneavoastră împotriva lățimii de bandă.
  • Cea mai periculoasă fereastră de timp a unui server DayZ este repornirea programată la fiecare trei sau patru ore, deoarece modurile și economia centrală se încarcă minute întregi și momentul este cunoscut public.
  • De la circa 1 Gbit/s volum de atac sau câteva sute de mii de pachete pe secundă decide exclusiv rețeaua din fața serverului, nu mai firewallul dumneavoastră.
  • La KernelHost, protecția permanentă pe două niveluri este inclusă în fiecare pachet de server, fără cost suplimentar și fără nullrouting. Advanced DDoS Protection de la 50,00 € pe lună se adaugă atunci când vreți să controlați singur regulile pe fiecare port.

Dacă proiectul dumneavoastră rulează deja la KernelHost, filtrarea este activă fără să trebuiască să faceți nimic. Dacă observați totuși nereguli, deschideți un tichet de suport, pentru ca regulile de filtrare pentru adresa dumneavoastră IP să fie ajustate. În timpul unui atac în desfășurare ne găsiți suplimentar prin chatul de urgență WhatsApp la +43 650 8209883.

Întrebări frecvente

Serverul meu DayZ este chiar acum offline. Cum recunosc dacă este un atac DDoS?
Uitați-vă la rata de pachete a interfeței, nu la încărcarea procesorului. Cu sar -n DEV 1 10 vedeți pachetele și byte-ii pe secundă, cu ip -s link show eth0 contoarele de pachete eliminate. Dacă pachetele de intrare cresc mult peste valoarea normală, în timp ce serverul însuși abia lucrează, este un atac. Dacă contoarele de rețea rămân fără nimic ieșit din comun și totuși totul se mișcă sacadat, uitați-vă în logAverageFps: dacă rata de cadre a serverului scade la un număr constant de jucători, este din cauza unui mod sau a economiei centrale și nu din cauza rețelei.
De ce porturi are nevoie în realitate un server DayZ?
Spre exterior, exact două lucruri: portul de joc 2302/UDP împreună cu blocul 2303 până la 2305 și portul de interogare Steam, care se află în serverDZ.cfg la steamQueryPort. DayZ vorbește exclusiv UDP, un port de joc TCP nu există. Portul BattlEye RCon din BEServer_x64.cfg, SSH pe 22/TCP, desktopul la distanță pe 3389/TCP și porturile unui panel de joc nu au în schimb ce căuta în internetul deschis, ci sunt limitate la adresele administratorilor dumneavoastră.
Portul de interogare Steam la DayZ este 2305 sau 27016?
Amândouă apar, de aceea trebuie să verificați în loc să ghiciți. Configurația de exemplu livrată de Bohemia Interactive setează steamQueryPort = 2305, în timp ce o mare parte a hosterilor folosește 27016/UDP. Valabilă este numai valoarea care se află în propriul dumneavoastră serverDZ.cfg, și exact acest port trebuie să fie deschis în firewall. Dacă este blocat, serverul dumneavoastră dispare din browserul de servere al jocului și din DZSA Launcher, în timp ce conexiunea directă funcționează în continuare. Asta este luată în mod regulat drept un atac și nu este unul.
Unde setez portul BattlEye RCon și are el ce căuta în internetul deschis?
Portul BattlEye RCon se setează cu linia RConPort în fișierul BEServer_x64.cfg din directorul BattlEye, împreună cu RConPassword și RestrictRCon. O valoare implicită obligatorie nu există: regula empirică răspândită este portul de joc plus trei, deci 2305, alți hosteri setează 2310. De la DayZ 1.13, BattlEye evaluează parametrul în mod fiabil. Portul funcționează prin UDP, nu prin TCP, și are ce căuta numai pe adresele administratorilor dumneavoastră. Aveți grijă să nu aibă aceeași valoare ca steamQueryPort.
Ajută o listă albă în DayZ împotriva unui atac DDoS?
Împotriva epuizării sloturilor da, împotriva atacurilor volumetrice nu. Lista albă se activează cu enableWhitelist = 1 în serverDZ.cfg și citește după aceea fișierul profiles/whitelist.txt, cu un Steam64-ID pe linie, iar modificările se aplică abia după o repornire. Împreună cu guaranteedSlots ea împiedică străinii să ocupe coada de conectare, astfel încât jucătorii reali să nu mai treacă. Un atacator care vă inundă conexiunea nu vrea însă deloc să intre: pachetele lui sunt respinse, dar au ajuns deja. Împotriva acestui lucru ajută numai o filtrare în rețeaua din fața serverului.
De ce vin atacurile pe serverele DayZ adesea exact la repornire?
Pentru că planul de repornire este public, iar fereastra de timp este avantajoasă din punct de vedere tehnic. Practic fiecare proiect DayZ repornește automat la fiecare trei sau patru ore, anunță asta în joc și îl scrie pe Discord. La pornire, serverul încarcă mai întâi lista de moduri din linia de pornire și după aceea economia centrală, iar în acest timp nu răspunde la nicio interogare Steam. Un atac care începe exact atunci prelungește o pauză care oricum este în desfășurare. Liste de moduri mai scurte, ore de repornire neregulate și o filtrare care rulează permanent iau acestui model efectul.
Mă pot apăra cu iptables sau UFW împotriva unui atac DDoS?
Împotriva atacurilor mici și a boturilor neglijente da, împotriva atacurilor volumetrice nu. O regulă de firewall pe server decide asupra pachetelor care au trecut deja prin conexiunea dumneavoastră. Dacă conexiunea este saturată, pachetele jucătorilor dumneavoastră nu mai trec nici înainte de ea, complet independent de cât de bun este setul dumneavoastră de reguli. Utile sunt totuși o limitare de rată per adresă sursă pe portul de interogare, un NOTRACK pentru portul de joc și buffere de recepție mai mari. Atacurile volumetrice trebuie să se termine în rețeaua din fața serverului.
De la ce dimensiune a atacului nu mai face față singur serverul meu DayZ?
Un server de joc obișnuit atârnă de o conexiune de 1 Gbit/s, ceea ce corespunde cu 125 de megabyte pe secundă. Atacurile împotriva proiectelor de servere de joc se situează de obicei între 5 și 50 Gbit/s. La fel de importantă este rata de pachete: într-o conexiune de 1 Gbit/s încap, la pachete de 64 de byte, circa 1,49 milioane de pachete pe secundă, iar un kernel de server normal procesează doar câteva sute de mii dintre ele. Deoarece DayZ trimite multe pachete UDP mici, rata de pachete lovește de obicei mai devreme decât lățimea de bandă: serverul se oprește, deși conexiunea nu este umplută nici măcar la o treime.
Serverul meu DayZ de la KernelHost trece offline în timpul unui atac?
Nu. Nu se folosește nullrouting. Adresa dumneavoastră IP rămâne în rețea, sunt eliminate doar pachetele dăunătoare. Protecția este pe două niveluri: 17 Tbps capacitate de mitigare în rețeaua globală de scrubbing și o filtrare Arbor în timp real de 3,2 Tbps în Frankfurt pe Main. Ea rulează permanent și nu trebuie să reacționeze abia la un atac, deci nu există minute la început în care serverul a dispărut. Pentru încadrare: pe serverele KernelHost au fost filtrate deja atacuri de peste 473,4 Gbit/s la peste 41,5 milioane de pachete pe secundă.
Costă protecția DDoS de la KernelHost în plus și când am nevoie de Advanced DDoS Protection?
Protecția permanentă pe două niveluri este inclusă în fiecare pachet de server fără cost suplimentar și este activă de la punerea în funcțiune, nu trebuie nici să o comandați, nici să o activați. De Advanced DDoS Protection aveți nevoie abia atunci când proiectul dumneavoastră este atacat țintit și pe parcursul mai multor săptămâni și când vreți să controlați singur filtrarea. Primiți un IP de protecție dedicat și administrați singur regulile de protecție pe fiecare port și protocol în panoul clientului, deci separat pentru 2302/UDP, portul de interogare și portul RCon. Modificările se aplică în timp real. Prețul începe de la 50,00 € pe lună, PrePaid, fără durată minimă și fără taxă de instalare.

DayZ Protecție DDoS DayZ Protecție server de joc Port 2302 Port de interogare Steam BattlEye serverDZ.cfg Advanced DDoS Protection