Zabezpečení herního serveru – firewall, DDoS základy a RCON
Praktické zabezpečení herního serveru na VPS. SSH klíče, firewall a Docker, ochrana RCON a panelu, realistický pohled na DDoS ochranu a zabezpečení Minecraftu.
Herní servery jsou častým cílem útoků – od skenování otevřených portů přes zneužití RCONu až po DDoS od naštvaného hráče. Většinu rizik pokryje pár základních opatření. U DDoS je ale potřeba být realistický: proti velkému útoku server sám nic nezmůže.
1. Základ: SSH a systém
Nejčastější cesta ke kompromitaci serveru není hra, ale slabé SSH.
- Přihlašování pouze SSH klíčem, v
/etc/ssh/sshd_config:text PasswordAuthentication no PermitRootLogin prohibit-passwordPo změněsudo systemctl restart ssh– a předtím ověřte, že se klíčem opravdu přihlásíte. - Automatické bezpečnostní aktualizace:
sudo apt install unattended-upgrades. - fail2ban proti hádání hesel:
sudo apt install fail2ban(výchozí konfigurace chrání SSH).
2. Firewall – povolit jen to, co je potřeba
S ufw je výchozí politika „zakázat vše příchozí“:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp # Minecraft Java
sudo ufw enable
sudo ufw status verbose
Typické porty:
| Služba | Port |
|---|---|
| Minecraft Java | 25565/tcp |
| Minecraft Bedrock | 19132/udp |
| FiveM | 30120 tcp+udp |
| Valheim | 2456–2457/udp |
| Rust | 28015/udp |
| Pterodactyl Wings | 8080/tcp, SFTP 2022/tcp |
Pozor na Docker
Pokud hry běží v Dockeru (Pterodactyl, docker compose), Docker zapisuje vlastní pravidla do iptables a publikované porty kontejnerů obcházejí ufw. Zakázání portu v ufw je tedy neúčinné. Omezení provozu do kontejnerů patří do řetězce DOCKER-USER:
# RCON kontejneru jen z vaší IP
sudo iptables -I DOCKER-USER -p tcp --dport 25575 ! -s 198.51.100.7 -j DROP
Pro trvalost uložte pravidla (sudo apt install iptables-persistent, pak sudo netfilter-persistent save). Ověřujte vždy zvenku, např. nmap -p 25575 IP_SERVERU z jiného stroje.
3. Administrátorská rozhraní
RCON, txAdmin, webové mapy, Pterodactyl Panel – to vše jsou vstupní body.
- RCON nikdy neotvírejte do internetu. Pokud ho potřebujete, povolte jen svou IP nebo k němu přistupujte přes SSH tunel:
bash ssh -L 25575:127.0.0.1:25575 uzivatel@servera připojte RCON klienta nalocalhost:25575. - Hesla RCON a panelů generujte náhodně:
openssl rand -base64 24. - V Pterodactylu zapněte administrátorům dvoufázové ověření (2FA), v nastavení Panelu ho lze vynutit.
- Pluginy a mody stahujte jen z důvěryhodných zdrojů (Modrinth, Hangar, oficiální stránky autora). „Cracknuté“ prémiové pluginy jsou častým zdrojem backdoorů.
4. Specifika Minecraftu
online-mode=true– bez něj se kdokoli připojí pod jakýmkoli jménem, včetně jména admina. Výjimkou jsou backendy za proxy, které ale nesmí být dostupné zvenku (viz Velocity proxy).- Whitelist pro soukromé servery:
whitelist=trueaenforce-whitelist=truevserver.properties, hráče přidáte/whitelist add jmeno. enable-rcon=false, pokud RCON nepoužíváte.enable-queryzapínejte jen pokud ho potřebujete pro monitoring.- Operátorská práva (
/op) dávejte minimálně, pro správu používejte plugin na oprávnění (LuckPerms).
5. DDoS – co reálně zvládnete
DDoS útok zahltí linku nebo síťový stack serveru dřív, než pakety vůbec dojdou k vašemu firewallu. Proti objemovému útoku pomůže jen ochrana na straně poskytovatele (filtrování v jeho síti). Při výběru hostingu pro herní server se proto ptejte:
- zda má poskytovatel DDoS ochranu a zda je vždy zapnutá (always-on), nebo se aktivuje až po detekci,
- zda filtruje i UDP herní provoz – obecné ochrany jsou laděné hlavně na web a mohou rozbíjet UDP hry,
- co se stane při útoku nad limit (null-route = server je dočasně nedostupný).
Co můžete udělat sami:
- Neprozrazujte IP backendu. Hráči by měli znát jen IP proxy nebo chráněné adresy.
- U Minecraftu je možné postavit proxy (Velocity) na chráněném hostingu a backendy mít jinde v privátní síti.
- Proti menším útokům na úrovni spojení pomůže omezení počtu nových spojení z jedné IP:
bash sudo iptables -I DOCKER-USER -p tcp --dport 25565 --syn \ -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROPHodnotu laďte podle hráčů – více lidí za jednou NAT IP (internát, rodina) jinak narazí na limit. Pro hry mimo Docker použijte řetězecINPUTmístoDOCKER-USER. - Cloudflare proxy (oranžový mráček) nechrání herní porty – funguje jen pro HTTP(S). Pro jiný provoz má Cloudflare samostatné placené produkty (Spectrum).
6. Zálohy jako součást bezpečnosti
Když dojde k nejhoršímu (grief, smazaný svět, kompromitovaný server), zachrání vás jen záloha uložená mimo server. Pro Pterodactyl viz Zálohy serverů v Pterodactylu.
Checklist
- [ ] SSH jen s klíčem, fail2ban, automatické aktualizace
- [ ] Firewall s politikou deny, otevřené jen herní porty
- [ ] U Dockeru omezení přes
DOCKER-USER, ověřené zvenku - [ ] RCON a admin panely jen z vaší IP nebo přes SSH tunel
- [ ] 2FA v Pterodactylu
- [ ] Hosting s DDoS ochranou, která zvládá UDP
- [ ] Zálohy mimo server