MCSec

API

Leve a lista ao seu servidor, verifique endereços avulsos e denuncie o que seu servidor bloqueia. Toda chamada é JSON via HTTPS.

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

  1. Baixar MCSec.jar and put it in the plugins folder of your proxy (best) or server.
  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.

Sua chave

Use a chave de API do seu servidor em Painel → API e integrações. Só servidores ativos no CraftRank podem usar a MCSec. Envie a chave em um cabeçalho, nunca no endereço:

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

Vinte chaves erradas de um endereço em dez minutos e esse endereço espera dez minutos.

Baixar a lista

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

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

Verificar um endereço

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

Até 120 consultas por minuto. A resposta traz listed, score, ref e as categorias.

Denunciar um atacante

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

Para vários de uma vez, envie até 100 em uma chamada:

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

Denuncie só o que seu servidor bloqueou. Escreva a evidência em poucas palavras: o que foi visto e quanto. Não cole o ataque em si (payloads, strings de exploit) nem endereços, links ou e-mails; eles são removidos, pois a evidência é pública. Denúncias do mesmo endereço e categoria em dez minutos contam como uma. Até 2.000 denúncias por hora por servidor. Junte as denúncias e envie com bulk a cada poucos segundos em vez de uma chamada por denúncia: mais de cerca de 90 chamadas por minuto de um endereço são freadas pelo firewall do site.

Categorias

categoryNomeO que é
bot-join-floodEnxurrada de botsMuitos jogadores falsos entrando de um endereço ou faixa.
ping-floodFlood de ping e statusPings da lista de servidores enviados centenas de vezes por segundo.
query-floodFlood de queryPacotes UDP de query usados para sobrecarregar ou refletir tráfego.
ddosFlood de rede (DDoS)Tráfego bruto para derrubar o servidor.
crash-exploitExploit de crashPacotes feitos para derrubar o servidor: livros, NBT, chunks.
packet-spamSpam de pacotesPacotes de movimento, chat ou clique muito acima do normal.
login-brute-forceForça bruta no loginMuitas senhas erradas em /login ou /register.
rcon-brute-forceForça bruta no RCONTentativas de senha na porta RCON.
server-scannerScanner de servidoresBots que varrem a internet atrás de servidores abertos.
port-scanVarredura de portasSondagem de muitas portas na mesma máquina.
forwarding-bypassBurlar o proxyEntrar direto no backend para pular o BungeeCord ou Velocity.
remote-codeTentativa de código remotoLog4Shell e payloads parecidos em nomes ou chat.
chat-spamBots de spam no chatBots que postam anúncios, links ou ofensas logo ao entrar.
proxy-abuseAbuso de proxy aberto ou VPNNós de saída usados para ataques repetidos ou fugir de banimentos.
website-attackAtaque ao siteAtaques ao site, loja ou páginas de voto do servidor.
panel-attackAtaque ao painel de hospedagemTentativas de login ou exploits contra painéis de jogo.

Como a pontuação funciona

Cada servidor que denunciou um endereço nos últimos 30 dias soma à pontuação. Um servidor conta mais quando outros denunciam os mesmos endereços (sua confiança), quando denunciou o endereço várias vezes e quando as denúncias são recentes; uma denúncia de uma semana conta metade. Exploits de crash e código remoto contam mais que varreduras.

  • Um servidor sozinho nunca leva um endereço acima de 55. Recusar exige vários servidores.
  • Conexões residenciais e móveis ficam em 60 ou menos e saem da lista após 3 dias sem denúncias, porque seus endereços mudam.
  • A partir de 40 entra na lista. A partir de 75 é recusado por servidores no padrão.
  • Um registro acaba após 14 dias sem denúncias.

Formatos

Adicione format= à chamada da lista. port=25565 limita os formatos de firewall a uma porta.

formatO que você recebe
jsonThe default: every address with its reference, score, category and last report.
txtUm endereço por linha.
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.

Erros

401 bad_key, 403 not_active, 403 blocked, 400 bad_ip / bad_category / not_reportable (endereços privados, buscadores e Cloudflare nunca entram na lista), 402 plan_required, 429 rate_limited com um cabeçalho Retry-After.