Protejarea unui server Unturned împotriva atacurilor DDoS
De ce porturi are nevoie cu adevărat un server Unturned, de ce 27017 este de prisos din 2021, cum limitați valul de interogări, floodul de conectări și încărcarea de la pluginuri, și de la ce dimensiune a atacului mai ajută doar filtrarea în rețeaua din fața serverului.
Un server Unturned care seara dispare pentru câteva minute din lista de servere și aruncă în același timp afară toți jucătorii cu o depășire de timp are rar o problemă de hardware. De cele mai multe ori rulează un atac, și anume exact atunci când este cea mai mare activitate. Acest articol arată mai întâi ce puteți securiza singur, fără costuri suplimentare, apoi unde se termină aceste măsuri din motive tehnice și, la final, ce trebuie să se întâmple atunci în rețeaua din fața serverului.
Toate datele se referă la Unturned Dedicated Server (U3DS, App ID SteamCMD 1110390) sub Debian 12, Debian 13, Ubuntu 22.04 LTS sau Ubuntu 24.04 LTS. Comenzile sunt scrise pentru root, ca utilizator obișnuit puneți sudo în față. Dacă atacul este în curs, nu modificați mai întâi nimic în configurație și nu reporniți serverul: salvați valorile măsurate (secțiunea 10), după atac ele nu mai există.
De ce sunt atacate tocmai serverele Unturned
Serverele Unturned sunt atacate deoarece adresa lor este publică, traficul de joc circulă prin UDP și un atac nu cere celui care îl declanșează nici pricepere, nici bani de luat în seamă. Toate trei punctele se aplică aici mai puternic decât la majoritatea celorlalte jocuri.
Un server Unturned public își publică adresa IP de la sine. Trebuie să o facă, altfel nu l-ar găsi nimeni: browserul de servere Steam îl interoghează direct, iar listele terțe precum unturned-servers.net sau BattleMetrics trec adresa IP și portul în clar. unturned-servers.net verifică pentru asta, după propria declarație, la fiecare cinci minute dacă serverul acceptă conexiuni UDP pe portul de server. Pentru un atacator asta nu este un efort, ci un formular.
La asta se adaugă publicul jocului. Unturned este gratuit, bariera de intrare este zero, iar între proiectele de roleplay și cele de supraviețuire există o concurență reală pentru aceiași jucători. Un jucător cu interdicție, un fost administrator jignit sau un proiect vecin nu are nevoie de niciun acces pe serverul dumneavoastră pentru a-l face inutilizabil o oră. Ce este tehnic un atac DDoS și de ce adresele de expeditor falsificate îl fac atât de greu de urmărit explică articolul Ce este un atac DDoS?.
Porturile despre care este vorba în realitate
Un server Unturned ocupă exact două porturi UDP consecutive: valoarea setată în Commands.dat și această valoare plus unu. În configurația implicită sunt 27015 și 27016. Documentația oficială de la Smartly Dressed Games descrie împărțirea astfel: primul port poartă interogările listei de servere, al doilea traficul de joc. Se setează numai primul, al doilea rezultă automat.
Name Serverul meu Unturned
Port 27015
MaxPlayers 24
Map PEI
Mode Normal
Perspective Both
Owner 76561198000000000
Fișierul Commands.dat se află sub U3DS/Servers/<Instanță>/Server/Commands.dat. Formatul lui este neobișnuit și o sursă frecventă de erori: o comandă pe linie, fără semn de egal, valoarea despărțită printr-un spațiu, iar comenzile sunt sensibile la majuscule și minuscule. Liniile care încep cu // sunt comentarii.
Punctul cel mai important pentru firewall este acesta: portul 27017 nu mai este necesar din versiunea 3.21.30.0 din 21 noiembrie 2021. Înainte de asta, un server Unturned cerea trei porturi, deoarece interogarea Steam se afla pe port plus doi. Cu această actualizare, interogarea împarte portul cu serverul însuși, iar al treilea port a dispărut. Ghidurile pentru routere, wikiurile hosterilor și postările din forumuri numesc totuși 27017 până astăzi. Un 27017 deschis nu vă mai aduce niciun avantaj, este pură suprafață de atac.
La fel de important: Unturned nu are un port RCON încorporat. Documentația oficială cunoaște numai intrarea și ieșirea de consolă, care se pot înlocui prin interfața ICommandInputOutput. Orice control la distanță pe care îl vedeți pe un server Unturned provine dintr-un plugin și aduce cu el un port TCP propriu. Acest port trebuie să îl găsiți singur și să îl restrângeți singur, deoarece nimeni nu l-a securizat pentru dumneavoastră.
| Caracteristică | Valoare (implicită) | Protocol | Unde se setează |
|---|---|---|---|
| Portul de interogare (Steam A2S, lista de servere) | 27015 | UDP | Port în Commands.dat |
| Portul de joc | 27016 (portul plus unu) | UDP | nu se poate seta separat |
| Al treilea port, 27017 | nu mai există din 3.21.30.0 (21.11.2021) | niciunul | de închis |
| Al doilea server pe aceeași mașină | 27017, al treilea 27019 | UDP | Port, pas de doi |
| RCON | niciun port încorporat | TCP numai prin plugin | configurația pluginului |
| Adresa de legare | toate interfețele | niciunul | Bind în Commands.dat |
| Pachete pe jucător și pe secundă | 50,0 | UDP | Max_Packets_Per_Second |
| Pingul maxim admis | 750 ms | niciunul | Max_Ping_Milliseconds |
| Rata de conectări pe fereastră de timp | 10 încercări în 40,0 de secunde | niciunul | Rate_Limit_Kick_Threshold |
| Coada de așteptare | 8 locuri, cel mult 64 | niciunul | Queue_Size în Commands.dat |
| Anti-cheat | VAC și BattlEye, amândouă active | niciunul | VAC_Secure, BattlEye_Secure |
| Factorul de amplificare al interogării Steam | 5,5 (US-CERT TA14-017A) | UDP | proprietate a protocolului |
| Rata normală a pachetelor de intrare la 24 de jucători | circa 1.200 de pachete pe secundă | UDP | 24 ori 50 |
| Saturarea unei conexiuni de 1 Gbit/s | 125 MB/s, circa 1,49 mil. de pachete pe secundă la 64 de octeți | niciunul | fizica conexiunii |
| Atacuri filtrate pe serverele KernelHost | 473,4 Gbit/s la 41,5 mil. de pachete pe secundă; flood UDP de 112,2 Gbit/s | UDP | valori măsurate din exploatare |
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 Unturned configurat curat rezistă din propriile forțe atacurilor mici și medii, indiferent la cine se află.
1. Inventar: ce ascultă în realitate
Înainte să scrieți o singură regulă, verificați ce oferă serverul dumneavoastră în exterior. Nu ghiciți, verificați:
ss -lnup
ss -lntp
Prima comandă arată socketurile UDP care ascultă, a doua socketurile TCP. Interesantă este coloana cu adresa locală. 0.0.0.0:27015 și [::]:27015 înseamnă „accesibil din întregul internet”, 127.0.0.1:3306 înseamnă „numai local” și nu are nevoie de nicio regulă de firewall. Pe lângă joc se găsesc acolo frecvent un plugin RCON, un panou web, o bază de date și un vechi server de test pe 27017, pe care nu îl mai folosește nimeni. Perspectiva atacatorului o oferă o scanare de porturi din exterior, pentru Unturned în mod expres cu UDP:
nmap -Pn -sU -p 27000-27050 ADRESA.IP.A.SERVERULUI
nmap -Pn -p- --min-rate 1000 ADRESA.IP.A.SERVERULUI
2. Lăsați deschise numai 27015 și 27016
Pentru Unturned sunt suficiente două permisiuni UDP spre exterior. Pentru jocul în sine nu este nevoie de niciun port TCP: documentația oficială cere expres UDP pentru ambele porturi, iar stratul de rețea al jocului (Steam Networking Sockets, de la o actualizare încoace valoarea implicită) lucrează exclusiv prin UDP. Cine deschide suplimentar TCP urmează un ghid învechit.
ufw allow 22/tcp comment 'SSH'
ufw allow 27015/udp comment 'Unturned interogare'
ufw allow 27016/udp comment 'Unturned joc'
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose
Ordinea este importantă, altfel vă blocați singur accesul. Instrucțiunile complete, inclusiv calea de salvare, se află în Configurarea firewallului UFW fără să vă blocați singur accesul. Dacă operați mai multe instanțe, respectați pasul recomandat de doi (27015, 27017, 27019) și deschideți pentru fiecare instanță exact cele două porturi pe care le ocupă în realitate.
Un panou web, o bază de date sau un plugin RCON nu au ce căuta în rețeaua deschisă. Restrângeți portul respectiv cu ufw allow from 203.0.113.10 to any port 8080 proto tcp la propria dumneavoastră adresă, sau ajungeți la interfață printr-o redirecționare locală prin SSH cu ssh -N -L 8080:127.0.0.1:8080 root@ADRESA.IP.A.SERVERULUI. Baza de date se leagă la 127.0.0.1.
3. Securizați portul de interogare fără să zburați din lista de servere
Portul de interogare este punctul cel mai sensibil al unui server Unturned. Prin el răspunde serverul la interogările Steam A2S_INFO, A2S_PLAYERS și A2S_RULES. Dacă îl blocați complet, serverul dispare din orice listă de servere, chiar dacă rulează impecabil.
Un răspuns A2S este considerabil mai mare decât cererea. US-CERT trece protocolul Steam în prezentarea lui despre atacurile de amplificare prin UDP (TA14-017A) cu un factor de amplificare a lățimii de bandă de 5,5. Concret asta înseamnă: un atacator trimite interogări cu adresa expeditorului falsificată către game servere străine și dirijează răspunsurile, de circa cinci ori și jumătate mai mari, către ținta lui reală. Serverul dumneavoastră nu este atunci victima, ci amplificatorul împotriva unui terț. În sens invers, un val de interogări este suficient pentru a face serverul să dispară din browserul de servere, fără să zboare un singur jucător. Operatorii raportează exact asta: serverul rulează, jucătorii de pe el nu observă nimic, dar nu mai poate fi găsit.
Împotriva valurilor mici de interogări ajută o limită superioară pe adresă sursă. Interogările legitime vin rar: browserul Steam întreabă o dată pe afișare, serviciile de stare la câteva minute.
iptables -I INPUT -p udp --dport 27015 -m hashlimit --hashlimit-name unturned_query --hashlimit-mode srcip --hashlimit-above 10/sec --hashlimit-burst 20 -j DROP
iptables -I INPUT -p udp --dport 27016 -m hashlimit --hashlimit-name unturned_game --hashlimit-mode srcip --hashlimit-above 300/sec --hashlimit-burst 500 -j DROP
Al doilea număr se deduce direct din joc: Unturned limitează un jucător din fabrică la 50 de pachete pe secundă (Max_Packets_Per_Second). 300 de pachete pe secundă și pe adresă sursă lasă deci unei singure conexiuni destul aer, chiar dacă mai mulți jucători stau în spatele aceleiași adrese. Ambele valori sunt valori de pornire, nu adevăruri. Măsurați mai întâi o săptămână de regim normal, altfel vă aruncați afară jucătorii proprii.
Regulile pure de iptables dispar după o repornire. Sub Debian și Ubuntu ele se salvează cu apt-get install -y iptables-persistent și netfilter-persistent save. Sub UFW, astfel de reguli aparțin în /etc/ufw/before.rules, deoarece altfel dispar la următorul ufw reload.
La asta se adaugă un obicei care nu costă nimic: dacă pagina dumneavoastră web sau botul dumneavoastră de Discord afișează numărul de jucători, nu interogați serverul de la fiecare vizitator, ci stocați rezultatul la intervale fixe. O pagină de stare mult vizitată produce altfel o interogare pe vizitator, în loc de una pe interval.
4. Setați limitele încorporate în Config.json
Unturned aduce în Config.json, în același folder Server ca Commands.dat, o secțiune care este pentru apărare mai importantă decât ar sugera numele ei. Valorile implicite sunt:
"Server": {
"VAC_Secure": true,
"BattlEye_Secure": true,
"Max_Ping_Milliseconds": 750,
"Timeout_Queue_Seconds": 15.0,
"Timeout_Game_Seconds": 30.0,
"Max_Packets_Per_Second": 50.0,
"Join_Rate_Limit_Window_Seconds": 40.0,
"Rate_Limit_Kick_Threshold": 10,
"Use_FakeIP": false
}
Max_Packets_Per_Second limitează un jucător conectat la 50 de pachete pe secundă. Join_Rate_Limit_Window_Seconds și Rate_Limit_Kick_Threshold aruncă afară o conexiune care depășește limita mai mult de zece ori în 40 de secunde. VAC_Secure și BattlEye_Secure cer ambele sisteme anti-cheat de partea jucătorului și țin astfel departe cea mai mare parte a clienților de unică folosință.
Un lucru trebuie să fie clar: aceste limite acționează împotriva clienților care se conectează efectiv sau încearcă să o facă. Împotriva unui flood cu adrese de expeditor falsificate ele nu acționează, deoarece acolo nu apare niciodată o sesiune. Ele sunt totuși importante, deoarece opresc cazul individual cel mai frecvent: un singur client manipulat, care supraîncarcă serverul de unul singur. Este rezonabil să lăsați Max_Ping_Milliseconds pe 750; setat mai jos, serverul aruncă afară jumătăți de rundă la fiecare scurtă smucitură de rețea.
5. Degrevați urmărirea conexiunilor
Acest punct este aproape întotdeauna trecut cu vederea și explică întreruperi care arată ca un atac de volum, dar nu sunt. Kernelul creează intrări în urmărirea conexiunilor (conntrack) și pentru traficul UDP, iar la adrese de expeditor falsificate fiecare adresă nouă înseamnă o intrare nouă. Dacă tabelul este plin, kernelul elimină pachete fără deosebire: atacul și jucătorii dumneavoastră zboară afară împreună. În jurnalul de sistem apare atunci nf_conntrack: table full, dropping packet.
sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max
dmesg -T | grep -i conntrack
Pasul cel mai eficient este să nu lăsați traficul Unturned să fie urmărit deloc. Jocul își administrează singur sesiunile și nu are nevoie de nicio urmărire de stare în kernel:
iptables -t raw -A PREROUTING -p udp --dport 27015 -j NOTRACK
iptables -t raw -A PREROUTING -p udp --dport 27016 -j NOTRACK
Aveți grijă ca permisiunile dumneavoastră pentru aceste două porturi să nu mai treacă după aceea prin ESTABLISHED,RELATED, ci să stea ca reguli de acceptare proprii. Abia după asta merită să măriți nf_conntrack_max. Cine mărește mai întâi tabelul doar amână problema cu câteva minute și consumă pentru asta memorie de lucru.
Dacă pachetele sosesc mai repede decât le preia procesul serverului, se umple suplimentar bufferul de recepție al socketului. Pentru jucători asta arată ca pierdere de pachete, deși conexiunea este liberă:
net.core.rmem_max = 16777216
net.core.rmem_default = 1048576
net.core.netdev_max_backlog = 16384
Puneți valorile sub /etc/sysctl.d/ și activați-le cu sysctl --system. Dacă sunt necesare vă spune kernelul: dacă UdpRcvbufErrors crește în nstat -az sau dacă în ss -lunp stă permanent ceva în coada de recepție, atunci ele acționează. Dacă amândouă rămân la zero, ajustarea nu schimbă nimic. Asta este rezervă, nu protecție.
6. Flood de conectări, coada de așteptare și lista albă
Un flood de conectări este un atac în care atacatorul folosește calea obișnuită de conectare pentru a consuma sloturi și timp de calcul, în loc să umple conexiunea. Unturned aduce împotriva lui patru instrumente, toate aflate în Commands.dat:
Queue_Size 32stabilește coada de așteptare. Valoarea implicită este de 8 locuri, maximul este 64. O coadă prea mare ajută un atacator, una prea mică aruncă jucătorii reali la fiecare repornire.Whitelistedcomută serverul pe listă de acces. Înscrierea se face din consolă cupermit <SteamID64>, ștergerea cuunpermit <SteamID64>.Password ParolaDvsexclude tot ce are adresa numai dintr-o listă.Filterrespinge jucătorii cu caractere nepermise în nume, iarMaxPlayers 24ține numărul de sloturi la ce suportă cu adevărat hardwareul.
O listă albă vă protejează logica jocului, nu conexiunea. Un atacator care vă inundă serverul nu vrea deloc să se conecteze. Pachetele lui sunt respinse, dar au sosit totuși, și exact aceasta este chestiunea.
7. RocketMod, OpenMod și partea pluginurilor
Unturned are două platforme de pluginuri răspândite, și amândouă rulează în același proces ca serverul. RocketMod este cea mai veche: întreținătorii inițiali au încetat îngrijirea pe 20 decembrie 2019 și au pus codul sursă sub licența MIT. Smartly Dressed Games întreține de atunci derivatul Legally Distinct Missile (LDM), care este deja livrat împreună cu serverul dedicat: se copiază Rocket.Unturned din folderul Extras în folderul Modules. Dezvoltatorii recomandă expres derivatul, deoarece el remediază probleme vechi de Rocket, precum erorile de threading și exploiturile de teleportare.
OpenMod este succesorul mai nou, dezvoltat de unul dintre întreținătorii inițiali de Rocket. El nu înlocuiește RocketMod, ci rulează alături de el și poate folosi pluginurile Rocket existente printr-o integrare. Pentru apărare asta înseamnă două lucruri.
În primul rând: fiecare plugin este suprafață de atac în procesul principal. Un plugin care declanșează o interogare în baza de date la fiecare mesaj de chat sau la fiecare eveniment de joc este un Denial of Service de fabricație proprie. Un singur jucător care declanșează un eveniment în buclă scoate atunci serverul din funcțiune fără nicio lățime de bandă. Țineți lista de pluginuri scurtă, preferați pluginurile cu sursă deschisă și măsurați rata de cadre a serverului după fiecare extensie.
În al doilea rând: deoarece Unturned nu are un port RCON propriu, orice control la distanță provine dintr-un plugin. Verificați după instalare cu ss -lntp ce port TCP a deschis și restrângeți-l la propria dumneavoastră adresă. Un port de control la distanță deschis, cu parolă slabă, nu este o problemă de DDoS, ci o problemă de preluare.
8. Conținutul din Workshop și procesul de conectare
Conținutul din Workshop face conectarea scumpă, iar asta se răsfrânge direct pe vulnerabilitate. Se controlează prin WorkshopDownloadConfig.json din același folder Server:
{
"File_IDs": [],
"Ignore_Children_File_IDs": [],
"Query_Cache_Max_Age_Seconds": 600,
"Max_Query_Retries": 2,
"Use_Cached_Downloads": true,
"Should_Monitor_Updates": true,
"Shutdown_Update_Detected_Timer": 600
}
În File_IDs stau identificatorii Workshop ai hărților și ai modurilor. La pornire serverul le descarcă împreună cu dependențele, iar fiecare jucător le descarcă automat la conectare. Trei consecințe ar trebui să le cunoașteți. În primul rând, conectarea durează mult la liste mari de moduri, iar după un atac toți jucătorii revin în același timp, ceea ce încarcă serverul a doua oară. În al doilea rând, Should_Monitor_Updates oprește serverul de îndată ce un fișier din Workshop este actualizat: valoarea implicită a Shutdown_Update_Detected_Timer, de 600 de secunde, duce atunci la o repornire pe care operatorii o iau cu regularitate, în caz de atac, pentru un succes al atacatorului. În al treilea rând, fiecare mod este cod străin pe serverul dumneavoastră.
Practic asta înseamnă: țineți lista cât se poate de scurtă, verificați după fiecare repornire neașteptată mai întâi jurnalul serverului pentru mesajul despre actualizarea din Workshop și dezactivați Should_Monitor_Updates numai atunci când planificați singur actualizările.
9. Lista de servere, codul serverului și funcția Fake IP
Adresa dumneavoastră IP nu se poate ține secretă cât timp serverul este listat public. Fiecare jucător care a fost conectat o dată o cunoaște, iar listele terțe o publică oricum. Două obiceiuri ajută totuși: nu publicați niciunde singur adresa brută și conectați-vă jucătorii printr-un nume de gazdă, ca o schimbare de adresă să nu rupă fiecare referință. Clasicul este înregistrarea A uitată către adresa veche, care face orice schimbare lipsită de efect.
Pentru operarea în internet aveți oricum nevoie de un Game Server Login Token (GSLT) din administrarea de servere Steam, pentru App ID 304930. El are în plus grijă ca codul serverului dumneavoastră să rămână același peste reporniri, în loc să fie generat din nou la fiecare pornire.
Unturned oferă în plus o funcție Fake IP. Ea se activează cu "Use_FakeIP": true în Config.json, iar comanda de consolă CopyFakeIP livrează adresa pe care o publicați apoi. Traficul circulă după aceea prin rețeaua de releu Steam Datagram Relay, adresele atribuite se află în intervalul 169.254.0.0 până la 169.254.255.255, iar adresa reală a serverului nu le mai este arătată jucătorilor. Valve descrie traficul ca autentificat, criptat și limitat în rată.
Prețul pentru asta este mare și este spus rar: adresa și portul se schimbă la fiecare repornire, un nume de domeniu nu se poate îndrepta către ea fără scripturi proprii, iar listele Steam „Favorite” și „Istoric” nu funcționează cu ea, ci numai funcția de marcaje. Mai ales însă, funcția protejează numai calea jocului. Serverul dumneavoastră își păstrează adresa reală, iar SSH, panoul web, baza de date și pagina web rămân accesibile prin ea. Cine cunoaște adresa dintr-o veche înregistrare DNS, dintr-o pagină de stare sau dintr-o conexiune anterioară o atacă în continuare direct. Funcția Fake IP nu înlocuiește deci o filtrare în rețeaua din fața serverului, ea doar micșorează numărul de oameni care cunosc în general adresa dumneavoastră.
10. Înregistrați, ca să nu trebuiască să ghiciți în timpul atacului
Pasul cel mai important este cel pe care aproape nimeni nu îl face dinainte: să creați o bază de comparație cât timp totul merge 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 vineri seara. Cu apt-get install -y vnstat sysstat măsurarea rulează permanent. Î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 portrange 27015-27016 -c 200 -q
La tcpdump se aplică o regulă: limitați întotdeauna cu -c, o captură sub încărcare maximă apasă suplimentar un server oricum suprasolicitat. Cum evaluați valorile și cum deosebiți un atac de o eroare de software se află în Recunoașterea unui atac DDoS pe server.
Unde se termină aceste măsuri
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.
Faceți o dată socoteala. Un game server tipic atârnă de o conexiune de 1 Gbit/s, adică 125 de megaocteți pe secundă, iar conexiunea este plină de îndată ce cineva trimite mai mult. Regimul normal rămâne mult sub asta: la 24 de jucători și la cele 50 de pachete pe jucător și pe secundă permise din fabrică sosesc circa 1.200 de pachete pe secundă. Un serviciu de booter produce fără nicio pregătire un multiplu al acestei valori.
A doua mărime este rata de pachete, și ea lovește aproape întotdeauna mai devreme decât lățimea de bandă. La pachete mici de 64 de octeți încap într-o conexiune de 1 Gbit/s circa 1,49 milioane de pachete pe secundă. Un kernel obișnuit de server prelucrează, în funcție de procesor și de placa de rețea, câteva sute de mii dintre ele înainte să înceapă să elimine. Un atac care nu vă umple conexiunea nici măcar la o treime poate deci să vă scoată totuși serverul din funcțiune, deoarece timpul de calcul se duce pe eliminarea pachetelor. Operatorii trăiesc asta ca „încărcarea nici nu era mare, și totuși totul era pierdut”.
Pentru încadrare, ce ordine de mărime apar în realitate: pe serverele KernelHost au fost filtrate, printre altele, un atac cu peste 473,4 Gbit/s la peste 41,5 milioane de pachete pe secundă asupra unui server de voce și un flood UDP cu peste 112,2 Gbit/s asupra unui game server. Pentru asta nu există nicio setare locală. Atacurile volumetrice trebuie să se termine în rețeaua din fața serverului.
Ce pune KernelHost împotrivă
Protecția permanentă, inclusă 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ă în centrul de date.
- Nivelul 2: filtrare Arbor în timp real cu 3,2 Tbps în Frankfurt pe Main. Direct în fața serverului, modelele specifice de protocol 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 este pierdut. Și nu se folosește nullrouting: adresa dumneavoastră IP rămâne în rețea, eliminate sunt numai pachetele dăunătoare. Cine scoate adresa IP din rețea obține pentru dumneavoastră același rezultat ca atacatorul. Locația este Frankfurt pe Main. Ce jocuri și protocoale sunt acoperite le enumeră Protecție DDoS în timp real pentru game servere.
Advanced DDoS Protection pentru proiectele bombardate permanent
Unele proiecte nu sunt atacate ocazional, ci în mod țintit și săptămâni în șir. Pentru asta există Advanced DDoS Protection de la 50,00 EUR pe lună, PrePaid, fără durată minimă și fără taxă de instalare. 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 port și pe protocol, în panoul clientului: stabiliți separat ce este permis pe 27015 UDP (interogările) și ce pe 27016 UDP (traficul de joc), fără să scrieți pentru asta un tichet.
- Modificările au efect în timp real, deci puteți ajusta chiar în timpul unui atac în desfășurare, de exemplu strângând interogările și lăsând traficul de joc neatins.
- Profil de protecție potrivit jocului, la fel pentru aplicații modificate și proprii pe orice porturi TCP sau UDP, deci și pentru un plugin cu port propriu.
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 EUR pe lună, PrePaid |
| Capacitate de filtrare | 17 Tbps scrubbing global plus filtrare Arbor în timp real cu 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 port și pe protocol în panoul clientului |
| Modificări | se aplică automat | au efect în timp real, chiar și în timpul unui atac |
| Profil de joc | profiluri optimizate pentru jocurile răspândite, Unturned inclus | profil potrivit jocului, și pentru aplicații 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 Unturned, protecția permanentă inclusă este suficientă împreună cu o configurație curată a serverului. Advanced DDoS Protection este răspunsul la faptul că cineva o ia personal.
Greșeli frecvente și soluții
„Ghidul meu spune că trebuie să deschid de la 27015 până la 27017”: Ghidul este mai vechi decât noiembrie 2021. De la versiunea 3.21.30.0, un server Unturned are nevoie doar de două porturi, deoarece interogarea Steam nu se mai află pe port plus doi. Închideți 27017, cu excepția cazului în care acolo rulează o a doua instanță.
„Serverul rulează, dar nu mai apare în nicio listă de servere”: Aceasta este imaginea tipică a unui val de interogări sau a unei reguli proprii prea aspre pe 27015 UDP. Verificați cu iptables -L INPUT -n -v dacă regula dumneavoastră numără potriviri. Dacă contoarele cresc puternic, filtrați chiar acum propriile dumneavoastră intrări în listă. Nu blocați niciodată complet 27015.
„Toți jucătorii zboară afară în același timp, cu depășire de timp”: Verificați mai întâi dacă urmărirea conexiunilor a dat pe dinafară (dmesg -T | grep -i conntrack). Dacă tabelul este plin, kernelul elimină fără deosebire. Timeout_Game_Seconds este din fabrică pe 30 de secunde: cine revine în acest timp își păstrează locul.
„Serverul repornește în plină activitate”: Asta este rar un atac. Verificați jurnalul pentru mesajul despre actualizarea din Workshop detectată. Should_Monitor_Updates oprește serverul după intervalul implicit de 600 de secunde.
„Am schimbat adresa IP și două ore mai târziu eram iar offline”: Atacatorul a luat adresa nouă din aceeași sursă ca pe cea veche, de obicei dintr-o listă de servere, de la un bot de Discord sau dintr-o veche înregistrare DNS. O schimbare de adresă este câștig de timp, nu o soluție.
„Am activat funcția Fake IP și sunt totuși atacat”: Ea ascunde adresa de jucătorii noi, dar nu i-o ia serverului. Cine o cunoaște dintr-o veche intrare în listă, dintr-o pagină de stare sau dintr-o conexiune anterioară ajunge în continuare direct la serverul dumneavoastră, la fel ca la SSH și la orice panou web de pe el.
„Furnizorul meu de până acum 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ă aceea. Întrebați la nevoie dacă se filtrează sau se face nullrouting. Răspunsul decide mai mult asupra disponibilității dumneavoastră decât orice specificație de hardware.
„În tcpdump nu văd nimic neobișnuit”: Dacă traficul este filtrat deja în rețeaua din față, pe server nu ajunge nimic, așa cum era de așteptat. Acesta este cazul normal la o filtrare care funcționează. Invers se aplică: dacă conexiunea este saturată, în anumite situații nu mai ajunge la dumneavoastră 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 oaspete.
Pe scurt
- Un server Unturned are nevoie de exact două porturi UDP deschise: valoarea
Portsetată înCommands.dat(implicit 27015) și această valoare plus unu (27016). Jocul în sine nu are nevoie de TCP. - Portul 27017 este de prisos din versiunea 3.21.30.0 din 21 noiembrie 2021, deoarece interogarea Steam nu se mai află pe port plus doi. Cine îl mai are deschis urmează un ghid învechit.
- Unturned nu are un port RCON încorporat. Orice control la distanță vine dintr-un plugin, aduce cu el un port TCP propriu și trebuie restrâns de dumneavoastră.
- Portul de interogare 27015 este punctul cel mai sensibil: un val de interogări face serverul invizibil în lista de servere fără să atingă un jucător, iar protocolul Steam are, potrivit US-CERT TA14-017A, un factor de amplificare de 5,5.
- Limitele din
Config.json(Max_Packets_Per_Second50,0,Rate_Limit_Kick_Threshold10 la fiecare 40 de secunde) acționează numai împotriva clienților care se conectează cu adevărat, nu împotriva adreselor de expeditor falsificate. - O conexiune de 1 Gbit/s este plină la 125 de megaocteți pe secundă, iar la pachete de 64 de octeți deja la circa 1,49 milioane de pachete pe secundă. Regimul normal cu 24 de jucători se situează la circa 1.200 de pachete pe secundă. Tot ce depășește asta îl decide rețeaua din fața serverului, nu firewallul dumneavoastră.
- La KernelHost, protecția permanentă pe două niveluri este inclusă în fiecare pachet de server fără cost suplimentar și este activă din momentul livrării, fără nullrouting. Cine vrea să conducă singur regulile de filtrare adaugă Advanced DDoS Protection de la 50,00 EUR pe lună.
Dacă proiectul dumneavoastră rulează deja la KernelHost, filtrarea este activă fără să trebuiască să faceți ceva. 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 puteți contacta suplimentar prin chatul de urgență WhatsApp la +43 650 8209883.
Întrebări frecvente
Ce porturi trebuie să las deschise pentru un server Unturned?
Trebuie să deschid portul 27017 pentru Unturned?
Serverul meu Unturned rulează, dar nu mai apare în nicio listă de servere. Este un atac?
Are Unturned un port RCON încorporat?
Protejează funcția Fake IP de la Unturned împotriva atacurilor DDoS?
Mă pot apăra cu iptables sau UFW împotriva unui atac DDoS?
De la ce dimensiune a atacului nu mai face față singur serverul meu Unturned?
De ce sunt atacate serverele Unturned atât de des?
Ajută pluginurile RocketMod sau OpenMod împotriva atacurilor DDoS?
Serverul meu de la KernelHost cade offline în timpul unui atac?
Costă extra protecția DDoS la KernelHost?
Când am nevoie pentru serverul meu Unturned suplimentar de Advanced DDoS Protection?
2026 KernelHost GmbH. Toate drepturile rezervate. Acest ghid este protejat de legea drepturilor de autor. Republicarea lui pe alte site-uri, integral, parțial sau în formă modificată, nu este permisă fără acordul nostru scris. Citatele cu indicarea sursei și cu link sunt binevenite.

