O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Tutoriais

Como Configurar Firewall Avançado para Servidor de MU Online

Guia técnico completo para configurar o Windows Firewall e regras de porta para proteger seu servidor privado de MU Online contra ataques e acessos não autorizados.

EQ Equipe ViciadosMU · Atualizado em 3 jul 2026 · ⏱ 12 min de leitura

Por que o Firewall é Crítico para Servidores de MU Online

Servidores privados de MU Online são alvos frequentes de ataques DDoS, tentativas de conexão não autorizada e varreduras de porta. Uma configuração incorreta pode expor o SQL Server, permitir acesso ao painel administrativo sem autenticação ou derrubar o servidor com floods de pacotes. Este guia cobre a configuração do Windows Firewall com Segurança Avançada em servidores Windows Server 2012/2016/2019, que são os ambientes mais comuns para hospedar MuServer Season 6 a Season 13.

Nota: Este guia assume que você já tem o MuServer instalado e funcionando. Aplique as regras em um ambiente de testes antes de produção. Tenha sempre acesso ao console KVM do seu VPS antes de modificar o firewall.

Etapa 1: Mapeamento de Portas do MuServer

Antes de criar qualquer regra, documente todas as portas que seu servidor utiliza. A estrutura padrão do MuServer é:

ComponentePortaProtocoloExposição
ConnectServer44405TCPPública (jogadores)
GameServer 155901TCPPública (jogadores)
GameServer 255902TCPPública (jogadores)
GameServer N5590NTCPPública (jogadores)
DataServer55980TCPInterna apenas
EventServer55960TCPInterna apenas
SQL Server1433TCPInterna apenas
RDP/Admin3389TCPIP restrito
Painel Web80/443TCPPública ou restrita

Verifique os arquivos de configuração do seu ConnectServer para confirmar as portas exatas:

GameServer/Setup/ConnectServer.ini
[CONNECT_SERVER_INFO]
ServerPort=44405
ServerListenIP=0.0.0.0

[GAME_SERVER_GROUP]
ServerCount=2

E em GameServer/Setup/GameServerInfo.cfg:

[GameServer_1]
ServerPort=55901
InternalPort=55901

Etapa 2: Bloquear Todo o Tráfego de Entrada por Padrão

O princípio correto é: bloqueie tudo, libere apenas o necessário. Execute os comandos abaixo como Administrador no PowerShell ou Prompt de Comando:

1. Configurar política padrão de bloqueio:

netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound

2. Garantir que o firewall está ativo em todos os perfis:

netsh advfirewall set allprofiles state on
Atenção: Execute este passo apenas se você já tiver uma regra liberando a porta do RDP (3389) para seu IP. Caso contrário, você perderá o acesso remoto ao servidor imediatamente.

Etapa 3: Criar Regras de Entrada para os Componentes do MuServer

3. Liberar ConnectServer (porta 44405 — acesso público):

netsh advfirewall firewall add rule name="MU - ConnectServer" dir=in action=allow protocol=TCP localport=44405 profile=any

4. Liberar GameServers (portas 55901 e 55902):

netsh advfirewall firewall add rule name="MU - GameServer 1" dir=in action=allow protocol=TCP localport=55901 profile=any

netsh advfirewall firewall add rule name="MU - GameServer 2" dir=in action=allow protocol=TCP localport=55902 profile=any

Se tiver mais GameServers, repita para cada porta. Para múltiplos servidores em sequência, use o formato de intervalo:

netsh advfirewall firewall add rule name="MU - GameServers" dir=in action=allow protocol=TCP localport=55901-55910 profile=any

5. Liberar acesso HTTP/HTTPS para o painel web:

netsh advfirewall firewall add rule name="MU - Web HTTP" dir=in action=allow protocol=TCP localport=80 profile=any

netsh advfirewall firewall add rule name="MU - Web HTTPS" dir=in action=allow protocol=TCP localport=443 profile=any

6. Liberar RDP apenas para seu IP de administração (substitua 203.0.113.10 pelo seu IP real):

netsh advfirewall firewall add rule name="Admin - RDP Restrito" dir=in action=allow protocol=TCP localport=3389 remoteip=203.0.113.10 profile=any

Etapa 4: Bloquear Explicitamente Portas Internas

Portas do SQL Server e componentes internos nunca devem ser acessíveis externamente:

7. Bloquear SQL Server externamente:

netsh advfirewall firewall add rule name="BLOCK - SQL Server Externo" dir=in action=block protocol=TCP localport=1433 profile=any

8. Bloquear DataServer e EventServer externamente:

netsh advfirewall firewall add rule name="BLOCK - DataServer Externo" dir=in action=block protocol=TCP localport=55980 profile=any

netsh advfirewall firewall add rule name="BLOCK - EventServer Externo" dir=in action=block protocol=TCP localport=55960 profile=any
Dica: No SQL Server Configuration Manager, além do firewall, configure o SQL Server para escutar apenas em 127.0.0.1 e não em 0.0.0.0. Acesse: SQL Server Configuration Manager → SQL Server Network Configuration → Protocols for MSSQLSERVER → TCP/IP → IP Addresses → desabilite todos os IPs exceto IPLoopback/127.0.0.1.

Etapa 5: Proteção contra Flood com Limite de Conexões

O Windows Firewall padrão não oferece rate-limiting nativo. Para complementar, use o PowerShell para criar um script de monitoramento que bloqueia IPs com conexões excessivas:

9. Criar script de proteção anti-flood em C:\MuServer\Scripts\AntiFlood.ps1:

# AntiFlood.ps1 - Monitora conexoes na porta 44405 e bloqueia IPs com excesso
$porta = 44405
$limiteConexoes = 15
$intervaloSegundos = 30

while ($true) {
    $conexoes = Get-NetTCPConnection -LocalPort $porta -State Established -ErrorAction SilentlyContinue
    $grupoIP = $conexoes | Group-Object -Property RemoteAddress | Where-Object { $_.Count -ge $limiteConexoes }

    foreach ($grupo in $grupoIP) {
        $ip = $grupo.Name
        $regraExistente = Get-NetFirewallRule -DisplayName "AUTOBLOCK - $ip" -ErrorAction SilentlyContinue
        if (-not $regraExistente) {
            New-NetFirewallRule -DisplayName "AUTOBLOCK - $ip" -Direction Inbound -Action Block -RemoteAddress $ip -Protocol TCP
            Write-Output "$(Get-Date) - IP bloqueado: $ip ($($grupo.Count) conexoes)"
        }
    }

    Start-Sleep -Seconds $intervaloSegundos
}

10. Registrar o script como serviço ou tarefa agendada:

schtasks /create /tn "MU AntiFlood Monitor" /tr "powershell -ExecutionPolicy Bypass -File C:\MuServer\Scripts\AntiFlood.ps1" /sc onstart /ru SYSTEM /f

Etapa 6: Proteção do Banco de Dados via SQL Server

Adicione uma camada de segurança no SQL Server para registrar tentativas de login suspeitas:

11. Ativar auditoria de logins falhos no SQL Server Management Studio:

-- Verificar configuracao atual de auditoria
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

-- Ativar login auditing (2 = falhas e sucesso, 1 = apenas falhas)
EXEC xp_instance_regwrite 
    N'HKEY_LOCAL_MACHINE',
    N'Software\Microsoft\MSSQLServer\MSSQLServer',
    N'AuditLevel',
    REG_DWORD,
    2;

12. Criar tabela de log de tentativas suspeitas no banco MuOnline:

USE MuOnline;
GO

CREATE TABLE dbo.SecurityLog (
    LogID       INT IDENTITY(1,1) PRIMARY KEY,
    LogDate     DATETIME DEFAULT GETDATE(),
    AccountID   VARCHAR(10),
    IPAddress   VARCHAR(15),
    EventType   VARCHAR(50),
    Details     VARCHAR(255)
);
GO

13. Criar trigger para registrar tentativas de login excessivas na tabela MEMB_INFO:

USE MuOnline;
GO

CREATE TRIGGER trg_LoginFailed
ON dbo.MEMB_INFO
AFTER UPDATE
AS
BEGIN
    SET NOCOUNT ON;
    IF UPDATE(block_code)
    BEGIN
        INSERT INTO dbo.SecurityLog (AccountID, EventType, Details)
        SELECT i.memb___id, 'ACCOUNT_BLOCKED', 
               'Conta bloqueada automaticamente - tentativas excessivas'
        FROM inserted i
        INNER JOIN deleted d ON i.memb___id = d.memb___id
        WHERE i.block_code <> d.block_code AND i.block_code = 1;
    END
END;
GO

Etapa 7: Verificação e Auditoria das Regras

14. Listar todas as regras de firewall criadas:

netsh advfirewall firewall show rule name=all dir=in | findstr "MU\|BLOCK\|AUTOBLOCK\|Admin"

15. Verificar portas abertas e em escuta:

netstat -ano | findstr "LISTENING" | findstr "44405\|55901\|55902\|1433\|3389"

16. Exportar configuração atual como backup:

netsh advfirewall export "C:\MuServer\Backups\firewall-backup-%date:~-4,4%%date:~-10,2%%date:~-7,2%.wfw"
Dica: Agende a exportação das regras de firewall semanalmente com o Agendador de Tarefas do Windows. Se precisar reverter após uma mudança problemática, basta executar: netsh advfirewall import "C:\MuServer\Backups\firewall-backup-AAAAMMDD.wfw"

Etapa 8: Configuração do Windows Firewall via GUI (alternativa)

Se preferir a interface gráfica, acesse wf.msc e:

  1. Vá em Regras de EntradaNova Regra
  2. Selecione PortaTCP → insira a porta específica
  3. Selecione Permitir a conexão
  4. Marque todos os perfis (Domínio, Privado, Público)
  5. Nomeie como MU - [ComponenteName]

Para restringir por IP na GUI: após criar a regra, clique com botão direito → Propriedades → aba Escopo → em "Endereço IP remoto" selecione "Esses endereços IP" e adicione os IPs permitidos.


Troubleshooting

Jogadores não conseguem conectar após aplicar regras: Verifique se a regra do ConnectServer está correta com netsh advfirewall firewall show rule name="MU - ConnectServer". Confirme que Action=Allow e Direction=In.

RDP cortado acidentalmente: Use o console KVM do seu provedor de VPS. Execute netsh advfirewall reset para restaurar o padrão e reaplique as regras na ordem correta, começando sempre pela regra de RDP.

Script AntiFlood bloqueando jogadores legítimos: Ajuste o valor $limiteConexoes para um número maior (ex: 30) ou adicione uma whitelist de IPs confiáveis no script antes do loop de bloqueio.

Atenção: Nunca rode o MuServer como conta SYSTEM ou Administrador em produção. Crie uma conta de serviço dedicada com permissões mínimas. O firewall é apenas uma camada — combine com antivírus, atualizações do Windows e monitoramento de logs para uma segurança efetiva.

Perguntas frequentes

Quais portas o MU Online precisa abertas?

ConnectServer usa a porta 44405 (TCP). GameServer usa 55901-55910 (TCP, uma por servidor). DataServer usa 55980 (TCP, comunicação interna). WebEngine/painel web usa 80 e 443. Nunca exponha a porta 1433 do SQL Server diretamente à internet.

Como bloquear ataques de força bruta no login?

Combine regras de firewall com rate-limiting: bloqueie IPs que tentarem mais de 10 conexões simultâneas na porta 44405 usando netsh advfirewall, e crie uma trigger no SQL Server na tabela MEMB_INFO para registrar falhas e chamar xp_cmdshell para banir o IP via netsh.

O que fazer se o servidor ficar inacessível após aplicar as regras?

Acesse o VPS via console (KVM/IPMI, não RDP) para não perder acesso caso bloqueie a porta 3389. Execute 'netsh advfirewall reset' para restaurar as configurações padrão e reconfigure as regras uma a uma para identificar qual causou o bloqueio.

Como proteger o painel web (webEngineNET/PHP) junto com o firewall?

Restrinja o acesso à pasta /admin via IP no IIS (applicationHost.config ou web.config com <ipSecurity>), habilite HTTPS com certificado autoassinado ou Let's Encrypt, e bloqueie a porta 80 no firewall externo deixando apenas 443.

EQ

Equipe ViciadosMU

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Continue lendo

Artigos relacionados