DDoS/Dice-Sicherheitslücke und P2P-Sicherheitsmaßnahmen in Metin2 PvP-Servern
Die von Cyber-Angreifern am meisten angegriffenen Punkte der Metin2-PvP-Server sind P2P-Ports (Peer-to-Peer) und Dice-Schwachstellen. Durch die Ausnutzung dieser Schwachstellen können Angreifer In-Game-Kanäle (CH) herabstufen, den Server zum Absturz bringen oder sich selbst ungültige Berechtigungen erteilen. In diesem Leitfaden haben wir die Schritte zusammengestellt, die Sie unternehmen müssen, um die Sicherheit Ihres Servers zu gewährleisten und diese Angriffe zu verhindern.
1. P2P-Ports zur Außenwelt schließen (kritischste Maßnahme)
P2P-Ports ermöglichen es Spielkanälen, Daten untereinander auszutauschen. Bleiben diese Ports nach außen offen, können Angreifer durch das Senden gefälschter Befehle an den Server Admin-Rechte erlangen oder die Kanäle schließen. Für die Lösung müssen Sie die FreeBSD-Firewall (IPFW oder PF) aktivieren:
- Ihren Server mit Filezilla
/etc/rc.confÖffnen Sie die Datei und aktivieren Sie die Firewall, indem Sie diese Zeilen hinzufügen:
firewall_enable="YES" firewall_script="/etc/ipfw.rules"
- Dann
/etc/ipfw.rulesErstellen Sie eine Datei mit dem Namen , lassen Sie die Ports des Spiels zu, die nach außen offen sein müssen (Eingangsport, CH-Ports), und schreiben Sie wie in Ihren CONFIG-Dateien geschrieben. P2P-Ports nur auf localhost (127.0.0.1) Fügen Sie eine Regel zum Abhören hinzu.
2. P2P-Sicherheitseinstellung in CONFIG-Dateien
Wenn Sie keine Quelldateien verwenden und die ipfw-Einstellungen kompliziert sind, können Sie P2P-Verbindungen nur über die CONFIG-Datei jedes Kanals auf den Server beschränken:
/usr/game/cores/channel1/CONFIGÖffnen Sie die Datei.- Fügen Sie den folgenden Befehl in die unterste Zeile der Datei ein:
bind_ip 127.0.0.1 - Dank dieses Befehls lehnt dieser Kanal direkte Port-Listening-Anfragen von externen Netzwerken ab. Wiederholen Sie diesen Vorgang für alle CH-, Auth- und Game99-CONFIG-Dateien.
3. Deaktivieren des Schwachstellenbefehls „Dice“.
In älteren oder ungeschützten Dateien konnten Spieler die Spiel-Engine in einer Schleife durchlaufen und CH löschen, indem sie einen bestimmten Dice-Befehl („/dice“) in die Chatzeile eingaben. Um diese Lücke zu schließen:
- Wenn Sie Quellcode haben,
cmd.cppÖffnen Sie die Datei undACM(do_dice)indem Sie die Zeile ganz löschen oder beginnen//Deaktivieren Sie den Befehl vollständig und kompilieren Sie die Quelle neu. - Wenn Sie keine Quelldateien verwenden, können Sie eine im Spiel herunterladen Quest (Lua-Skript) Verwenden Sie Filter, die den Spieler automatisch aus dem Spiel werfen oder das Wort blockieren, wenn das Wort „/dice“ in der Chatzeile durch Eingabe erwähnt wird.
Dieser Artikel ist speziell für PvPServer vorbereitet.