Deinen Minecraft-Server vor Port-Scanning schuetzen
Dein Minecraft-Server ist im Internet sichtbar, und automatisierte Scanning-Tools pruefen staendig IP-Bereiche nach offenen Ports. Wenn Port 25565 erreichbar ist, kann dein Server entdeckt, identifiziert und angegriffen werden -- oft ohne dass du es ueberhaupt bemerkst.
Dieser Artikel erklaert, welche Informationen dein Server standardmaessig preisgibt, wie du erkennst, dass du gescannt wirst, und wie du eine mehrschichtige Verteidigung aufbaust, die deinen Server fuer Angreifer praktisch unsichtbar macht.
Wie dein Server entdeckt wird
Jeder Netzwerkdienst laeuft auf einem bestimmten Port. SSH auf 22, MySQL auf 3306, HTTP auf 80, und Minecraft Java Edition standardmaessig auf 25565. Bedrock Edition nutzt UDP-Port 19132.
Automatisierte Scanning-Tools durchsuchen grosse IP-Bereiche und pruefen, welche Ports offen sind. Wenn sie Port 25565 finden, wird er als Minecraft-Server markiert. Von diesem einen offenen Port aus lassen sich Server-Version, Spielerzahl, installierte Plugins und mehr herausfinden.
Diese Scans laufen ununterbrochen. Spezialisierte Internet-Indexierungsdienste katalogisieren jeden offenen Port, den sie im gesamten Internet finden, und speichern die Ergebnisse in durchsuchbaren Datenbanken. Dein Minecraft-Server ist hoechstwahrscheinlich bereits in einem oder mehreren dieser Systeme indexiert.
Das bedeutet: Du kannst dich nicht auf Unbekanntheit verlassen. Selbst wenn du deinen Server nirgendwo beworben hast, ist er bereits katalogisiert. Verteidigung muss proaktiv sein.
Welche Informationen dein Server preisgibt
Ein Minecraft-Server ist standardmaessig sehr gespraechig. Bei der Verbindung zu Port 25565 (selbst ohne vollstaendigen Login) gibt der Server erhebliche Informationen preis:
Server List Ping (SLP). Wenn ein Client einen Server zur Liste hinzufuegt, sendet er eine SLP-Anfrage. Der Server antwortet mit JSON, das Version, MOTD, Icon, Spielerzahl und sogar eine Auswahl von Online-Spielernamen enthaelt.
Query Protocol. Wenn der Query-Port aktiviert ist (Standard 25565 auf UDP), gibt der Server noch mehr preis: Plugin-Liste, Welttyp, Software-Version, maximale Spielerzahl.
# server.properties — STANDARDEINSTELLUNG (unsicher)
enable-query=true
query.port=25565
Eine Query-Antwort legt solche Daten offen:
hostname: SurvivalCraft Network
gametype: SMP
version: 1.21.4
plugins: Paper 1.21.4: Essentials 2.20, WorldGuard 7.0.9, Vault 1.7.3
numplayers: 47
maxplayers: 200
Mit diesen Informationen kennt ein Angreifer deinen genauen Software-Stack und kann nach bekannten Schwachstellen in diesen spezifischen Plugin-Versionen suchen.
Favicon und Spieler-Sample
Die SLP-Antwort enthaelt auch das Server-Icon (Favicon) in Base64. Wenn es ein erkennbares Netzwerk- oder Community-Logo zeigt, identifiziert es deinen Server sofort.
Bedenklicher ist das Player Sample. Der Server sendet standardmaessig eine Liste einiger Online-Spieler als UUID + Name. Diese Daten koennen genutzt werden fuer:
- Identifikation aktiver Spieler-Nicknames und Admin-Accounts
- Verfolgung von Spieler-Aktivitaetsmustern ueber Zeit
- Bestimmung von Spitzenzeiten und Perioden niedriger Aktivitaet
- Sammlung von UUIDs fuer potenzielle Session-Angriffe
Auf kleinen Servern verraten diese Daten, wann der Admin online ist und wann der Server am verwundbarsten ist. Der Schutz dieser Informationen ist deine erste Verteidigungslinie.
Scan-Techniken verstehen (um sich dagegen zu verteidigen)
Um effektive Verteidigungsmassnahmen zu konfigurieren, musst du verstehen, welche Arten von Proben deine Firewall abfangen muss:
SYN-Proben (halboffene). Die gaengigste Technik. Eine Probe sendet ein TCP-SYN-Paket; ist der Port offen, antwortet der Server mit SYN-ACK. Die Probe sendet sofort RST und schliesst den Handshake nie ab. Viele einfache Firewalls loggen diese halboffenen Verbindungen nicht, sodass sie unbemerkt bleiben koennen.
FIN-, NULL- und XMAS-Proben. Diese nutzen nicht-standardmaessige TCP-Flag-Kombinationen, um gezielt einfache Firewalls zu umgehen. FIN-Proben senden ein Paket mit FIN-Flag, NULL-Proben ein Paket ohne Flags, und XMAS-Proben ein Paket mit mehreren Flags gleichzeitig. Viele einfache Firewalls sind nur konfiguriert, SYN-Pakete zu blockieren, und lassen diese Proben-Typen durch. Deine Firewall-Regeln muessen all diese beruecksichtigen.
UDP-Proben. Werden zur Entdeckung von Bedrock-Servern (Port 19132) und Minecraft Javas Query-Port genutzt. Bedrocks Raknet-Protokoll antwortet mit einem charakteristischen Unconnected Pong, der den Server zweifelsfrei identifiziert. Die Deaktivierung unnuetzter UDP-Dienste ist kritisch.
Service-Fingerprinting. Fortgeschrittene Proben senden protokollspezifische Anfragen (wie einen SLP-Handshake), um den genauen Dienst und seine Version zu identifizieren, unabhaengig vom Port. Deshalb ist eine Port-Aenderung allein kein ausreichender Schutz.
Port-Scans erkennen
Iptables-Logging
Der erste Schritt ist zu wissen, wann du gescannt wirst. Richte Logging fuer verdaechtige Verbindungsmuster ein:
# Neue Verbindungen zum MC-Port loggen
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW \
-m recent --set --name MC_SCAN
# IPs loggen, die zu haeufig verbinden
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW \
-m recent --update --seconds 60 --hitcount 10 --name MC_SCAN \
-j LOG --log-prefix "MC-SCAN-DETECT: " --log-level 4
Suche nach Mustern: eine IP, die in kurzer Zeit viele Ports anspricht, oder schnelle wiederholte Verbindungen zu deinem Minecraft-Port.
Fail2ban
Fail2ban parst Logs und sperrt verdaechtige IPs automatisch.
Filter fuer Scan-Erkennung erstellen:
# /etc/fail2ban/filter.d/portscan.conf
[Definition]
failregex = MC-SCAN-DETECT:.*SRC=<HOST>
ignoreregex =
Und das Jail:
# /etc/fail2ban/jail.d/portscan.conf
[portscan]
enabled = true
filter = portscan
logpath = /var/log/kern.log
maxretry = 5
findtime = 60
bantime = 3600
action = iptables-allports[name=portscan]
Wenn eine IP mehr als 5 Verbindungen in 60 Sekunden macht, wird sie fuer eine Stunde gesperrt.
PSAD (Port Scan Attack Detector)
PSAD analysiert iptables-Logs in Echtzeit und erkennt Scanning-Muster. Es kann verschiedene Proben-Typen unterscheiden und die Quell-IPs automatisch blockieren.
apt install psad
PSAD integriert sich mit iptables und bietet automatisierte Echtzeit-Reaktion auf Scans.
Manuelle Log-Analyse
Auch ohne spezialisierte Tools kann man Scanning erkennen, indem man Logs analysiert. Verraeterische Zeichen:
- Viele Verbindungen von einer IP zu verschiedenen Ports in kurzer Zeit
- Verbindungen zu Ports, die bekanntermaassen geschlossen sind (jemand prueeft Port 23, 445 oder 8443, die du nicht nutzt -- das ist Aufklaerung)
- Serien von SYN-Paketen ohne Handshake-Abschluss
- Verbindungen zu ungewoehnlichen Zeiten (3-5 Uhr morgens in der Zeitzone deiner Zielgruppe)
# Letzte Verbindungen zum MC-Port pruefen
journalctl -k | grep "MC-SCAN-DETECT" | tail -20
# Oder ueber iptables-Zaehler
iptables -L INPUT -v -n | grep 25565
Regelmaessige Log-Pruefungen helfen, Angriffsvorbereitungen vor deren Beginn zu erkennen.
Scan-Angriffsflaeche reduzieren
Query Protocol deaktivieren
Wenn du kein externes Monitoring ueber Query brauchst (und das brauchst du wahrscheinlich nicht), schalte es ab:
# server.properties
enable-query=false
Das eliminiert sofort den Informationsleck ueber Plugins, Welttyp und andere Details.
Server-Version und Spielerzahl verbergen
Plugins wie MiniMOTD oder ServerListPlus lassen dich die SLP-Antwort anpassen:
# MiniMOTD Config
server-list:
hide-player-count: true
version-name: " "
Nicht kugelsicher, aber es reduziert erheblich die verfuegbaren Informationen fuer automatisierte Tools.
Rate Limiting mit iptables
Verbindungshaeufigkeit zu deinem Minecraft-Port begrenzen:
# Neue Verbindungen begrenzen: max 3 pro Sekunde pro IP
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW \
-m recent --set --name MC_CONN
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW \
-m recent --update --seconds 1 --hitcount 4 --name MC_CONN \
-j DROP
Fuer SSH-Schutz:
# Max 3 SSH-Verbindungsversuche pro 60 Sekunden
iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
-m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
-m recent --update --seconds 60 --hitcount 4 --name SSH \
-j DROP
Mehr zur Firewall-Einrichtung findest du in unserem iptables-Guide fuer Minecraft.
Port Knocking
Port Knocking ist eine fortgeschrittene Technik, bei der ein Port geschlossen bleibt, bis der Client in einer bestimmten Reihenfolge an Ports "klopft".
So funktioniert es: Dein Minecraft-Port 25565 ist fuer alle geschlossen. Um ihn zu oeffnen, muss man sich nacheinander mit den Ports 7000, 8000, 9000 verbinden (die geheime Sequenz). Nach dem richtigen Klopfen oeffnet die Firewall Port 25565 fuer diese IP.
# /etc/knockd.conf
[openMinecraft]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 25565 -j ACCEPT
tcpflags = syn
[closeMinecraft]
sequence = 9000,8000,7000
seq_timeout = 5
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 25565 -j ACCEPT
tcpflags = syn
Der Haken: Port Knocking ist fuer oeffentliche Server unpraktisch. Jeder Spieler muesste zuerst klopfen, was fuer den Minecraft-Client schwer zu automatisieren ist. Es eignet sich besser fuer Admin-SSH-Zugang oder private Server.
Honeypots
Ein Honeypot ist ein Koeder-Dienst, der einen echten Server imitiert, um Angreifer zu erkennen und zu verfolgen. Du kannst einen gefaelschten Minecraft-Server auf dem Standard-Port 25565 betreiben, der alle Verbindungsversuche loggt, waehrend dein echter Server auf einem anderen Port laeuft.
Einfacher Python-Honeypot:
import socket
import json
import time
import logging
logging.basicConfig(filename='honeypot.log', level=logging.INFO)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('0.0.0.0', 25565))
sock.listen(5)
while True:
conn, addr = sock.accept()
logging.info(f"{time.strftime('%Y-%m-%d %H:%M:%S')} - Probe from {addr[0]}:{addr[1]}")
conn.close()
Gesammelte IPs koennen in iptables-Blocklisten oder Bedrohungsanalysen einfliessen. Fuer einen fortgeschrittenen Ansatz nutze fertige Loesungen wie HoneyMC oder stelle einen Honeypot in einem Docker-Container bereit. Ein Honeypot mit realistischer MOTD lockt mehr Proben an und liefert ein vollstaendigeres Bedrohungsbild.
Fuer automatisches Blockieren erkannter Scanner:
# Einfaches Skript zum Sperren von IPs aus dem Honeypot-Log
tail -f /var/log/honeypot.log | while read line; do
IP=$(echo "$line" | grep -oP '\d+\.\d+\.\d+\.\d+')
if [ -n "$IP" ]; then
iptables -A INPUT -s "$IP" -j DROP
echo "Banned scanner: $IP"
fi
done
Standard-Port aendern
Den Server von 25565 auf etwas wie 38742 zu verschieben reduziert automatisierte Scans. Die meisten Skripte und Bots pruefen nur Standard-Ports.
# server.properties
server-port=38742
Aber es ist keine echte Sicherheit allein:
- Vollstaendige Port-Scans finden dich trotzdem -- automatisierte Tools scannen alle 65535 Ports in Minuten
- Internet-Indexierungsdienste katalogisieren alle Ports, nicht nur Standard-Ports
- Service-Fingerprinting arbeitet nach Antwortsignatur, nicht nach Portnummer
Port-Aenderungen sind "Security through Obscurity." Nuetzlich als zusaetzliche Schicht, aber nie als einzige Massnahme.
SRV-Records fuer Komfort
Wenn du den Port aenderst, muessen sich Spieler ihn nicht merken. Nutze einen DNS-SRV-Record:
_minecraft._tcp.play.example.com. 86400 IN SRV 0 5 38742 mc.example.com.
Spieler verbinden sich mit play.example.com, und DNS zeigt automatisch auf den richtigen Port.
Wie unser DDoS-Schutz deinen Server verbirgt
Der zuverlaessigste Weg, sich vor Scannern zu verstecken, ist die echte IP gar nicht erst preiszugeben.
Wenn du MineGuard nutzt, verbinden sich Spieler mit unserer Proxy-IP. Nur unser Proxy kennt die echte Server-IP. Scanner sehen den Proxy und koennen den tatsaechlichen Server nicht finden.
Was das bringt:
- Scanning des Proxys ist nutzlos -- Angreifer koennen deine echte IP nicht entdecken
- Auf dem echten Server kannst du alle Ports ausser SSH und der Proxy-Verbindung schliessen
- Selbst wenn jemand den Proxy angreift, filtern wir den Traffic, bevor er deinen Server erreicht
- Internet-Indexierungsdienste katalogisieren unsere Proxy-IP, nicht deine
Wichtig ist, die echte IP nicht auf anderem Wege zu verraten. DNS-Historie (einige Dienste speichern alle vergangenen DNS-Eintraege), Lecks ueber E-Mail-Header, direkte API-Verbindungen ohne Proxy oder sogar versehentliche Erwaehnung der IP in oeffentlichen Chats koennen den gesamten Schutz zunichtemachen.
Einige Angreifer nutzen historische DNS-Daten, um echte IPs zu finden. Wenn deine Domain einmal direkt auf den Server zeigte und du dann einen Proxy hinzugefuegt hast, ist die alte IP bereits indexiert. Die Loesung ist, die Server-IP gleichzeitig mit der Aktivierung des Schutzes zu aendern.
Mehr dazu in unserem Guide zum Verbergen der Server-IP.
Firewall-Konfiguration mit unserem Proxy
Auf dem echten Server den Minecraft-Port nur fuer den Proxy freigeben:
# Minecraft nur von Proxy-IP erlauben
iptables -A INPUT -p tcp --dport 25565 -s PROXY_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 25565 -j DROP
# SSH nur von deiner IP erlauben
iptables -A INPUT -p tcp --dport 22 -s DEINE_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
Jetzt zeigt ein vollstaendiger 65535-Port-Scan nichts Interessantes. Der Server sieht aus wie ein leerer Host.
Mehrschichtige Verteidigungsstrategie
Keine einzelne Massnahme bietet vollstaendigen Schutz. Du brauchst einen mehrschichtigen Ansatz:
- Nutze einen DDoS-Proxy zum Verbergen der echten IP
- Schliesse alle unnoetigen Ports ueber iptables
- Deaktiviere Query Protocol in server.properties
- Verberge Version und Spielerzahl mit Plugins
- Richte Rate Limiting fuer Verbindungen ein
- Installiere fail2ban fuer automatisches Scanner-Blocking
- Wechsle auf einen nicht-Standard-Port (zusaetzlich zu anderen Massnahmen)
- Verrate deine IP nicht durch DNS-Historie, E-Mail-Header oder andere Kanaele
- Pruefe regelmaessig, welche Informationen dein Server nach aussen preisgibt
Fuer die vollstaendige Checkliste sieh dir unsere Minecraft-Server-Sicherheitscheckliste fuer 2026 an.
Port-Scanning ist der erste Schritt jedes gezielten Angriffs. Indem du die Sichtbarkeit deines Servers reduzierst und ordentliche Verteidigungsmassnahmen aufbaust, machst du diesen ersten Schritt nutzlos. Ein Angreifer kann keinen Server attackieren, den er nicht finden kann -- und mit der richtigen Einrichtung bleibt dein Server unsichtbar.
Schützen Sie Ihren Server vor DDoS-Angriffen
Kostenloser Schutz mit 5-Minuten-Einrichtung. 1 TB Traffic inklusive.
Kostenlos testenWeitere Artikel
Discord Whitelist Bot: Bewerbungsformular und Auto-Whitelist für SMP
Discord-Bot mit Bewerbungsformular, Accept/Deny-Buttons und Auto-Whitelist per RCON oder DiscordSRV. Fertige Bots, eigener discord.js-Aufbau, Fake-Schutz.
CoreProtect: Grief rückgängig machen und Vorfälle auf dem Minecraft-Server untersuchen
Wie du CoreProtect installierst, den Griefer per /co lookup findest und Schäden mit /co rollback rückgängig machst, ohne Welt-Backup einzuspielen.
DDoS-Angriffstrends für Minecraft-Server 2026
Die wichtigsten DDoS-Angriffstrends für Minecraft-Server 2025-2026: wachsende Volumen, neue Angriffsvektoren, intelligente Botnetze und wie man sich dagegen schützt.