BungeeCord

Zabezpečení BungeeCord sítě

Úvod

V tomto druhém článku na téma BungeeCord se podíváme na jeho zabezpečení, konkrétně na zabezpečení Spigot serverů, které jsou pomocí BungeeCordu propojeny. Největším rizikem, kterému se servery vystavují, je obejití autentizace, tj. obejití přihlášení. Standardní průběh přihlášení hráče většinou probíhá následovně:

  • Hráč se připojí na BungeeCord server a je připojen na výchozí server. Na výchozím serveru se povětšinou bude nacházet nějaký autentizační plugin, například AuthMe (článek, jak nastavit AuthMe v BungeeCord síti, je v přípravě)
  • Hráč provede na tomto serveru autentizaci, v případě úspěchu je přepojen na herní server, například Lobby, v opačném případě není hráč dále vpuštěn a je například vyhozen
  • Můžeme také využít plugin FastLogin, pomocí kterého se hráči s originálním Minecraft účtem nemusí přihlašovat, ovšem průběh přihlášení je až na zadávání hesla identický (článek, jak nastavit FastLogin v BungeeCord síti, je v přípravě)

Celý proces je velmi jednoduchý a v zásadě si vystačíte s jedním pluginem – AuthMe. A kde jsou teda ta rizika? Hned se na ně podíváme.


Přímé připojení na server

Začneme hned tím největším rizikem a tím je kompletní obejití BungeeCordu. Představte si, že by se někdo připojil přímo na IP adresu serveru, bez využití našeho BungeeCordu. Co by se mohlo stát? Pokud by si hráč zjistil například nick majitele serveru, mohl by se za něj bez přihlášení připojit a dále už je pouze na něm, co by se serverem provedl.

V případě správně nastaveného Spigot serveru (viz předchozí článek), to server pozná a hráči sdělí, že se musí připojit přes proxy. Jenže, co když si hráč zapne BungeeCord server u sebe na počítači? Pak se bez problému připojí.

Řešení problému

Zamezení přímého přístupu je velmi jednoduché, stačí využít správný plugin. Možná si říkáte, „hodím si na servery IPWhitelist a je po problému“, no ano, jenže co když si někdo objedná BungeeCord u nás a náhodou dostane stejný stroj, jako vy? Poté je vám IPWhitelist absolutně zbytečný, jelikož má cizí BungeeCord stejnou IP.

Naštěstí je zde naprosto perfektní plugin, nazvaný BungeeGuard. Tento plugin je od stejného autora, který vytvořil například plugin LuckPerms. Funkce tohoto pluginu je velmi jednoduchá, ale přesto dokáže servery mimořádně dobře zabezpečit – hráč je při připojení přes pravý BungeeCord „označkován“ a tato značka je poté kontrolována na všech serverech. Pokud značka chybí nebo nesedí, není hráč na server vpuštěn.

Podíváme se tedy na instalaci tohoto pluginu.

Instalace pluginu na BungeeCord

Plugin se distribuuje ve dvou verzích a to ve verzi pro PaperSpigot a pro BungeeCord. Nyní si tedy ukážeme instalaci verze pro BungeeCord, která je velmi jednoduchá.

Verze pro BungeeCord se jmenuje bungeeguard-proxy.jar a nejnovější build lze stáhnout kliknutím na tento odkaz – BungeeGuard Proxy. Po stažení souboru ho nahrajeme na BungeeCord server, do složky plugins – můžeme využít buďto FTP nebo Správce souborů v Administraci.

Po úspěšném nahrání pluginu BungeeCord server restartujeme, vygeneruje se nám konfigurační soubor s tokenem – token.yml. Token si z tohoto souboru zkopírujeme a na bezpečné místo zaznamenáme.

Nyní se přesuneme na verzi pro PaperSpigot.

Instalace pluginu na PaperSpigot

Začneme důležitou informací, tento plugin funguje pouze na PaperSpigotu, tj. na optimalizovaném Spigotu. Na obyčejném Spigotu tento plugin nefunguje!

Stáhneme si tedy verzi pro PaperSpigot, pojmenovanou bungeeguard-backend.jar, přičemž nejnovější build se nachází zde – BungeeGuard Backend. Po stažení souboru ho nahrajeme (do složky plugins) na všechny PaperSpigot servery za BungeeCordem a poté servery restartujeme, aby se vygenerovaly konfigurační soubory.

Posledním krokem je nastavení tokenu, který nám vygeneroval BungeeCord, na všechny PaperSpigot servery.

Otevřeme tedy soubor config.yml, který se nachází ve složce BungeeGuard na PaperSpigot serverech a upravíme ho podle vzoru níže:

# Allowed authentication tokens.  
allowed-tokens:
  - "AUSXEwebkOGVnbihJM8gBS0QUutDzvIG009xoAfo1Huba9pGvhfjrA21r8dWVsa8"    # Zde nastavíme token, který nám vygeneroval BungeeCord

Poté všechny servery restartujeme a voilà, máme BungeeCord síť zabezpečenou.

Podobné Články