Chraňte svůj domácí Minecraft Server před DDOS útoky pomocí AWS

Photo of author

By etechblogcz

Chcete spustit vlastní Minecraft server z pohodlí domova, aniž byste museli zveřejňovat vaši skutečnou IP adresu? Je to naprosto možné! Můžete si zřídit bezplatný proxy server s pomocí cloudových služeb Amazon a tak ochránit svůj herní server před útoky typu DDoS (odmítnutí služby). V následujícím textu vám ukážeme, jak na to.

Tento návod je univerzální a dá se použít pro jakýkoliv herní server, nejen Minecraft. Princip spočívá v provozování proxy serveru na konkrétním portu. Stačí pouze změnit výchozí port Minecraftu 25565 na port, na kterém běží váš herní server.

Jak to vlastně funguje?

Představme si situaci, kdy chcete hostovat Minecraft server a zpřístupnit ho na internetu. Jeho spuštění není nijak složité. Instalace je jednoduchá, server využívá pouze jedno procesní vlákno a i silně modifikované servery, s několika hráči online, obvykle nepotřebují více než 2 až 3 GB RAM. Můžete tedy server bez problémů provozovat na starším notebooku nebo na pozadí vašeho stolního počítače, místo abyste platili třetí straně za hosting.

Problém však nastává, když chcete, aby se k vašemu serveru mohli připojit ostatní hráči. Musíte jim totiž sdělit vaši IP adresu. To s sebou přináší několik rizik. Zvláště pokud váš router stále používá výchozí heslo administrátora, jedná se o bezpečnostní riziko. Zároveň se stáváte zranitelnými vůči DDoS útokům, které mohou nejen vyřadit váš Minecraft server z provozu, ale také odpojit váš internet až do odeznění útoku.

Nemusíte však umožnit připojení k vašemu routeru přímo. Místo toho si můžete pronajmout malý linuxový server od poskytovatelů jako Amazon Web Services, Google Cloud Platform nebo Microsoft Azure – všichni nabízejí bezplatné varianty. Tento server nemusí být výkonný, aby zvládl provozovat Minecraft server, jeho jediným úkolem bude přeposílání spojení. Tímto způsobem můžete poskytnout IP adresu proxy serveru namísto vaší skutečné.

Předpokládejme, že se někdo chce připojit k vašemu serveru a zadá do svého Minecraft klienta IP adresu vašeho AWS proxy serveru. Paket je odeslán na proxy server na portu 25565 (výchozí port Minecraftu). Proxy server je nakonfigurován tak, aby zachytil provoz na tomto portu a předal ho vašemu domácímu routeru. Vše probíhá na pozadí a hráč se o tomto procesu nedozví.

Váš domácí router pak musí přesměrovat toto připojení na váš domácí počítač, na kterém běží herní server. Server odpoví na paket klienta a předá ho zpět proxy serveru. Proxy server paket upraví, aby vypadal, jako by odpověď přišla přímo z něj. Klient si myslí, že proxy server je ten, na kterém běží hra.

Funguje to podobně, jako když je váš počítač chráněn domácím routerem. Jen s tím rozdílem, že tento nový „router“ běží na Amazon Web Services a těží z plné ochrany před DDoS útoky na transportní vrstvě, kterou Amazon nabízí zdarma v rámci služby AWS Shield. Při detekci útoku je automaticky zmírněn, aniž by to ovlivnilo váš domácí server. V případě, že se útok nepodaří zastavit, můžete instanci jednoduše vypnout a přerušit tak spojení s vaším domovem.

Pro zpracování proxy serveru použijeme nástroj sslh. Je určený pro multiplexování protokolů. Pokud byste chtěli provozovat SSH (obvykle port 22) a HTTPS (port 443) na stejném portu, narazili byste na problémy. Sslh tyto problémy řeší tím, že přijímá spojení a přesměrovává je na správné aplikace. Funguje na transportní vrstvě stejně jako router. Můžeme tak rozpoznat provoz z Minecraftu a přeposlat ho na váš domovský server. Sslh standardně pakety přepisuje, aby skryl vaši domácí IP adresu. Tím pádem ji nikdo nemůže zjistit pomocí nástrojů jako Wireshark.

Zřízení a připojení k novému VPS

V prvním kroku je nutné nastavit proxy server. Pokud máte nějaké zkušenosti s Linuxem, bude to pro vás o něco jednodušší, ale není to nutnost.

Navštivte webové stránky Amazon Web Services a vytvořte si účet. Budete muset zadat údaje o vaší debetní nebo kreditní kartě, ale to je jen z důvodu prevence vytváření duplicitních účtů. Za instanci, kterou vytváříte, neplatíte. Bezplatná varianta je platná po dobu jednoho roku, proto nezapomeňte po dokončení instanci vypnout. Pokud chcete využít jinou službu, Google Cloud Platform trvale nabízí instanci f1-micro zdarma. Google navíc nabízí kredit ve výši 300 dolarů na rok, který můžete využít pro provozování vlastního cloudového serveru.

AWS si účtuje poplatky za přenesená data. Získáte 1 GB zdarma, ale za vše nad rámec tohoto limitu zaplatíte 0,09 dolarů za GB. Pravděpodobně tento limit nepřekročíte, ale doporučujeme to sledovat, pokud se na vašem účtu objeví poplatek ve výši 20 centů.

Po vytvoření účtu vyhledejte službu „EC2“. Jedná se o platformu virtuálních serverů AWS. Může trvat nějakou dobu, než AWS povolí EC2 na vašem novém účtu.

Na záložce „Instance“ vyberte možnost „Spustit instanci“ a zobrazí se průvodce spuštěním.

Jako operační systém si můžete vybrat výchozí „Amazon Linux 2 AMI“ nebo „Ubuntu Server 18.04 LTS“. Klepněte na tlačítko „Další“ a budete vyzváni k výběru typu instance. Vyberte možnost t2.micro, což je bezplatná instance. Tuto instanci můžete v rámci bezplatného tarifu AWS provozovat 24/7.

Vyberte možnost „Zkontrolovat a spustit“. Na další stránce vyberte možnost „Spustit“ a zobrazí se níže uvedené dialogové okno. Klikněte na „Vytvořit nový klíčový pár“ a poté na „Stáhnout klíčový pár“. Toto je váš přístupový klíč k instanci, proto ho neztrat’te – uložte ho do složky Dokumenty. Po stažení klikněte na „Spustit instance“.

Nyní se vrátíte na stránku s instancemi. Najděte veřejnou IPv4 adresu vaší instance, která je současně i adresou vašeho serveru. Pokud chcete, můžete si nastavit AWS Elastic IP (která se po restartování nezmění) nebo si dokonce zřídit bezplatnou doménu pomocí dot.tk, abyste nemuseli adresu serveru pokaždé hledat.

Adresu si uložte pro pozdější použití. Nejprve je nutné upravit firewall instance a otevřít port 25565. Na kartě „Skupiny zabezpečení“ vyberte skupinu, kterou vaše instance používá (pravděpodobně launch-wizard-1) a poté klikněte na „Upravit“.

Přidejte nové vlastní TCP pravidlo a nastavte rozsah portů na 25565. Zdroj nastavte na „Anywhere“ nebo 0.0.0.0/0.

Uložte změny a aktualizujte tak bránu firewall.

Nyní se připojíme k serveru přes SSH a nastavíme proxy. Pokud používáte macOS/Linux, otevřete terminál. Pokud používáte Windows, budete muset použít klienta SSH jako Putty nebo nainstalovat Windows Subsystem for Linux. Doporučujeme použít WSL, protože je spolehlivější.

První věc, kterou musíte udělat, je přesunout se do složky Dokumenty, kde je uložen soubor s klíčem:

cd ~/Documents/

Pokud používáte Windows Subsystem for Linux, váš disk C se nachází v /mnt/c/ a musíte se přesunout do složky Dokumenty:

cd /mnt/c/Users/username/Documents/

Pomocí parametru -i sdělte SSH, že chcete pro připojení použít soubor s klíčem. Soubor má příponu .pem, takže byste měli zadat následující:

ssh -i keyfile.pem [email protected]

Místo „0.0.0.0“ zadejte IP adresu vaší instance. Pokud jste namísto AWS Linux vytvořili server s Ubuntu, připojte se jako uživatel „ubuntu“.

Měli byste být připojeni a uvidíte, že se váš příkazový řádek změní na příkazový řádek serveru.

Konfigurace SSLH

Nyní je nutné nainstalovat sslh z balíčkovacího systému. Pro AWS Linux použijete yum, pro Ubuntu apt-get. Možná budete muset přidat EPEL repozitář do AWS Linux:

sudo yum install epel-release
sudo yum install sslh

Po instalaci otevřete konfigurační soubor pomocí nano:

nano /etc/default/sslh

Změňte parametr RUN= na „ano“:

Pod poslední řádek DAEMON přidejte následující:

DAEMON_OPTS="--user sslh --listen 0.0.0.0:25565 --anyprot your_ip_address:25565 --pidfile /var/run/sslh/sslh.pid

Nahraďte „your_ip_address“ vaší domácí IP adresou. Pokud neznáte vaši IP, najděte si na Googlu „jaká je moje IP adresa?“ – ano, opravdu.

Tato konfigurace zajistí, že sslh bude poslouchat na všech síťových zařízeních na portu 25565. Nahraďte toto číslo jiným portem, pokud váš klient Minecraft používá jiný nebo pokud hrajete jinou hru. Obvykle se s sslh párují různé protokoly a přesměrovávají se na různé servery. V tomto případě však chceme zachytit veškerý provoz a přesměrovat ho na adresu your_ip_address:25565.

Stiskněte Control+X a poté Y pro uložení souboru. Pro spuštění sslh zadejte:

sudo systemctl enable sslh
sudo systemctl start sslh

Pokud systemctl není ve vašem systému k dispozici, možná budete muset použít příkaz service.

Sslh by nyní měl běžet. Ujistěte se, že váš domácí router přesměrovává provoz na portu 25565 na váš domácí počítač. Možná budete chtít nastavit statickou IP adresu vašeho domácího počítače, aby se to neměnilo.

Chcete-li zjistit, zda mají ostatní přístup k vašemu serveru, zadejte IP adresu vašeho proxy serveru do online kontroly stavu. Můžete také zadat IP adresu proxy serveru do vašeho klienta Minecraft a zkusit se připojit. Pokud to nefunguje, zkontrolujte, zda máte správně otevřené porty v nastavení vaší instance.