MCSec

API

Listeyi sunucuna çek, tek tek adresleri kontrol et ve sunucunun engellediklerini raporla. Her çağrı HTTPS üzerinden JSON'dur.

MCSec eklentisi

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.

  1. MCSec.jar and put it in the plugins folder of your proxy (best) or server. sürümünü indir
  2. Start the server once, then put your API key in plugins/MCSec/config.properties (api-key=).
  3. Run /mcsec reload. /mcsec status shows 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.

Anahtarın

Sunucunun API anahtarını Panel → API ve entegrasyonlar bölümünden al. MCSec'i yalnızca CraftRank'te yayında olan sunucular kullanabilir. Anahtarı adreste değil, bir başlıkta gönder:

X-API-Key: your-32-character-key

Bir adresten on dakikada yirmi yanlış anahtar gelirse o adres on dakika bekler.

Listeyi çek

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 Formatlar.

{"min":75,"count":2,"generated":1793567000,
 "addresses":[{"ip":"203.0.113.7","ref":"MCT-7F3A9C","score":92,"category":"bot-join-flood","last":1793566880}, …]}

Tek bir adresi kontrol et

GET https://craftrank.org/api/mcsec?a=check&ip=203.0.113.7

Dakikada en fazla 120 sorgu. Yanıtta listed, score, ref ve kategoriler bulunur.

Bir saldırganı raporla

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

Birçoğu için tek çağrıda en fazla 100 gönder:

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}]}

Yalnızca sunucunun kendisinin engellediklerini raporla. Kanıtı birkaç kelimeyle yaz: ne görüldü ve ne kadar. Saldırının kendisini (payload, exploit metni) ve adres, link veya e-posta adresi ekleme; kanıt herkese açık olduğu için bunlar silinir. Aynı adres ve kategori için on dakika içindeki raporlar tek sayılır. Sunucu başına saatte en fazla 2.000 rapor. Raporları biriktir ve her rapor için ayrı çağrı yerine birkaç saniyede bir bulk ile gönder: bir adresten dakikada yaklaşık 90'dan fazla çağrıyı site güvenlik duvarı yavaşlatır.

Kategoriler

categoryAdNedir
bot-join-floodBot giriş akınıTek bir adres veya aralıktan giren çok sayıda sahte oyuncu.
ping-floodPing ve durum akınıSaniyede yüzlerce kez gönderilen sunucu listesi pingleri.
query-floodQuery akınıYük bindirmek veya trafiği yansıtmak için kullanılan UDP query paketleri.
ddosAğ akını (DDoS)Sunucuyu çevrimdışı bırakmayı amaçlayan ham trafik.
crash-exploitÇökertme açığıSunucuyu çökertmek için hazırlanmış paketler: kitaplar, NBT, chunk'lar.
packet-spamPaket spam'iNormalin çok üstünde hareket, sohbet veya tıklama paketleri.
login-brute-forceGiriş kaba kuvvet saldırısı/login veya /register'da çok sayıda yanlış şifre.
rcon-brute-forceRCON kaba kuvvet saldırısıRCON portunda şifre denemesi.
server-scannerSunucu tarayıcıİnterneti açık sunucu aramak için tarayan botlar.
port-scanPort taramasıAynı makinedeki çok sayıda portu yoklama.
forwarding-bypassYönlendirme atlatmaBungeeCord veya Velocity'yi atlamak için doğrudan arka sunucuya girme.
remote-codeUzaktan kod denemesiİsimlerde veya sohbette Log4Shell ve benzeri yükler.
chat-spamSohbet spam botlarıGirer girmez reklam, link veya hakaret yazan botlar.
proxy-abuseAçık proxy veya VPN kötüye kullanımıTekrarlanan saldırılar veya ban atlatma için kullanılan çıkış noktaları.
website-attackWeb sitesi saldırısıSunucunun web sitesine, mağazasına veya oy sayfalarına saldırılar.
panel-attackHosting paneli saldırısıOyun panellerine giriş denemeleri veya açık istismarı.

Puan nasıl hesaplanır

Son 30 günde bir adresi raporlayan her sunucu puanına katkı yapar. Diğer sunucular aynı adresleri raporladıkça (güveni), adresi birkaç kez raporladıkça ve raporlar yeni oldukça sunucunun etkisi artar; bir haftalık rapor yarım sayılır. Çökertme açıkları ve uzaktan kod denemeleri taramalardan daha çok sayılır.

  • Tek bir sunucu bir adresi asla 55'in üstüne çıkaramaz. Reddetmek için birkaç sunucu gerekir.
  • Ev ve mobil bağlantılar 60 veya altında kalır ve adresleri değiştiği için 3 gün rapor gelmezse listeden çıkar.
  • 40 ve üstü listelenir. 75 ve üstünü varsayılanı kullanan sunucular reddeder.
  • Bir kayıt 14 gün rapor gelmezse biter.

Formatlar

Liste çağrısına format= ekle. port=25565, güvenlik duvarı formatlarını tek bir porta sınırlar.

formatNeler alırsın
jsonThe default: every address with its reference, score, category and last report.
txtSatır başına bir adres.
csvA spreadsheet: ip, ref, score, category, last_report.
ipsetFor ipset restore: sets mcsec (IPv4) and mcsec6 (IPv6).
nftablesFor nft -f: a table inet mcsec that drops listed addresses.
iptables, ip6tablesFor iptables-restore -n: a chain MCSEC; jump to it from INPUT.
crowdsecFor 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 -

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.

Hatalar

401 bad_key, 403 not_active, 403 blocked, 400 bad_ip / bad_category / not_reportable (özel adresler, arama motorları ve Cloudflare asla listelenmez), 402 plan_required, 429 rate_limited ve Retry-After başlığı.