El mayor portal de MU Online de Brasil — desde 2003
Tutorial Avanzado Infraestructura

Cómo hacer el hardening de Windows Server para MU Online

Blinda el Windows Server de tu MU Online: RDP seguro, cuentas endurecidas, superficie de puertos mínima, SQL protegido, logs y monitoreo contra intrusiones.

GA Gabriel · Actualizado el 14 jul 2024 · ⏱ 17 min de lectura
Respuesta rápida

Los servidores de MU Online son objetivos frecuentes — de escáneres automatizados que barren internet en busca de RDP y SQL expuestos, y de rivales que atacan para sacar a la competencia del aire. Un Windows Server que arranca funcional después de la instalación todavía está lejos de estar seguro: p

Los servidores de MU Online son objetivos frecuentes — de escáneres automatizados que barren internet en busca de RDP y SQL expuestos, y de rivales que atacan para sacar a la competencia del aire. Un Windows Server que arranca funcional después de la instalación todavía está lejos de estar seguro: puertos abiertos de más, cuentas con nombres previsibles, RDP de par en par y SQL sin restricción son invitaciones a la intrusión. El hardening es el proceso de reducir esa superficie de ataque al mínimo necesario para que el juego funcione. Esta guía cubre RDP, cuentas, firewall, SQL, actualizaciones, logs y monitoreo, siempre con el cuidado de no perder el acceso durante el proceso. Los puertos, nombres y rutas son ejemplos y varían según el entorno y la versión.

Prerrequisitos

  • Windows Server ya instalado y con el MuServer funcional (mira la guía de cómo crear un servidor de MU Online si aún no has llegado aquí).
  • Acceso Administrador vía RDP.
  • Acceso a la consola/VNC del proveedor de la VPS — esencial para recuperar el acceso si una regla de firewall bloquea el RDP.
  • Capacidad de hacer un snapshot de la máquina antes de empezar.
  • Una IP administrativa fija (la tuya, desde donde gestionas el servidor) para restringir el RDP y el SQL.
  • SSMS instalado para las etapas de protección del SQL Server.
Atenção: Antes de tocar cualquier regla de firewall, confirma que puedes acceder a la máquina por la consola del proveedor. Es tu red de seguridad: si cierras el RDP por error, es por ahí que recuperas el acceso. Haz también un snapshot.

Parte 1 — Endurecer el acceso remoto (RDP)

El RDP es el punto de entrada más atacado en un Windows Server público. Los intentos de fuerza bruta en el puerto 3389 son constantes.

Paso 1: Restringir el RDP a tu IP administrativa

La defensa más eficaz es permitir el RDP solo desde tu red. Sustituye la IP de ejemplo por tu IP fija:

# Eliminar la regla genérica de RDP (si existe) y crear una restringida
Remove-NetFirewallRule -DisplayName "RDP-Custom" -ErrorAction SilentlyContinue

New-NetFirewallRule -DisplayName "RDP-Admin-Only" `
  -Direction Inbound -Protocol TCP -LocalPort 3389 `
  -RemoteAddress "203.0.113.10" -Action Allow

# Bloquear el RDP desde cualquier otro origen
New-NetFirewallRule -DisplayName "RDP-Block-All" `
  -Direction Inbound -Protocol TCP -LocalPort 3389 `
  -Action Block

Si tu IP es dinámica, usa una VPN con IP fija o un servicio de DDNS combinado con un script que actualice la regla.

Paso 2: Activar Network Level Authentication (NLA)

El NLA exige autenticación antes de establecer la sesión, cortando muchos ataques temprano:

# Exigir NLA para conexiones RDP
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
  -Name "UserAuthentication" -Value 1

Paso 3: Cambiar el puerto del RDP (ofuscación complementaria)

Cambiar el puerto no es seguridad de verdad, pero reduce el volumen de ruido de los escáneres. Hazlo junto con la restricción por IP, nunca en su lugar:

# Cambiar el puerto del RDP a un puerto alto (ejemplo: 33890)
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
  -Name "PortNumber" -Value 33890

# Abrir el nuevo puerto solo para tu IP y reiniciar el servicio después
New-NetFirewallRule -DisplayName "RDP-Alt-Admin" -Direction Inbound `
  -Protocol TCP -LocalPort 33890 -RemoteAddress "203.0.113.10" -Action Allow
Dica: Después de cambiar el puerto, prueba la nueva conexión en una segunda sesión antes de cerrar la actual. Si algo sale mal, todavía tienes la ventana original abierta para corregir.

Parte 2 — Endurecer cuentas y contraseñas

Paso 4: Renombrar y desactivar cuentas previsibles

El nombre Administrator es el primer objetivo de cualquier ataque. Renómbralo y crea un administrador nombrado:

# Renombrar la cuenta Administrator integrada
Rename-LocalUser -Name "Administrator" -NewName "adm_mu_root"

# Desactivar la cuenta Guest, si está activa
Disable-LocalUser -Name "Guest"

Paso 5: Aplicar política de contraseña fuerte y bloqueo de cuenta

Define exigencias mínimas y bloqueo tras intentos fallidos para frenar la fuerza bruta:

# Tamaño mínimo, complejidad e historial vía net accounts
net accounts /minpwlen:14 /maxpwage:90 /uniquepw:5

# Bloqueo tras 5 intentos, por 30 minutos
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30

Habilita la complejidad en secpol.mscPolíticas de Cuenta → Política de Contraseñas → "La contraseña debe cumplir los requisitos de complejidad" = Habilitada.

Paso 6: Principio de mínimo privilegio

No ejecutes tareas del día a día como administrador. Crea una cuenta separada para operaciones rutinarias (reiniciar servicios, leer logs) sin poderes administrativos totales, y reserva la cuenta admin para cambios estructurales.

Parte 3 — Minimizar la superficie de puertos

Paso 7: Auditar lo que está expuesto

Antes de cerrar puertos, mira qué está realmente escuchando y en qué interfaces:

# Listar puertos en escucha y el proceso dueño de cada uno
Get-NetTCPConnection -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess |
  Sort-Object LocalPort

Cruza cada puerto con el proceso esperado. Cualquier puerto escuchando en 0.0.0.0 que no sea del MU (44405, rango del GameServer, panel web) o del RDP restringido es candidato a ser cerrado.

Paso 8: Mantener abierto solo lo esencial

La tabla siguiente es un ejemplo de superficie mínima para un servidor de MU típico. Los puertos exactos varían según el paquete.

PuertoServicioExposición recomendada
33890 (RDP alt.)Acceso remotoSolo IP administrativa
44405ConnectServerPública
55901-55910GameServerPública
55960DataServerPública (o local, si es posible)
80 / 443Panel webPública
1433SQL ServerNunca pública — solo local
# Garantizar que el SQL nunca acepte conexiones externas: bloquear el 1433 desde fuera
New-NetFirewallRule -DisplayName "SQL-Block-External" -Direction Inbound `
  -Protocol TCP -LocalPort 1433 -RemoteAddress Any -Action Block

Recuerda replicar la política de mínimo en el firewall del proveedor, en el panel de la VPS.

Parte 4 — Proteger el SQL Server

El SQL guarda cuentas, objetos y la economía del servidor — comprometerlo es comprometerlo todo.

Paso 9: Desactivar o renombrar el login sa

El sa es el objetivo por defecto de los ataques al SQL. Si el servidor usa un login dedicado (como se recomienda), desactiva el sa:

-- Desactivar el login sa (usa un login dedicado en el MuServer)
ALTER LOGIN sa DISABLE;
GO

-- Si necesitas mantenerlo, al menos renómbralo
ALTER LOGIN sa WITH NAME = [adm_sql_bkp];
GO

Paso 10: Reforzar autenticación y permisos

Asegúrate de que el login del MuServer tenga solo los permisos necesarios y que las contraseñas sigan la política:

-- Forzar la política de contraseña en el login del servidor
ALTER LOGIN muserver_user WITH CHECK_POLICY = ON;
GO

-- Revisar quién tiene roles de servidor peligrosos (sysadmin)
SELECT p.name, p.type_desc, r.name AS role_name
FROM sys.server_role_members m
JOIN sys.server_principals p ON m.member_principal_id = p.principal_id
JOIN sys.server_principals r ON m.role_principal_id = r.principal_id
WHERE r.name = 'sysadmin';
GO

Paso 11: Confiar solo en conexiones locales

Si el GameServer y el SQL están en la misma máquina, fuerza al SQL a escuchar solo en 127.0.0.1 en el SQL Server Configuration Manager, o mantén el bloqueo externo del 1433 del paso 8. Así, aunque la contraseña se filtre, no hay forma de conectar desde fuera.

Parte 5 — Actualizaciones, logs y monitoreo

Paso 12: Mantener el sistema actualizado sin caídas

Las fallas de seguridad conocidas se explotan en masa. Aplica actualizaciones, pero controla el reinicio para no tumbar a los jugadores:

# Verificar updates pendientes (requiere el módulo PSWindowsUpdate)
# Aplica en ventana de mantenimiento anunciada a los jugadores
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10

Configura Windows Update para descargar y notificar, reiniciando manualmente en horario de bajo movimiento.

Paso 13: Activar auditoría de inicio de sesión

Habilita el registro de intentos de inicio de sesión para ver los ataques:

# Auditar éxito y fallo de inicio de sesión
auditpol /set /category:"Logon/Logoff" /success:enable /failure:enable

Paso 14: Revisar los logs de seguridad periódicamente

Monitorea los picos de fallo de inicio de sesión (evento 4625), que indican fuerza bruta:

# Contar fallos de inicio de sesión recientes (evento 4625)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-24)} `
  -ErrorAction SilentlyContinue | Measure-Object | Select-Object Count

Un volumen anormal desde una misma IP es señal de ataque; combina la restricción de firewall con el bloqueo de esa dirección. Considera también scripts que baneen automáticamente las IP con muchos fallos.

Paso 15: Backup regular y probado

La seguridad incluye la recuperación. Mantén backups automáticos de la base en un lugar separado de la VPS (almacenamiento externo o nube), y prueba la restauración periódicamente — un backup que nunca se restauró no es backup, es esperanza.

Errores comunes y soluciones

ErrorRiesgoSolución
Cerrar el RDP sin acceso alternativoPérdida total de accesoAsegurar consola del proveedor y snapshot antes
Solo cambiar el puerto del RDPFalsa sensación de seguridadRestringir por IP + NLA + contraseña fuerte
Dejar sa activo con contraseña débilSQL comprometidoDesactivar/renombrar sa, usar login dedicado
Exponer el 1433 a internetFiltración de la baseBloquear el 1433 externamente, escuchar en local
Apagar el antivirusMineros y backdoorsMantener Defender con exclusiones puntuales
No actualizar WindowsExplotación de fallas conocidasActualizar mensualmente en ventana de mantenimiento
Ignorar los logs de inicio de sesiónLos ataques pasan desapercibidosActivar auditoría y revisar el evento 4625
Backup solo en la propia VPSPérdida total en un incidenteBackup externo y restauración probada

Lista de verificación de lanzamiento

  • Snapshot y acceso a la consola del proveedor asegurados
  • RDP restringido a la IP administrativa
  • NLA activado en el RDP
  • Puerto del RDP cambiado (complemento) y probado
  • Cuenta Administrator renombrada y Guest desactivada
  • Política de contraseña fuerte y bloqueo de cuenta aplicados
  • Cuenta de operación sin privilegios totales creada
  • Puertos en escucha auditados
  • Superficie de puertos reducida al mínimo (Windows y proveedor)
  • Puerto 1433 bloqueado externamente
  • Login sa desactivado o renombrado
  • Permisos del SQL revisados
  • Windows Update en modo descargar y notificar
  • Auditoría de inicio de sesión activada
  • Rutina de revisión de logs definida
  • Backup externo automático y restauración probada

Conclusión

El hardening no es una tarea que se hace una vez y se olvida — es la disciplina de mantener la superficie de ataque pequeña mientras el servidor crece. Al restringir el RDP a tu IP, endurecer cuentas y contraseñas, cerrar todo puerto que no sea esencial, blindar el SQL Server y mantener los ojos en los logs, sacas tu MU Online de la lista de blancos fáciles que escáneres y rivales explotan a diario. Aplica cada etapa con cuidado, siempre con una vía de recuperación abierta, haz un snapshot antes de tocar el firewall y trata las actualizaciones, la revisión de logs y los backups como una rutina continua. Un servidor seguro es aquel que sigue en pie el día que llega el ataque — y siempre llega.

Preguntas frecuentes

¿Debo cambiar el puerto por defecto del RDP?

Cambiar el 3389 a un puerto alto reduce el ruido de los escáneres automatizados, pero es solo ofuscación, no seguridad real. Lo que realmente protege es restringir el RDP por IP en el firewall, exigir contraseña fuerte, activar el Network Level Authentication y, idealmente, poner el acceso detrás de una VPN. El puerto personalizado es un complemento, no la defensa principal.

¿Necesito antivirus si ya hice el hardening?

Sí. El hardening reduce la superficie de ataque, pero no sustituye la detección de malware. Mantén Windows Defender activo con exclusiones solo para las carpetas del MuServer. Apagar el antivirus para 'evitar falsos positivos' es un error común que abre la puerta a mineros y backdoors en VPS públicas.

¿Cómo bloqueo ataques de fuerza bruta en el RDP y en el SQL?

Restringe ambos por IP en el firewall para que solo tu red administrativa alcance esos puertos. Para el RDP, activa el bloqueo de cuenta tras intentos fallidos mediante política de contraseña. Para el SQL, nunca expongas el 1433 a internet y desactiva el login sa o renómbralo. Monitorea el Event Viewer en busca de picos de inicio de sesión denegado.

¿El hardening puede tumbar mi servidor por error?

Puede, si aplicas todo de una vez sin probar. El riesgo mayor es cerrar el puerto del RDP y perder el acceso. Asegura siempre el acceso vía consola del proveedor antes de tocar el firewall, aplica los cambios por etapas y valida la conexión en cada paso. Haz un snapshot antes de empezar.

¿Con qué frecuencia debo revisar la seguridad del servidor?

Aplica actualizaciones de seguridad mensualmente, revisa las reglas de firewall y las cuentas en cada cambio de equipo y lee los logs de inicio de sesión semanalmente. Tras cualquier incidente o pico anormal de intentos de acceso, haz una revisión completa. La seguridad es mantenimiento continuo, no una tarea única de lanzamiento.

GA
Editor de guías y builds

Gabriel cubre gameplay, builds de clases, PvP y progresión. Prueba cada estrategia en un servidor antes de publicar.

Sigue leyendo

Artículos relacionados