🛡️Configurando o BungeeGuard+

Neste tutorial, você aprenderá como configurar o BungeeGuard+ no seu servidor.

Introdução

As instalações BungeeCord são inseguras por padrão, e requerem regras de firewall adicionais a serem configuradas (usando iptables ou de outra forma) para evitar que usuários maliciosos contornem o proxy e se conectem usando qualquer uuid/nome de usuário que escolherem. Este é um problema bem conhecido, e ao longo dos anos muitos servidores (mesmo grandes) têm sido direcionados com sucesso usando este ataque.

A solução convencional

A solução convencional recomendada pelo autor do BungeeCord é configurar uma regra de firewall usando iptables ou ufw para evitar conexões externas com os servidores backend.

No entanto, há dois problemas principais com isso:

  1. A configuração dessas regras de firewall é complicada, especialmente para usuários inexperientes.

    • Mesmo usuários experientes às vezes cometem erros ou ignoram as coisas. A menos que a configuração seja absolutamente perfeita, as regras são propensas a serem quebradas durante mudanças posteriores, ou reiniciadas no reinício do sistema.

  2. Os usuários em "hospedagem compartilhada" não têm acesso ao sistema subjacente e muito provavelmente não podem configurar suas próprias regras de firewall.

A solução BungeeGuard

Os administradores dos servidores instalam o BungeeGuard+ (apenas um plugin comum!) em seus proxies e servidores backend.

  • No proxy, o BungeeGuard+ adiciona um "token de autenticação" secreto ao handshake de login.

  • No backend (servidor Spigot, Paper, etc.), o BungeeGuard+ verifica os handshakes de login para garantir que eles contenham um token de autenticação permitido.

É realmente tão simples quanto isso.

Instalação

Se você tiver acesso ao sistema subjacente e for capaz de configurar regras de firewall usando iptables (ou não), é recomendável fortemente que o faça. Então, instale também o BungeeGuard.

Em seu servidor proxy...

Se você estiver usando BungeeCord

  1. Certifique-se de que o ip_forward está configurado para true no config.yml do BungeeCord.

  2. Adicione o BungeeGuard.jar na pasta de plugins. Em seguida, reinicie o proxy. Se você tiver vários proxies em sua rede, faça isso para cada um deles.

  3. Navegue até /plugins/BungeeGuard/token.yml e tome nota do token.

Se você estiver usando Velocity

  1. Certifique-se de que você está usando Velocity 1.1.0 ou mais recente. (Não há necessidade de instalar o BungeeGuard.jar - ele já está embutido no Velocity!)

  2. Defina o modo player-info-forwarding-mode para "bungeeguard" em velocity.toml, e anote o modo forwarding-secret. Este é o valor usado para o token BungeeGuard. Se você tiver vários proxies em sua rede, faça isso para cada um deles.

  3. Reinicie o proxy.

Em cada um de seus servidores backend Minecraft...

  1. Certifique-se de que você está usando Paper 1.9.4+ ou tenha o ProtocolLib instalado.

  2. Certifique-se de que a configuração do bungeecord está ajustada para true no spigot.yml.

  3. Adicione o BungeeGuard.jar na pasta plugins. Em seguida, reinicie o servidor.

  4. Navegue até /plugins/BungeeGuard/config.yml. Adicione o(s) token(s) gerado(s) pelo(s) proxy(s) à lista de tokens permitidos (allowed-tokens), assim como o exemplo abaixo:

    # Allowed authentication tokens.  
    allowed-tokens:
      - "AUSXEwebkOGVnbihJM8gBS0QUutDzvIG009xoAfo1Huba9pGvhfjrA21r8dWVsa8"

  5. Execute bungeeguard reload do console.

Código-fonte

O código-fonte do BungeeGuard está disponível através do GitHub: https://github.com/nickuc/BungeeGuard

Créditos

O projeto original é de autoria de lucko (https://github.com/lucko/BungeeGuard), licenciado na licença MIT.

Se você enfrentar algum problema no BungeeGuard+, não faça um report no repositório do lucko, nem mesmo na página do Spigot. Eles são softwares diferentes!

Utilize o repositório do nickuc em vez disso.

Last updated