Skip to content
Pular para o conteúdo
Voltar ao Blog
BungeeGuard: Protegendo sua rede de proxy Minecraft

BungeeGuard: Protegendo sua rede de proxy Minecraft

Alexandru Maftei
Alexandru Maftei
@ice
Atualizado
18 visualizações
TL;DR:BungeeGuard é um plugin de segurança que impede que jogadores maliciosos contornem seu proxy Minecraft e se conectem diretamente aos servidores de backend. Usa autenticação baseada em token em proxies BungeeCord e Velocity. Essencial para qualquer rede multi-servidor acessível ao público.

"Uma solução de segurança/firewall baseada em plugin para proxies BungeeCord e Velocity."

lucko/BungeeGuard · github.com
⭐ 225 estrelas💻 Java📄 MIT

Rodando uma rede Minecraft multi-servidor com um proxy? Então você provavelmente já ouviu falar que instalações de BungeeCord são inseguras por padrão. Jogadores maliciosos podem contornar seu proxy completamente e se conectar diretamente aos servidores de backend, entrando com qualquer nome de usuário ou UUID que desejarem. É uma vulnerabilidade bem conhecida que derrubou vários servidores grandes.

Conheça BungeeGuard. É um plugin Java direto que adiciona autenticação baseada em token entre seu proxy e servidores de backend. Em vez de confiar em regras de firewall complicadas (ou em hospedagem compartilhada onde você não consegue usá-las), BungeeGuard cuida da autenticação para você.

O que este projeto faz

A ideia por trás do BungeeGuard é quase risível em sua simplicidade. Seu proxy adiciona um token de autenticação secreto ao handshake de login quando um jogador se conecta. Seus servidores de backend verificam se o token está presente e válido antes de permitir que o jogador entre. É isso. Sem mágica de firewall. Sem pesadelos com iptables. Apenas um plugin que funciona.

Quando um jogador legítimo se conecta ao seu proxy (vamos chamá-lo de proxy.example.com), o BungeeGuard no proxy incorpora um token secreto pré-compartilhado nos dados de conexão. Quando o cliente do jogador tenta ingressar em um servidor de backend (talvez 192.168.1.50:25565), a cópia do BungeeGuard no backend verifica esse token. Se estiver faltando ou errado, a conexão é rejeitada imediatamente. Se alguém tenta se conectar diretamente a esse servidor de backend sem passar pelo proxy, não há token e são bloqueados.

Isso funciona em proxies BungeeCord e Velocity, o que cobre basicamente toda configuração grande de rede Minecraft disponível.


Quando você precisa disso

Se você estiver rodando uma rede pequena em sua LAN, você provavelmente não precisa do BungeeGuard. Sua rede local provavelmente não está sob ataque. Mas se seus servidores estão acessíveis ao público pela internet, ou você tem servidores expostos além da sua LAN, você está vulnerável.

Isso se torna crítico se você estiver rodando uma rede onde a progressão do jogador ou a economia importam. Invasões de conta, roubo de itens, até mesmo apenas contas troll entrando com credenciais falsas podem arruinar a experiência para jogadores legítimos. Quanto maior sua rede, mais atraente um alvo você se torna.

Você também pode estar em hospedagem compartilhada onde não consegue configurar regras de firewall você mesmo. BungeeGuard é sua corda de salvação nesse cenário.


Como instalar BungeeGuard

A instalação depende se você está usando BungeeCord ou Velocity. São processos ligeiramente diferentes.

Configuração de BungeeCord

Primeiro, pegue a versão mais recente do BungeeGuard.jar da página de releases. A versão atual é v1.4.0, que inclui uma correção de segurança importante se você estiver atualizando de uma versão mais antiga. Após atualizar, rotacionie seu token em caso de alguém ter conseguido o antigo.

Coloque o jar na pasta de plugins do seu BungeeCord:

bash
cp BungeeGuard.jar /path/to/bungeecord/plugins/
cd /path/to/bungeecord
java -jar BungeeCord.jar

Quando o BungeeCord iniciar, ele criará um diretório `plugins/BungeeGuard/` com um arquivo `token.yml`. Abra esse arquivo e copie seu token. Você vai precisar dele para seus servidores de backend.

Uma coisa importante: certifique-se de que `ip_forward` está definido como `true` no seu `config.yml` do BungeeCord. Se você esquecer disso, BungeeGuard não funcionará corretamente.

Configuração de Velocity

Se você estiver usando Velocity (e você deveria estar se estiver construindo uma rede moderna), o processo é ainda mais simples. Velocity 1.1.0 e versões mais recentes vêm com BungeeGuard embutido. Você não precisa instalar o plugin de forma alguma.

Apenas edite seu `velocity.toml` e defina:

toml
player-info-forwarding-mode = "bungeeguard"

Seu segredo de encaminhamento está nesse mesmo arquivo de configuração. Esse é seu token do BungeeGuard aí.

Servidores de Backend

Agora instale BungeeGuard.jar na pasta de plugins de cada servidor Spigot/Paper de backend:

bash
cp BungeeGuard.jar /path/to/spigot/plugins/
cd /path/to/spigot
java -jar spigot.jar nogui

Reinicie seu servidor. BungeeGuard criará seu próprio diretório de configuração e gerará um arquivo `token.yml`. Abra-o e cole o token do seu servidor proxy. Todo servidor de backend precisa do mesmo token.

Se você estiver usando múltiplos proxies (uma configuração sensata para balanceamento de carga), todos compartilham o mesmo token.


Recursos-chave que importam

Autenticação baseada em token é o recurso principal, mas tem mais acontecendo nos bastidores.

BungeeGuard verifica as informações do jogador passadas do proxy para o backend. Não é apenas verificar se o token existe - está validando que o token é correto e que o resto dos dados do handshake não foi adulterado. Isso previne ataques mais sofisticados onde alguém pode tentar forjar os dados do handshake em si.

O plugin também lida com o modo de encaminhamento de informações de jogador moderno da Velocity, que é uma forma mais limpa de passar dados de jogador em configurações mais novas. Se você estiver construindo uma rede do zero, Velocity com BungeeGuard embutido é a escolha certa.

Um detalhe útil: BungeeGuard é incrivelmente leve. Não adiciona overhead perceptível, o que importa quando você está tentando suportar milhares de jogadores simultâneos em múltiplos servidores.


Considerações de segurança e pegadinhas

Seu token é literalmente a segurança de toda sua rede. Trate-o como uma senha. Se alguém conseguir seu token, pode criar conexões que parecem legítimas para seus servidores de backend e se passar por qualquer um que quiser.

Armazene seus arquivos token.yml com segurança. Não os envie para controle de versão. Não os cole no Discord. Só não faça.

Quando você atualizar para v1.4.0 (o que você deveria fazer imediatamente), o mantenedor recomenda rotacionar seu token após atualizar as configurações de BungeeCord afetadas. Isso limpa todos os tokens antigos que possam ter sido comprometidos. Configurações de Velocity com BungeeGuard embutido não são afetadas por essa vulnerabilidade.

Você também quer regras de firewall além de BungeeGuard, não em vez de. Configure seu firewall para bloquear conexões diretas a servidores de backend pela internet. BungeeGuard é uma ótima segunda camada de defesa, mas não deveria ser sua única camada. Se você conseguir configurar regras de iptables, faça. Depois adicione BungeeGuard por cima.

Teste sua configuração antes de ir ao vivo. Tente se conectar diretamente a um servidor de backend sem passar pelo proxy. Você deveria receber recusa de conexão ou timeout. Se vir uma tela de login, algo está errado com sua instalação de BungeeGuard.


Projetos similares e alternativas

Regras de firewall (iptables, ufw) são tecnicamente uma alternativa, mas exigem acesso ao sistema e são propensas a erros. A maioria dos servidores usando BungeeGuard faz ambos de qualquer forma.

Alguns provedores de hospedagem oferecem soluções de proxy gerenciadas que cuidam da autenticação para você. Mas se você estiver rodando sua própria infraestrutura ou em hospedagem compartilhada sem esse recurso, BungeeGuard é realmente sua melhor opção. Já foi testado em combate em redes com milhares de jogadores.

O projeto em si é sólido e mantido ativamente. É licenciado sob MIT (225 estrelas no GitHub, baseado em Java) e o mantenedor leva segurança a sério, como evidenciado pela correção de vulnerabilidade recente e processo de divulgação responsável.

Se você estiver gerenciando dados de jogador com whitelist sofisticada ou autenticação personalizada, ferramentas como criador de whitelist do Minecraft funcionam bem junto com BungeeGuard. E para administração de servidor, ferramentas de busca de blocos ajudam quando você precisa auditar seu mundo para estruturas suspeitas.

Sobre o autor
Alexandru Maftei
Alexandru MafteiRedator-chefe

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Comentários

Nenhum comentário ainda. Seja o primeiro a compartilhar sua opinião!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy