API
Pobieraj listę na serwer, sprawdzaj pojedyncze adresy i zgłaszaj to, co blokuje serwer. Każde wywołanie to JSON przez HTTPS.
Plugin MCSec
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.
- Pobierz MCSec.jar and put it in the
pluginsfolder of your proxy (best) or server. - 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.
Twój klucz
Użyj klucza API serwera z Panelu → API i integracje. Z MCSec mogą korzystać tylko serwery opublikowane na CraftRank. Wysyłaj klucz w nagłówku, nigdy w adresie:
X-API-Key: your-32-character-key
Dwadzieścia błędnych kluczy z jednego adresu w dziesięć minut i ten adres czeka dziesięć minut.
Pobierz listę
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 Formaty.
{"min":75,"count":2,"generated":1793567000,
"addresses":[{"ip":"203.0.113.7","ref":"MCT-7F3A9C","score":92,"category":"bot-join-flood","last":1793566880}, …]}
Sprawdź jeden adres
GET https://craftrank.org/api/mcsec?a=check&ip=203.0.113.7
Do 120 sprawdzeń na minutę. Odpowiedź zawiera listed, score, ref i kategorie.
Zgłoś atakującego
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
Aby wysłać wiele naraz, wyślij do 100 w jednym wywołaniu:
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}]}
Zgłaszaj tylko to, co twój serwer sam zablokował. Opisz dowód w kilku słowach: co widziano i ile. Nie wklejaj samego ataku (payloady, ciągi exploitów) ani adresów, linków czy e-maili; są usuwane, bo dowody są publiczne. Zgłoszenia tego samego adresu i kategorii w ciągu dziesięciu minut liczą się jako jedno. Do 2000 zgłoszeń na godzinę na serwer. Zbieraj zgłoszenia i wysyłaj je przez bulk co kilka sekund zamiast jednego wywołania na zgłoszenie: ponad ok. 90 wywołań na minutę z jednego adresu spowalnia zapora strony.
Kategorie
| category | Nazwa | Co to jest |
|---|---|---|
bot-join-flood | Zalew botów | Wielu fałszywych graczy wchodzących z jednego adresu lub zakresu. |
ping-flood | Flood pingów i statusu | Pingi listy serwerów wysyłane setki razy na sekundę. |
query-flood | Flood zapytań query | Pakiety UDP query używane do obciążania lub odbijania ruchu. |
ddos | Flood sieciowy (DDoS) | Surowy ruch mający wyłączyć serwer. |
crash-exploit | Exploit crashujący | Pakiety zrobione, by scrashować serwer: książki, NBT, chunki. |
packet-spam | Spam pakietami | Pakiety ruchu, czatu lub kliknięć daleko ponad normę. |
login-brute-force | Brute force logowania | Wiele błędnych haseł przy /login lub /register. |
rcon-brute-force | Brute force RCON | Zgadywanie hasła na porcie RCON. |
server-scanner | Skaner serwerów | Boty przeczesujące internet w poszukiwaniu otwartych serwerów. |
port-scan | Skanowanie portów | Sprawdzanie wielu portów na tej samej maszynie. |
forwarding-bypass | Obejście proxy | Wejście bezpośrednio na backend z pominięciem BungeeCord lub Velocity. |
remote-code | Próba zdalnego kodu | Log4Shell i podobne ładunki w nickach lub czacie. |
chat-spam | Boty spamujące na czacie | Boty publikujące reklamy, linki lub obelgi zaraz po wejściu. |
proxy-abuse | Nadużycie otwartego proxy lub VPN | Węzły wyjściowe używane do powtarzanych ataków lub omijania banów. |
website-attack | Atak na stronę | Ataki na stronę, sklep lub strony głosowania serwera. |
panel-attack | Atak na panel hostingu | Zgadywanie loginów lub exploity przeciw panelom gier. |
Jak działa wynik
Każdy serwer, który zgłosił adres w ostatnich 30 dniach, podnosi jego wynik. Serwer liczy się bardziej, gdy inne serwery zgłaszają te same adresy (jego zaufanie), gdy zgłosił adres kilka razy i gdy zgłoszenia są świeże; zgłoszenie sprzed tygodnia liczy się w połowie. Exploity crashujące i próby zdalnego kodu liczą się bardziej niż skany.
- Jeden serwer nigdy nie podniesie adresu powyżej 55. Odrzucenie wymaga kilku serwerów.
- Łącza domowe i komórkowe zostają na poziomie 60 lub niżej i znikają z listy po 3 dniach bez zgłoszeń, bo ich adresy się zmieniają.
- Od 40 trafia na listę. Od 75 odrzucają go serwery z ustawieniem domyślnym.
- Wpis wygasa po 14 dniach bez zgłoszeń.
Formaty
Dodaj format= do wywołania listy. port=25565 ogranicza formaty zapory do jednego portu.
| format | Co dostajesz |
|---|---|
json | The default: every address with its reference, score, category and last report. |
txt | Jeden adres w wierszu. |
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 -
Wywołania Pro i 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.
Błędy
401 bad_key, 403 not_active, 403 blocked, 400 bad_ip / bad_category / not_reportable (adresy prywatne, wyszukiwarki i Cloudflare nigdy nie trafiają na listę), 402 plan_required, 429 rate_limited z nagłówkiem Retry-After.