Du hast dir die Mühe gemacht, ein komplexes Minecraft Bungeecord Netzwerk aufzubauen. Verschiedene Server, Minispiele, Lobby-Systeme – alles perfekt abgestimmt, um deinen Spielern ein nahtloses Erlebnis zu bieten. Aber was, wenn Spieler einfach den Bungeecord umgehen und sich direkt mit deinen Unterservern verbinden? Das ist nicht nur ärgerlich, sondern kann auch dein sorgfältig ausbalanciertes System durcheinanderbringen und sogar Sicherheitsrisiken bergen.
In diesem Artikel gehen wir den Gründen auf den Grund, warum dieses Problem auftritt und zeigen dir Schritt für Schritt, wie du verhindern kannst, dass Spieler sich direkt mit deinen Minecraft Unterservern verbinden.
Das Problem: Direkte Verbindungen umgehen Bungeecord
Der Sinn eines Bungeecord-Netzwerks ist, dass Spieler *ausschließlich* über den Bungeecord-Proxy-Server mit deinem Netzwerk interagieren sollen. Dieser Proxy dient als „Tor” und steuert den Zugriff auf die einzelnen Unterserver. Er kümmert sich um das Weiterleiten der Spieler zu den richtigen Servern, die Kommunikation zwischen den Servern und bietet oft zusätzliche Funktionen wie globale Chat-Systeme und Lobby-Netzwerke.
Wenn Spieler sich direkt mit einem Unterserver verbinden können, umgehen sie all diese Vorteile. Das kann zu folgenden Problemen führen:
- Ungleichgewicht: Spieler landen möglicherweise auf Servern, für die sie nicht gedacht sind, beispielsweise auf Servern, die nur für bestimmte Ränge oder Events zugänglich sein sollten.
- Funktionsverlust: Globale Chat-Systeme, Lobby-Funktionen und andere Bungeecord-spezifische Features funktionieren nicht, da der Spieler nicht über den Proxy geleitet wird.
- Sicherheitsrisiken: Direkte Verbindungen können Sicherheitslücken öffnen, die Angreifer ausnutzen können, um auf deine Server zuzugreifen oder Schaden anzurichten.
- Performance-Probleme: Unkontrollierter Zugriff auf einzelne Server kann die Serverleistung beeinträchtigen und das Spielerlebnis beeinträchtigen.
Warum können Spieler sich überhaupt direkt verbinden?
Die Hauptursache für direkte Verbindungen liegt in der Konfiguration deiner Minecraft Server. Standardmäßig sind Minecraft Server so konfiguriert, dass sie Verbindungen von *jeder* IP-Adresse akzeptieren. Das bedeutet, dass jeder, der die IP-Adresse und den Port eines deiner Unterserver kennt, sich direkt verbinden kann.
Im Wesentlichen ist es so, als ob du ein Haus mit mehreren Zimmern hast, aber alle Zimmertüren offen und unbewacht sind. Jeder kann einfach hineingehen, ohne durch die Haustür zu müssen (die in diesem Fall der Bungeecord-Proxy wäre).
Die Lösung: Unterserver-Ports sperren und Bungeecord-Forwarding aktivieren
Die Lösung für dieses Problem besteht darin, die Ports deiner Unterserver so zu konfigurieren, dass sie nur Verbindungen vom Bungeecord-Server akzeptieren. Das funktioniert in zwei Schritten:
- Konfiguration der Unterserver (bukkit.yml/spigot.yml/paper.yml):
- Firewall-Konfiguration:
ufw allow from 123.45.67.89 to any port 25566
iptables -A INPUT -p tcp --dport 25566 -s 123.45.67.89 -j ACCEPT
iptables -A INPUT -p tcp --dport 25566 -j DROP
- Bungeecord Konfiguration (config.yml):
Jeder Unterserver (Lobby, Minigame, etc.) hat eine Konfigurationsdatei. Diese ist in der Regel `bukkit.yml`, `spigot.yml` oder `paper.yml`, abhängig von der verwendeten Minecraft Server-Software (Bukkit, Spigot oder Paper). In dieser Datei musst du die Einstellung `connection-throttle` auf einen hohen Wert setzen. Das verhindert, dass zu viele Verbindungen von einer einzigen IP Adresse gleichzeitig eingehen und schützt vor Denial-of-Service (DoS) Angriffen. Ein Wert von 400 sollte hier ausreichend sein.
Außerdem musst du sicherstellen, dass die `server.properties` Datei folgende Zeile enthält:
online-mode=true
Dies ist wichtig, um sicherzustellen, dass Minecraft-Server die Authentifizierung von Spielern über die offiziellen Minecraft-Server erfordern.
Der wichtigste Schritt ist die Konfiguration deiner Firewall (z.B. ufw, iptables oder die Firewall deines Cloud-Anbieters). Du musst sicherstellen, dass der Port, auf dem deine Unterserver laufen (standardmäßig 25565, aber oft geändert), *nur* für die IP-Adresse deines Bungeecord Proxy-Servers zugänglich ist. Das bedeutet, dass alle anderen Verbindungen zu diesem Port blockiert werden.
Nehmen wir an, dein Bungeecord-Server hat die IP-Adresse `123.45.67.89` und dein Unterserver läuft auf Port `25566`. Die Firewall-Regel würde dann ungefähr so aussehen (die genaue Syntax hängt von deiner Firewall ab):
Die erste Regel (ufw allow
oder iptables -A INPUT -p tcp --dport 25566 -s 123.45.67.89 -j ACCEPT
) erlaubt Verbindungen vom Bungeecord-Server zum Unterserver. Die zweite Regel (iptables -A INPUT -p tcp --dport 25566 -j DROP
) blockiert alle anderen Verbindungen zum Unterserver-Port. WICHTIG: Stelle sicher, dass du die korrekte IP-Adresse deines Bungeecord-Servers und den korrekten Port deiner Unterserver verwendest!
In der `config.yml` Datei deines Bungeecord-Servers musst du die Option `ip_forward` aktivieren:
ip_forward: true
Dies ist *unerlässlich*, damit Bungeecord die Spielerinformationen (IP-Adresse, UUID) korrekt an die Unterserver weiterleitet. Andernfalls funktionieren Plugins, die diese Informationen benötigen, nicht korrekt.
Detaillierte Schritte für verschiedene Firewall-Lösungen
Hier sind detailliertere Anleitungen für einige gängige Firewall-Lösungen:
UFW (Uncomplicated Firewall)
UFW ist eine benutzerfreundliche Firewall für Linux-Systeme.
- Aktiviere UFW:
sudo ufw enable
- Erlaube SSH (wichtig, damit du dich nicht aussperrst!):
sudo ufw allow ssh
odersudo ufw allow Portnummer/tcp
(ersetze Portnummer durch deinen SSH-Port) - Erlaube Verbindungen vom Bungeecord-Server zu den Unterservern:
sudo ufw allow from Bungeecord-IP to any port Unterserver-Port
(ersetze Bungeecord-IP und Unterserver-Port durch die entsprechenden Werte) - Verweigere alle anderen Verbindungen zu den Unterservern:
sudo ufw deny Unterserver-Port
- Überprüfe deine Firewall-Regeln:
sudo ufw status
iptables
iptables ist eine mächtige, aber komplexere Firewall für Linux-Systeme.
- Erlaube Verbindungen vom Bungeecord-Server zu den Unterservern:
sudo iptables -A INPUT -p tcp --dport Unterserver-Port -s Bungeecord-IP -j ACCEPT
- Verweigere alle anderen Verbindungen zu den Unterservern:
sudo iptables -A INPUT -p tcp --dport Unterserver-Port -j DROP
- Speichere die iptables-Regeln, damit sie nach einem Neustart erhalten bleiben (die genaue Vorgehensweise hängt von deiner Distribution ab; oft mit
sudo iptables-save
)
Cloud-Anbieter-Firewalls (z.B. AWS Security Groups, Google Cloud Firewall)
Die meisten Cloud-Anbieter bieten eigene Firewall-Lösungen an. Die Konfiguration ist je nach Anbieter unterschiedlich, aber das Prinzip ist das gleiche: Erlaube eingehenden Traffic vom Bungeecord-Server zu den Unterservern und blockiere alle anderen eingehenden Verbindungen zu den Unterservern.
Wichtige Hinweise
- Teste alles sorgfältig: Nachdem du die Firewall-Regeln eingerichtet hast, teste gründlich, ob Spieler sich nur noch über den Bungeecord-Proxy verbinden können. Versuche, dich direkt mit den Unterservern zu verbinden, um sicherzustellen, dass die Verbindungen blockiert werden.
- Dokumentiere deine Konfiguration: Notiere dir deine Firewall-Regeln und die Konfigurationseinstellungen, damit du sie später leichter nachvollziehen und ändern kannst.
- Regelmäßige Überprüfung: Überprüfe deine Firewall-Konfiguration regelmäßig, um sicherzustellen, dass sie weiterhin korrekt ist und keine unerwünschten Zugriffe erlaubt.
- Sicherheitsupdates: Halte deine Server-Software und deine Firewall auf dem neuesten Stand, um von den neuesten Sicherheitsupdates zu profitieren.
Fazit
Das Verhindern direkter Verbindungen zu deinen Minecraft Bungeecord Unterservern ist ein wichtiger Schritt zur Sicherung deines Netzwerks und zur Gewährleistung eines reibungslosen Spielerlebnisses. Durch die sorgfältige Konfiguration deiner Firewall und die Aktivierung des IP-Forwardings in Bungeecord kannst du sicherstellen, dass Spieler nur über den Proxy auf deine Server zugreifen können und somit alle Vorteile deines Bungeecord-Netzwerks nutzen können.