Como configurar o Cloudflare Spectrum para o servidor de MU
Passo a passo para proteger o tráfego TCP do ConnectServer e GameServer de MU Online com o Cloudflare Spectrum, escondendo o IP real e mitigando DDoS de camada 4.
O Cloudflare é onipresente na proteção de sites, mas a maioria dos administradores de MU Online descobre da pior forma que o plano padrão não protege o jogo em si. O motivo é técnico e simples: o MU Online usa TCP puro entre o cliente e o ConnectServer/GameServer, enquanto o proxy web comum da Cloud
O Cloudflare é onipresente na proteção de sites, mas a maioria dos administradores de MU Online descobre da pior forma que o plano padrão não protege o jogo em si. O motivo é técnico e simples: o MU Online usa TCP puro entre o cliente e o ConnectServer/GameServer, enquanto o proxy web comum da Cloudflare só entende HTTP e HTTPS. Quando o ataque mira a porta do jogo, o proxy web não vê nada e o servidor cai. A solução da própria Cloudflare para esse cenário é o Spectrum, um proxy de camada 4 que estende a rede de mitigação da empresa para qualquer aplicação TCP ou UDP. Este tutorial avançado mostra como configurá-lo corretamente para um servidor de MU, com exemplos que variam por plano/versão.
Vale deixar claro desde o início: o Spectrum é um produto pago, geralmente disponível em planos superiores da Cloudflare. Não é a única forma de proteger tráfego TCP (provedores com scrubbing dedicado e túneis GRE também servem), mas é uma das mais acessíveis para quem já usa a Cloudflare para o site e quer unificar a proteção. Se o orçamento não comporta, o conceito de esconder o IP e filtrar na camada 4 continua válido com outro fornecedor.
Pré-requisitos
Antes de configurar, tenha em mãos:
- Uma conta Cloudflare com o domínio do seu servidor já adicionado e com o DNS gerenciado pela Cloudflare (nameservers apontados).
- Um plano que inclua o Spectrum. A disponibilidade e os limites de portas variam por plano/versão, então confirme no painel antes.
- O IP real e as portas do seu servidor: a porta do ConnectServer e a faixa de portas dos GameServers. Os valores exatos variam por versão do emulador.
- Acesso ao cliente do jogo para editar o
ServerList/ arquivo de conexão e apontá-lo para o novo hostname protegido. - Acesso administrativo ao Windows Server para ajustar o firewall e restringir o tráfego de jogo apenas aos IPs da Cloudflare.
- Backup do cliente e um plano de rollback, pois uma configuração errada de endereço deixa os jogadores sem conseguir conectar.
Se o servidor ainda não está no ar, comece pelo guia de como criar servidor de MU Online e volte aqui para blindar a conexão do jogo.
Como o Spectrum funciona
Entender o fluxo evita a maioria dos erros de configuração. Sem o Spectrum, o cliente do jogo se conecta diretamente ao IP real do servidor, que fica exposto a qualquer ataque. Com o Spectrum, o caminho muda:
- O cliente se conecta a um hostname (por exemplo,
play.seudominio.com) que resolve para um IP Anycast da Cloudflare. - A Cloudflare recebe a conexão TCP em uma de suas centenas de localidades, aplica a mitigação de DDoS de camada 4 e limpa o tráfego malicioso.
- O tráfego legítimo é encaminhado ao IP real (origem) do seu servidor por dentro da rede da Cloudflare.
- O servidor responde à Cloudflare, que devolve ao jogador.
O resultado é que o IP real nunca aparece para o jogador nem para o atacante. A superfície de ataque direto some, desde que você feche os outros vazamentos de IP e trave o firewall.
| Elemento | Sem Spectrum | Com Spectrum |
|---|---|---|
| Destino do cliente | IP real do servidor | Hostname/IP Anycast Cloudflare |
| Visibilidade do IP real | Pública | Oculta (só a Cloudflare conhece) |
| Mitigação de camada 4 | Nenhuma (só firewall local) | Rede global da Cloudflare |
| Protocolo suportado | TCP direto | TCP/UDP via proxy Spectrum |
| Salto de rede extra | Não | Sim (Anycast, geralmente rota curta) |
Passo 1: preparar o domínio e o DNS
Com o domínio já gerenciado pela Cloudflare, crie um registro DNS para o hostname que os jogadores usarão no jogo, por exemplo play.seudominio.com. A forma como esse registro se comporta depende de como o Spectrum é configurado; em geral o aplicativo Spectrum é quem passa a responder por aquele hostname na porta definida.
Ponto crítico: audite todos os registros DNS existentes para garantir que nenhum aponte para o IP real. Um registro A esquecido como server.seudominio.com apontando ao IP de origem anula toda a proteção, porque o atacante encontra o IP real por ali e ataca direto, ignorando o Spectrum. Isso vale também para registros históricos já indexados; se o IP real já foi público, o ideal é trocá-lo por um novo IP de origem.
Passo 2: criar o aplicativo Spectrum
No painel da Cloudflare, acesse a seção Spectrum e crie um novo aplicativo. Os campos essenciais (os nomes exatos variam por versão do painel):
- Protocolo e porta de borda (edge). A porta em que a Cloudflare vai escutar as conexões dos jogadores. Costuma-se manter a mesma porta que o ConnectServer usa, para não precisar mudar o cliente além do hostname.
- Hostname de borda. O
play.seudominio.comque os jogadores vão acessar. - Origem (origin). O IP real do servidor e a porta interna correspondente, para onde a Cloudflare encaminha o tráfego limpo.
- Configurações de proxy. Opções como proxy protocol (para preservar o IP real do jogador nos logs do servidor) e limites de conexão, que variam por plano.
Repita o processo para cada porta que precisa ser protegida. O ConnectServer e cada faixa de GameServer normalmente exigem sua própria configuração de aplicativo. Documente cada mapeamento de porta de borda para porta de origem, porque essa tabela será sua referência ao depurar problemas de conexão.
# Exemplo conceitual de mapeamento (os valores variam por versao/emulador)
# play.seudominio.com : porta_connectserver -> IP_REAL : porta_connectserver
# play.seudominio.com : porta_gameserver_1 -> IP_REAL : porta_gameserver_1
# play.seudominio.com : porta_gameserver_2 -> IP_REAL : porta_gameserver_2
Passo 3: apontar o cliente do jogo
De nada adianta configurar o Spectrum se o cliente do jogo ainda aponta para o IP real. O arquivo de lista de servidores do cliente (o ServerList.dat, MainInfo ou equivalente, que varia por versão) precisa apontar para o hostname protegido play.seudominio.com e a porta de borda configurada.
Passos:
- Localize o arquivo de conexão dentro da pasta do cliente. Em muitos clientes de Season 6 ele é criptografado e precisa ser editado com a ferramenta correta do seu emulador.
- Substitua o endereço de destino pelo hostname protegido.
- Confirme que a porta corresponde à porta de borda definida no aplicativo Spectrum.
- Gere um novo instalador ou pacote de atualização com o cliente corrigido e distribua aos jogadores.
Teste com um cliente limpo, de fora da sua rede, para garantir que a conexão fecha o fluxo completo: cliente, Cloudflare, servidor e volta. Um teste feito de dentro da mesma rede do servidor pode enganar, porque a rota interna difere.
Passo 4: travar o firewall na origem
Este passo é o que fecha a defesa. Depois que o Spectrum está encaminhando o tráfego, você deve configurar o firewall do Windows Server para aceitar conexões nas portas do jogo apenas dos IPs da Cloudflare, recusando qualquer conexão direta de outras origens. Assim, mesmo que o IP real vaze no futuro, um ataque direto é rejeitado na borda do seu servidor.
# Exemplo: permitir a porta do jogo apenas para as faixas de IP da Cloudflare
# (Substitua pela lista oficial de IPs da Cloudflare, que varia com o tempo)
New-NetFirewallRule -DisplayName "Game via Cloudflare" -Direction Inbound `
-Protocol TCP -LocalPort PORTA_DO_JOGO -RemoteAddress FAIXAS_CLOUDFLARE -Action Allow
New-NetFirewallRule -DisplayName "Block Direct Game" -Direction Inbound `
-Protocol TCP -LocalPort PORTA_DO_JOGO -Action Block
Mantenha a lista de faixas de IP da Cloudflare atualizada, pois ela muda periodicamente. Uma lista desatualizada pode bloquear tráfego legítimo encaminhado por novos ranges. As faixas oficiais são publicadas pela própria Cloudflare e variam com o tempo.
Passo 5: preservar o IP real do jogador (proxy protocol)
Um efeito colateral do proxy é que, sem configuração adicional, todas as conexões chegam ao servidor com o IP da Cloudflare como origem, e você perde a capacidade de identificar e banir jogadores por IP. Para recuperar o IP real do jogador, o Spectrum oferece o proxy protocol, que injeta o IP de origem verdadeiro no início da conexão. O emulador precisa suportar a leitura desse cabeçalho, o que nem todos fazem. Verifique a compatibilidade da sua versão antes de habilitar, porque ativar o proxy protocol sem suporte no servidor quebra as conexões.
Passo 6: validar a proteção
Depois de tudo configurado, valide de forma objetiva:
- Verifique de uma máquina externa que o hostname resolve para um IP da Cloudflare, e não para o IP real.
- Confirme que uma tentativa de conexão direta ao IP real, na porta do jogo, é recusada pelo firewall.
- Teste o fluxo completo de login e jogo por vários minutos, observando latência e estabilidade.
- Cheque os logs do servidor para confirmar que os IPs dos jogadores aparecem corretamente (se o proxy protocol estiver ativo).
Erros comuns e soluções
| Erro / Sintoma | Causa provável | Solução |
|---|---|---|
| Ataque atinge o servidor mesmo com Spectrum | IP real vazado em DNS ou cliente | Auditar DNS, trocar IP real, apontar cliente ao hostname |
| Jogadores não conseguem conectar | Cliente ainda aponta ao IP real ou porta errada | Corrigir ServerList com hostname e porta de borda corretos |
| Site funciona mas jogo não passa | Só HTTP protegido, jogo sem aplicativo Spectrum | Criar aplicativo Spectrum para a porta do jogo |
| Todos os jogadores aparecem com mesmo IP | Proxy protocol desativado | Ativar proxy protocol (com suporte no emulador) |
| Conexões quebram após habilitar proxy protocol | Emulador não lê o cabeçalho | Desativar proxy protocol ou usar versão compatível |
| Tráfego direto ainda aceito na origem | Firewall não restrito às faixas Cloudflare | Aplicar regra allow só para IPs da Cloudflare + block |
| Bloqueio de jogadores legítimos após um tempo | Faixas de IP da Cloudflare desatualizadas | Atualizar a lista oficial de ranges periodicamente |
Checklist de lançamento
- Domínio gerenciado pela Cloudflare com DNS ativo
- Plano com Spectrum confirmado e disponível
- Todos os registros DNS auditados sem expor o IP real
- IP real trocado caso já tenha sido público
- Aplicativo Spectrum criado para a porta do ConnectServer
- Aplicativo Spectrum criado para cada faixa de GameServer
- Mapeamento de portas de borda para origem documentado
- Cliente do jogo apontando para o hostname protegido
- Novo instalador/atualização distribuído aos jogadores
- Firewall aceitando o jogo só das faixas de IP da Cloudflare
- Regra de bloqueio de conexão direta na origem ativa
- Proxy protocol avaliado quanto à compatibilidade do emulador
- Conexão direta ao IP real testada e confirmada recusada
- Fluxo completo de login e jogo validado de máquina externa
- Latência medida e aceitável para a região dos jogadores
Conclusão
O Cloudflare Spectrum resolve o ponto cego mais perigoso da proteção de servidores de MU Online: o tráfego TCP puro do jogo, que o proxy web comum simplesmente ignora. Ao encaminhar as conexões do ConnectServer e dos GameServers pela rede global da Cloudflare, você esconde o IP real e ganha mitigação de camada 4 sem trocar de provedor de hospedagem. Mas o Spectrum só entrega essa proteção quando o resto está fechado: DNS auditado, cliente apontando ao hostname protegido e firewall recusando conexões diretas na origem. Feita a configuração completa com os valores calibrados ao seu plano e emulador (que variam por plano/versão), o tráfego do seu jogo passa a ter a mesma blindagem que grandes serviços usam, e os ataques que costumavam derrubar o servidor se dissolvem antes de chegar perto do IP real.
Perguntas frequentes
O plano gratuito do Cloudflare protege o servidor de MU?
Não para o tráfego do jogo. O plano gratuito cobre apenas HTTP/HTTPS. O tráfego TCP puro do jogo exige o Cloudflare Spectrum, que é um produto pago.
O Spectrum esconde o IP real do servidor?
Sim, essa é a principal função. Os jogadores se conectam a um endereço da Cloudflare, e o IP de origem só é conhecido pela Cloudflare, desde que você feche outros vazamentos.
Preciso apontar o cliente do jogo para o endereço da Cloudflare?
Sim. O ServerList do cliente deve apontar para o hostname protegido pelo Spectrum, nunca para o IP real, senão a proteção é ignorada.
O Spectrum adiciona latência ao jogo?
Adiciona um salto extra, mas a rede Anycast da Cloudflare costuma rotear pelo caminho mais curto. O impacto varia por região e pode até melhorar a rota em alguns casos.
Posso proteger vários GameServers com um único aplicativo Spectrum?
Cada porta ou faixa de portas normalmente precisa de sua própria configuração de aplicativo. O modelo e os limites variam por plano.