API
Lade die Liste in deinen Server, prüfe einzelne Adressen und melde, was dein Server blockt. Jeder Aufruf ist JSON über HTTPS.
Das MCSec-Plugin
The easiest way: one plugin for Spigot, Paper, BungeeCord, Waterfall and Velocity. It downloads the list, refuses listed addresses at login and reports join floods, ping floods, chat spam bots and crash books by itself.
- MCSec.jar and put it in the
pluginsfolder of your proxy (best) or server. herunterladen - Start the server once, then put your API key in
plugins/MCSec/config.properties(api-key=). - Run
/mcsec reload./mcsec statusshows the list size and what was refused and reported.
Commands (permission mcsec.admin): /mcsec status, /mcsec reload, /mcsec check <player|ip>, /mcsec report <player|ip> <category> [evidence]. Set mode=log to only watch for a while before refusing anyone.
Dein Schlüssel
Nutze den API-Schlüssel deines Servers unter Panel → API & Integrationen. Nur Server, die auf CraftRank live sind, können die MCSec nutzen. Sende den Schlüssel in einem Header, nie in der Adresse:
X-API-Key: your-32-character-key
Zwanzig falsche Schlüssel von einer Adresse in zehn Minuten, und diese Adresse muss zehn Minuten warten.
Liste laden
GET https://craftrank.org/api/mcsec?a=blocklist&min=75
GET https://craftrank.org/api/mcsec?a=blocklist&min=60&format=txt
GET https://craftrank.org/api/mcsec?a=blocklist&category=crash-exploit
min is the lowest confidence to include, 40 to 100 (default 75). format=txt gives one address per line; IPv6 entries are /64 ranges. Pull at most once a minute on Free (every 15 seconds on Pro, every 10 on Network); every few minutes is enough for most servers. Firewall formats are under Formate.
{"min":75,"count":2,"generated":1793567000,
"addresses":[{"ip":"203.0.113.7","ref":"MCT-7F3A9C","score":92,"category":"bot-join-flood","last":1793566880}, …]}
Eine Adresse prüfen
GET https://craftrank.org/api/mcsec?a=check&ip=203.0.113.7
Bis zu 120 Abfragen pro Minute. Die Antwort enthält listed, score, ref und die Kategorien.
Einen Angreifer melden
POST https://craftrank.org/api/mcsec?a=report
ip=203.0.113.7&category=bot-join-flood&evidence=46 joins in 60 s with 46 names
Für viele auf einmal sende bis zu 100 in einem Aufruf:
POST https://craftrank.org/api/mcsec?a=bulk
Content-Type: application/json
{"reports":[{"ip":"203.0.113.7","category":"crash-exploit","evidence":"oversized book packet, 2.1 MB","time":1793566880}]}
Melde nur, was dein Server selbst geblockt hat. Schreib den Beleg in wenigen Worten: was gesehen wurde und wie viel. Füge nicht den Angriff selbst ein (Payloads, Exploit-Strings) und keine Adressen, Links oder E-Mail-Adressen; sie werden entfernt, weil Belege öffentlich sind. Meldungen derselben Adresse und Kategorie innerhalb von zehn Minuten zählen als eine. Bis zu 2.000 Meldungen pro Stunde und Server. Sammle Meldungen und sende sie alle paar Sekunden mit bulk statt einem Aufruf pro Meldung: Mehr als etwa 90 Aufrufe pro Minute von einer Adresse bremst die Firewall der Website.
Kategorien
| category | Name | Was es ist |
|---|---|---|
bot-join-flood | Bot-Join-Flut | Viele falsche Spieler, die von einer Adresse oder einem Bereich joinen. |
ping-flood | Ping- und Status-Flut | Serverlisten-Pings, hunderte Male pro Sekunde. |
query-flood | Query-Flut | UDP-Query-Pakete, um Last zu erzeugen oder Verkehr zu reflektieren. |
ddos | Netzwerkflut (DDoS) | Roher Datenverkehr, der den Server offline nehmen soll. |
crash-exploit | Crash-Exploit | Pakete, die den Server abstürzen lassen sollen: Bücher, NBT, Chunks. |
packet-spam | Paket-Spam | Bewegungs-, Chat- oder Klickpakete weit über dem Normalen. |
login-brute-force | Login-Brute-Force | Viele falsche Passwörter bei /login oder /register. |
rcon-brute-force | RCON-Brute-Force | Passwortraten am RCON-Port. |
server-scanner | Server-Scanner | Bots, die das Internet nach offenen Servern absuchen. |
port-scan | Portscan | Abtasten vieler Ports auf derselben Maschine. |
forwarding-bypass | Forwarding-Umgehung | Direkter Join auf den Backend-Server, um BungeeCord oder Velocity zu umgehen. |
remote-code | Remote-Code-Versuch | Log4Shell und ähnliche Payloads in Namen oder Chat. |
chat-spam | Chat-Spam-Bots | Bots, die direkt nach dem Join Werbung, Links oder Beleidigungen posten. |
proxy-abuse | Missbrauch offener Proxys oder VPNs | Ausgangsknoten für wiederholte Angriffe oder Bann-Umgehung. |
website-attack | Angriff auf die Website | Angriffe auf Website, Shop oder Vote-Seiten des Servers. |
panel-attack | Angriff auf das Hosting-Panel | Login-Raten oder Exploits gegen Game-Panels. |
So funktioniert der Wert
Jeder Server, der eine Adresse in den letzten 30 Tagen gemeldet hat, erhöht ihren Wert. Ein Server zählt mehr, wenn andere Server dieselben Adressen melden (sein Vertrauen), wenn er die Adresse mehrmals gemeldet hat und wenn die Meldungen neu sind; eine Woche alte Meldung zählt halb. Crash-Exploits und Remote-Code-Versuche zählen mehr als Scans.
- Ein einzelner Server kann eine Adresse nie über 55 bringen. Zum Ablehnen braucht es mehrere Server.
- Heim- und Mobilverbindungen bleiben bei 60 oder darunter und verlassen die Liste nach 3 Tagen ohne Meldungen, weil sich ihre Adressen ändern.
- Ab 40 gelistet. Ab 75 lehnen Server mit der Standardeinstellung ab.
- Ein Eintrag endet nach 14 Tagen ohne Meldungen.
Formate
Füge format= zum Blocklist-Aufruf hinzu. port=25565 beschränkt die Firewall-Formate auf einen Port.
| format | Das bekommst du |
|---|---|
json | The default: every address with its reference, score, category and last report. |
txt | Eine Adresse pro Zeile. |
csv | A spreadsheet: ip, ref, score, category, last_report. |
ipset | For ipset restore: sets mcsec (IPv4) and mcsec6 (IPv6). |
nftables | For nft -f: a table inet mcsec that drops listed addresses. |
iptables, ip6tables | For iptables-restore -n: a chain MCSEC; jump to it from INPUT. |
crowdsec | For cscli decisions import -i file.json: 24-hour bans. |
curl -s -H "X-API-Key: $KEY" "https://craftrank.org/api/mcsec?a=blocklist&min=75&format=nftables&port=25565" | nft -f -
Aufrufe für Pro und Network
These calls come with the paid plans.
GET https://craftrank.org/api/mcsec?a=history&ip=203.0.113.7 (Pro)
GET https://craftrank.org/api/mcsec?a=changes&since=0 (Network)
POST https://craftrank.org/api/mcsec?a=check_bulk {"ips":["203.0.113.7", …]} (Network, up to 500)
The changes feed returns addresses that joined or left the list, or crossed 75; pass the next number back as since. A call your plan does not include answers 402 plan_required.
Fehler
401 bad_key, 403 not_active, 403 blocked, 400 bad_ip / bad_category / not_reportable (private Adressen, Suchmaschinen und Cloudflare werden nie gelistet), 402 plan_required, 429 rate_limited mit einem Retry-After-Header.