RE:NODE

Bezpečnost a soukromí serveru Valheim: jak ho zabezpečit

Text: Tým RE:NODE
10 min čtení


Server Valheim pro skupinu kamarádů zabezpečují čtyři věci: -public 0, aby nebyl inzerovaný, heslo, které nesdílí žádné slovo s názvem serveru, seznam povolených v permittedlist.txt, aby se dovnitř dostali jen jmenovaní hráči, a co nejméně adminů. To pokryje téměř každý skutečný problém malého serveru, tedy cizince, griefery a heslo, které uniklo na špatný Discord. Zbytek - tvoje IP adresa, mody, které spouštějí kód, účet v panelu, který server ovládá, a floody - se stává důležitějším, čím je server větší a veřejnější. Nástroje Valheimu jsou jednoduché a rady tady jsou hlavně o tom, jak použít všechny dohromady, ne spoléhat na jediný.

Před čím se vlastně chráníš#

Pomáhá být k hrozbám upřímný, protože ty reálné jsou menší a všednější než ty, kterých se lidé obávají.

HrozbaJak pravděpodobná u serveru pro kamarádyCo ji zastaví
Cizinec najde svět a připojí seStřední, pokud je v seznamuHeslo, seznam povolených, -public 0
Heslo sdílené příliš široceČasem vysokáSeznam povolených, rotace hesla
Hráč griefuje nebo kradeNízká až středníWardy, seznam zakázaných, zálohy
Admin zneužije svá právaNízkáMéně adminů, zálohy
Mod obsahuje škodlivý kódNízká, ale vážnáJen důvěryhodné zdroje
Někdo převezme hostingový účetNízká, ale totální2FA, oddělené přihlášení
Flood vyřadí serverNízká, pokud není veřejný nebo osobní sporSíť hostingu, ne tvoje konfigurace

Svět samotný je jediný soubor. Většina dalšího textu je o tom, kdo se do něj může dostat, a poslední obranou pro všechno je záloha, která je uložená jinde a opravdu se obnoví.

Veřejný nebo soukromý: -public a seznam komunity#

-public 1 zařadí server do prohlížeče komunity ve hře; -public 0 ho skryje. Skrytí je první krok pro každou soukromou skupinu: server v seznamu vidí každý, kdo prochází, a krátké nebo zřejmé heslo bude nakonec uhodnuto.

Co -public 0 dělá a nedělá:

  • Dělá: drží server mimo seznam komunity, takže ho náhodní návštěvníci nikdy neuvidí.
  • Nedělá: nezabrání nikomu, kdo zná adresu, připojit se přes IP. Skrytý server není uzavřený.
  • Nedělá: nezabrání serveru odpovídat na dotazy Steamu na query portu. Nástroje, které skenují adresy, ho stále mohou objevit.
  • Na crossplay serveru se k němu hráči s aktuálním join kódem stále dostanou. Kód se mění při každém restartu, což pomáhá, ale kdokoli ve vaší skupinové konverzaci ho má.

Ber tedy -public 0 jako snížení šumu, ne jako řízení přístupu. Řízením přístupu jsou heslo a seznam povolených. Související přepínače s výchozími hodnotami uvádí spouštěcí argumenty Valheimu.

Hygiena hesel#

Heslo serveru Valheim má dvě pravidla, obě vynucená při startu: musí mít alespoň pět znaků a nesmí obsahovat název serveru (a neměla by sdílet slova ani s názvem světa). Server, který poruší kterékoli z nich, nenastartuje a důvod se v logu snadno přehlédne. Okrajové případy popisuje pravidla pro heslo.

Nad rámec pravidel:

  1. Ať je dlouhé a nesouvisející. Tři náhodná slova s číslem se snadno píší na ovladači a těžko hádají. Nepoužívej heslo z ničeho jiného; sdílí se s každým hráčem a nikdo s ním nezachází jako s tajemstvím.
  2. Sdílej ho na jednom místě. Připnutá zpráva v soukromém kanálu Discordu, ne ve veřejném a ne v názvu nebo popisu serveru.
  3. Měň ho, když lidé odcházejí. Heslo je tajemství skupiny. Když někdo odejde ve zlém nebo heslo vyplave někde, kde nemá, změň ho a řekni zbývajícím hráčům.
  4. Nespoléhej jen na něj. Hesla se šíří. Kamarád ho sdělí kamarádovi, ten streamu. Seznam povolených tenhle problém nemá.

Změna hesla znamená změnu spouštěcího argumentu a restart. Na panelovém hostingu je to pole pro heslo na záložce Startup; na vlastním stroji spouštěcí skript. Hráči budou při dalším připojení vyzváni k novému.

bash
# Before-name "Longship Crew" -world "Midgard" -password "herring-barrel-42" -public 0# After a leak: new password, restart the server-name "Longship Crew" -world "Midgard" -password "salted-cod-1187" -public 0

Seznam povolených, zakázaných a adminů#

Valheim má v adresáři s uloženými daty tři textové soubory: adminlist.txt, bannedlist.txt a permittedlist.txt. Každý obsahuje ID hráčů, jedno na řádek. Server je za běhu znovu načítá, takže většina změn restart nevyžaduje.

`permittedlist.txt` je nejsilnější nástroj, který máš. Pokud obsahuje jakékoli ID, mohou se připojit jen tito hráči; všichni ostatní jsou odmítnuti i se správným heslem. Na serveru pro kamarády je to nastavení, které z uniklého hesla dělá neškodnou věc.

permittedlist.txt
// Steam-only server: SteamID647656119801234567876561198087654321// Crossplay server: platform-prefixed IDsSteam_76561198012345678Xbox_2535412345678901

Body, na kterých lidé narážejí:

  • Formát ID závisí na crossplay. Server jen pro Steam používá prosté 17místné SteamID64. Crossplay server používá ID s prefixem platformy. Seznam napsaný pro jeden druh nefunguje pro druhý.
  • ID získej z logu. Ať se každý hráč jednou připojí (než seznam povolených zapneš) a zkopíruj jeho ID z logu serveru, kde se objeví přesně v podobě, kterou server očekává.
  • Nové hráče je třeba přidat dopředu. Se zapnutým seznamem povolených je pozvaný kamarád odmítnut, dokud ho nepřidáš. V tom je smysl, ale řekni mu to, jinak bude předpokládat, že je server rozbitý.

bannedlist.txt slouží k odstranění konkrétní osoby. Admin může hráče ve hře zakázat příkazem ban, což ho přidá do souboru; zákaz podle ID je spolehlivější než podle jména. Při existujícím seznamu povolených je seznam zakázaných méně důležitý, protože hráči mimo seznam se stejně nepřipojí - stále je to ale způsob, jak odstranit někoho, kdo na seznamu je.

adminlist.txt uděluje práva admina: vyhazování, banování, vynucené ukládání. Drž ho na jedné nebo dvou osobách. Admin na vanilla serveru nemůže vytvářet předměty ani létat, ale mod jako ServerDevcommands rozšiřuje, co admini mohou, a pak se admin stává mnohem větším oprávněním. Všechny podrobnosti formátu popisují tři soubory se seznamy.

Tvoje IP adresa a co prozrazuje#

Každý hráč, který se připojí přímo k serveru, zjistí jeho IP adresu. U pronajatého serveru je to adresa hostingu a nikomu nic osobního neřekne. U serveru hostovaného doma, ve hře i dedikovaného, je to adresa tvé domácnosti.

IP adresa prozrazuje hlavně přibližnou polohu, často jen na úrovni města nebo regionu, a poskytovatele připojení. Nedává nikomu přístup k tvým zařízením. Reálné riziko není hackování, ale narušení provozu: někdo, kdo má na tebe zášť a tvou domácí adresu, ji může zahltit floodem a vyřadit internet celé domácnosti. Router tomu zabránit nemůže a poskytovatel možná také ne.

Pokud hostuješ doma:

  • Drž server soukromý a se seznamem povolených, aby adresu zjistili jen lidé, které znáš.
  • Nezveřejňuj adresu. Hráči se mohou připojit přes doménové jméno, pokud chceš něco snáz zapamatovatelného - popisuje to připojení domény k herním serveru, ale jméno adresu za sebou neschová.
  • Zvaž crossplay join kódy pro hráče, které neznáš dobře. Jejich provoz jde přes relay, ne přímo k tobě, ale ber to jako pohodlí, ne záruku soukromí.

Provozovat cokoli veřejného z domova je bod, kdy se pronájem serveru stává rozhodnutím o soukromí stejně jako o výkonu. Dál jdou úniky IP a doxxing pro majitele serverů a hosting doma vs pronajatý server Valheim.

DDoS v realitě malých serverů#

Malý server Valheim je útokem zasažen zřídka. Floody něco stojí útočníka a nikdo neplatí za shození světa o deseti hráčích, pokud k tomu nemá důvod. Důvody jsou v praxi osobní: zakázaný hráč, hádka, konkurenční komunita. Proto jsou soukromé servery se seznamem povolených napadány tak zřídka a veřejné s velkou komunitou častěji.

Co pomáhá, podle hodnoty:

  1. Nehostovat veřejný server doma. Flood proti domácímu připojení vyřadí vše v domě.
  2. Být těžko k nalezení. -public 0, žádná adresa ve veřejných kanálech, malá skupina.
  3. Hosting, který filtruje na okraji sítě. Žádná konfigurace samotného herního serveru nepohltí flood; musí být zahozen dřív, než dorazí.
  4. Restarty, které se čistě zotaví. Po skončení útoku by se server měl sám vrátit se světem v pořádku.

Dej si pozor na absolutní sliby. Hosting, který tvrdí, že tě žádný útok nikdy nevyřadí, přehání, co kdo umí. Na RE:NODE je formulace přesná: filtrování na straně upstreamu, které zahazuje zjevné objemové floody, plus reflexní a poškozený provoz. Útoky, které vypadají jako skuteční hráči, se nefiltrují. Podrobnosti jsou v DDoS útoky na herní servery vysvětlené a co děláme proti útokům.

Mody jsou kód: tak s nimi zacházej#

Mody BepInEx jsou soubory .dll, které běží se stejnými právy jako proces serveru. Škodlivý může číst soubory, otevírat spojení a dělat cokoli, co smí uživatel serveru. Na domácím stroji je to tvůj stroj. V pronajatém kontejneru je to omezené na ten server, ale pořád může poškodit svět nebo vynést cokoli, co je v jeho souborech.

Rozumné návyky:

  • Instaluj z Thunderstore nebo ze stránky autora. Vyhni se přeuploadům v náhodných kanálech na Discordu a „opraveným“ verzím od lidí, které neznáš.
  • Preferuj známé mody s aktivními autory. Popularita není důkaz bezpečnosti, ale mod používaný tisíci lidmi s veřejným repozitářem zdrojového kódu je jiné riziko než mod bez historie.
  • Nespouštěj server jako administrátor ani root na vlastním stroji. Vyhrazený uživatel s přístupem jen ke složce serveru omezí škody.
  • Zálohuj před přidáním čehokoli. Pokud mod poškodí svět, záloha je oprava.

Škodlivé pluginy a mody probírá, co špatné mody obvykle dělají a jak je poznat.

Účet, který server ovládá#

Na pronajatém serveru může ten, kdo se přihlásí do hostingového panelu, zastavit server, stáhnout svět, změnit heslo a všechno smazat. Toto přihlášení je důležitější než jakékoli nastavení ve hře.

  • Zapni dvoufázové ověření. Aplikace autentikátoru na účtu panelu zařídí, že opakovaně použité heslo nestačí. Záložní kódy ulož na bezpečné místo. Nastavení vysvětluje dvoufázové ověření na účtu v panelu.
  • Dej spoluadminům vlastní přístup. Nesdílej své přihlášení. Na RE:NODE lze subuserům dát jen to, co potřebují - jen konzoli nebo jen soubory, bez fakturace - a přístup lze časově omezit a zaznamenává se v logu aktivity pro každý server. Vzor popisuje subuseři a nejmenší oprávnění.
  • Drž zálohy mimo stroj. Zálohy RE:NODE jsou uložené mimo stroj, který chrání, a lze je zamknout proti rotaci, takže špatný den nepřepíše poslední dobrou kopii. Pozor: smazáním serveru se smažou i jeho zálohy, včetně zamčených, takže si jednu před jakýmkoli mazáním stáhni.

Griefing uvnitř světa je od všeho tohohle oddělený problém. Wardy ho na PvE serverech hodně zastaví a zálohy spraví zbytek; co wardy brání a nebrání, popisují wardy a griefing.

FAQ#

Je server Valheim s -public 0 soukromý?

Je skrytý, ne soukromý. V seznamu komunity se už neobjeví, ale kdokoli s adresou se může stále pokusit připojit přes IP. Zkombinuj to s heslem a seznamem povolených v permittedlist.txt a dostaneš server, který je skutečně uzavřený.

Nahrazuje seznam povolených heslo?

Ne, platí obojí. Hráč musí být na seznamu povolených a znát heslo. Heslo si nech i tak - stále chrání server v den, kdy někdo omylem vyprázdní seznam povolených - ale seznam povolených je to, co dělá uniklé heslo neškodným.

Mohou hráči vidět moji IP adresu, když hostuji Valheim doma?

Kdokoli, kdo se připojuje přímo, ano. Prozradí zhruba, kde jsi a kterého poskytovatele používáš, ne přístup k tvým zařízením. Skutečné riziko je, že někdo zahltí tvé domácí připojení, takže domácí server drž soukromý a se seznamem povolených.

Mám se bát DDoS útoků na malý server Valheim?

Obvykle ne. Malé soukromé servery bývají cílem zřídka, a když ano, je to téměř vždy někdo s osobní zášti. Reálné případy pokryje soukromý server, nehostovat veřejný server z domova a výběr hostingu, který floody filtruje na straně upstreamu.

Jak odstraním hráče, který zná heslo?

Zakaž ho podle ID příkazem ban nebo přidáním jeho ID do bannedlist.txt, odeber ho z permittedlist.txt, pokud ho používáš, a změň heslo, pokud ho mohl sdílet. Soubory se seznamy se za běhu serveru znovu načítají.