Brazil's biggest MU Online portal — since 2003
Tutorial Advanced Infrastructure

Layered DDoS Response Plan for MU Online Servers

Build a layered DDoS response plan for your MU Online server, from network-edge filtering to player communication during the incident, with monitoring metrics and an activation checklist.

RO Rodrigo · Updated on Nov 15, 2014 · ⏱ 15 min read
Quick answer

A distributed denial-of-service (DDoS) attack is, for most MU Online server administrators, a matter of when, not if. Competition between projects, grudges from banned players, and even attacks for entertainment make the GameServer and ConnectServer ports frequent targets. The difference between a s

A distributed denial-of-service (DDoS) attack is, for most MU Online server administrators, a matter of when, not if. Competition between projects, grudges from banned players, and even attacks for entertainment make the GameServer and ConnectServer ports frequent targets. The difference between a server that survives these attacks with its credibility intact and one that loses its player base lies in having a layered response plan prepared before the incident, not improvised during it. This tutorial presents a plan structured around five defense layers, the role each team member plays during the attack, and the steps for communicating with the community — all designed for the reality of mid-sized private servers.

Why MU servers are frequent targets

Private MU Online has an unusual competitive dynamic: servers compete directly for the same player base, and population rankings move donation revenue. This creates a real incentive for sabotage. On top of that, players banned for cheating or toxic behavior often have enough technical knowledge to hire cheap, publicly available "booters" (stress/DDoS services). Launch events, season resets, and weekends with paid events are the highest-risk moments, because that's when the damage from an attack is maximized.

The five defense layers

The core idea of a "layered" plan is that no single layer solves everything on its own — each one covers a different attack type and reduces the surface that reaches the next layer.

LayerWhat it protectsTypical tool
1. Network edge (upstream)Volumetric (UDP flood, amplification)Datacenter/provider protection (OVH, Voxility, Path.net)
2. Game proxyGameServer/ConnectServer TCP portsDedicated proxy with scrubbing (TCPShield, anycast iptables)
3. Local firewallAnomalous connections per IPiptables/ipset, fail2ban, SYN rate limiting
4. Application (emulator)Login flood/malformed packetsRate limiting on ConnectServer, protocol filtering
5. Communication and operationsCommunity perceptionStatus page, Discord, compensation plan

Layer 1 — Network edge protection (upstream)

This is the defense against volumetric attacks (hundreds of Mbps to several Gbps), which your server alone will never be able to absorb, regardless of local firewall rules. The solution is to contract hosting with built-in anti-DDoS at the network layer — providers like OVH (with its "Game" anti-DDoS), Voxility, or dedicated game-scrubbing services. The typical setup involves announcing your IP via BGP through the protection provider, which filters malicious traffic before routing clean traffic to your real server.

A common mistake is assuming a generic cloud VPS (without game-specific anti-DDoS) solves the problem just because it has "basic DDoS protection" — that protection usually covers HTTP/HTTPS only, not game traffic on custom ports like 44405 (ConnectServer) or 55901+ (GameServer).

Layer 2 — Dedicated game proxy

Between the internet and your real GameServer, place a proxy that absorbs and filters connections before forwarding to the game server. This hides your server's real IP (making targeted attacks harder) and lets you terminate suspicious connections without overloading the emulator process. A common setup uses iptables with a reverse-proxy IP on a cheap VPS dedicated to that function, redirecting with DNAT:

# Simplified DNAT example to redirect proxy traffic to the real server
iptables -t nat -A PREROUTING -p tcp --dport 44405 -j DNAT --to-destination 10.0.0.5:44405
iptables -t nat -A POSTROUTING -j MASQUERADE

If the proxy falls under attack, you swap the public IP and update DNS/launcher quickly — the real server is never directly exposed.

Layer 3 — Local firewall and connection limiting

Even with upstream protection in place, configure local limits to contain smaller-scale attacks (connection floods, mass login attempts). An example iptables rule limiting new connections per IP on the ConnectServer port:

iptables -A INPUT -p tcp --dport 44405 -m connlimit --connlimit-above 10 -j DROP
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 5 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

Complement this with fail2ban watching ConnectServer logs to ban IPs attempting repeated authentication in a short interval — a common pattern for both account bots and flood testing.

Layer 4 — Application (emulator) tuning

Most emulators (IGCN, MuEMU, X-Team) have parameters for packets-per-second limits and simultaneous connections per IP on the ConnectServer. Enable them even if the default seems sufficient — during a real attack, the volume of fake connections can saturate the process before the firewall reacts. Also configure a limit on login attempts per IP per minute, to prevent an authentication flood attack from taking down the account database.

Team roles during the incident

A real attack lasts anywhere from minutes to days — having defined roles avoids panic-driven decisions.

RoleResponsibilityWhen they act
Infra leadActivates layers 1–3, contacts provider/anti-DDoSImmediately upon detecting the attack
Emulator leadAdjusts layer 4 limits, restarts stuck servicesIn parallel, if the game server hangs
Communications/community managerPosts status on Discord/status pageEvery 15–30 minutes during the incident
General administratorDecides on compensation and prioritizes resourcesDuring and after the incident

Step-by-step activation playbook

  1. Detect: monitoring flags an unusual spike in bandwidth/connections (ideally with an automatic alert via Zabbix, Grafana, or a simple threshold script).
  2. Confirm: distinguish a real DDoS from a legitimate player spike (e.g. launch with a big queue) by checking source IPs and traffic patterns.
  3. Isolate: if the game proxy (layer 2) is active, swap the exposed public IP and update the launcher/DNS.
  4. Escalate: open a ticket with the anti-DDoS provider stating the attacked IP and the attack signature, if identifiable.
  5. Communicate: post the first message on the status channel within 10 minutes of the perceived start.
  6. Mitigate locally: apply more aggressive temporary firewall rules (layer 3) while upstream mitigation stabilizes.
  7. Monitor recovery: confirm the malicious traffic has dropped before fully reopening access.
  8. Record: document duration, attack vector, and actions taken for the post-mortem.

Metrics to monitor continuously

MetricSuggested toolSuggested alert threshold
Inbound bandwidth (Mbps)Provider dashboard / vnstat3x historical average
Simultaneous connections per IPnetstat/ss + counting scriptAbove 15–20
Internal latency (ping to GameServer)Scheduled ping scriptAbove 200ms sustained
Player disconnection rateConnectServer logAbnormal spike within 5 min
Emulator process CPU/networkhtop / process monitoringAbove 85% sustained

Communicating with the community during the attack

Never let silence be the default message. Players tolerate technical instability far better than the feeling of being abandoned. Keep a status channel outside the potentially attacked infrastructure — a Discord webhook posting to a fixed channel, or a status page on an external service (e.g. status.io or a static page hosted with another provider). Post regular updates even with no concrete news: "attack under mitigation, provider engaged, no exact ETA" already reduces anxiety and prevents "the server shut down" rumors.

Post-incident compensation plan

For servers with VIP systems or paid packages, define the compensation policy in advance — this prevents improvised decisions under pressure from unhappy players. A common scale:

Downtime durationSuggested compensation
Up to 1 hourNo formal action, Discord notice
1 to 4 hoursVIP extension equal to downtime
4 to 12 hoursVIP extension + symbolic event item
Over 12 hoursVIP extension + Zen/Jewel compensation + formal statement

Post-mortem and recurrence prevention

After every significant incident, produce a short summary (even if internal) with: start/end time, identified vector, layers that worked, layers that failed, and improvement actions. Servers suffering recurring attacks from the same actor should consider additional measures like temporary geographic whitelisting or a partnership with a more robust anti-DDoS provider — the upgrade cost is usually lower than that of another prolonged incident.

Common errors and fixes

SymptomLikely causeFix
Server goes down even with anti-DDoS contractedProtection covers only HTTP, not game portsContract anti-DDoS specific to game TCP/UDP ports
Local firewall doesn't stop lag during an attackVolumetric attack saturates the link before the firewall can filterRely on layer 1 (upstream); local firewall doesn't solve volumetrics
Players accuse the server of "being down due to incompetence"Lack of proactive communication during the incidentPost status every 15–30 min on an external channel
Server's real IP exposed and repeatedly attackedNo dedicated game proxyImplement layer 2 and rotate the exposed IP after the incident
Account database locks up during attackUnlimited login-attempt floodConfigure per-IP login attempt limits on ConnectServer

DDoS response preparation checklist

  • Game-specific network-layer anti-DDoS contract active.
  • Dedicated game proxy configured and tested.
  • Local firewall rules (connlimit, rate limit) applied on critical ports.
  • Connection/login limits configured on ConnectServer.
  • Team roles defined and documented.
  • Status channel external to the main infrastructure created.
  • Post-incident compensation policy defined before the first attack.
  • Post-mortem process documented for every significant incident.

With the layered plan in place, the next step is to review your infrastructure's overall resilience — including backups and failover — so that an attack isn't the only risk scenario covered. Also check out the MU Online server creation tutorial to review the infrastructure foundation this response plan should be built on.

Frequently asked questions

What's the first sign of a DDoS attack on a MU server?

Usually it's sudden widespread lag, mass disconnections (error '10054' or timeouts), and traffic spikes on the network interface without a corresponding increase in players online. Monitoring bandwidth and simultaneous connections per IP is the earliest warning, often before players even start complaining.

Does Cloudflare's anti-DDoS protection solve everything on its own?

It handles most HTTP/web traffic (website, panel, launcher), but MU's game protocol runs on raw TCP/UDP directly on the GameServer and ConnectServer ports, which don't pass through Cloudflare's HTTP proxy. For those ports you need a dedicated game proxy (e.g. OVH Game, a TCPShield-like service, or a GRE tunnel) or a provider with network-layer anti-DDoS.

Is it worth paying for anti-DDoS protection before suffering the first attack?

Yes, and that's the recommendation of this tutorial. MU servers are recurring targets of attacks driven by rivalry between projects or disgruntled players. Contracting protection preventively costs a fraction of the losses from hours of downtime during a launch or a paid event.

How do I keep players informed during an attack without it sounding like the server is permanently down?

Keep a status channel outside the attacked infrastructure — a Discord with its own bot, a status page hosted on another provider, or a dedicated Twitter/X account. Post updates every 15–30 minutes even if the message is just 'attack under mitigation, no exact ETA yet'.

Should I compensate players after a long DDoS attack?

It's a common and recommended practice for servers with VIP/donation systems: extend VIP package validity by the downtime duration, or hand out a symbolic compensation item. This preserves community trust even when the problem wasn't caused by admin failure.

RO
Founder & editor-in-chief

Rodrigo has run ViciadosMU since the portal's early days. A specialist in MU Online server creation and administration, game history and the evolution of the seasons — he wrote much of the archive before 2024.

Keep reading

Related articles