Security advice
Running a Minecraft server and a custom Launcher backend (EML AdminTool) exposes your machine to the internet. Because EML AdminTool controls your launcher and distributes files to your players, it is a critical target.
The following tutorial provides essential security advice to protect your server and data. You are not obliged to follow all these measures, nor to implement them exactly as described in the tutorial: this is simply to outline the most common solutions to ensure the security of your server.
Firewall configuration
The golden rule of server security is: block everything, allow only what is needed.
You should only expose ports that are actively used by your players or yourself.
- SSH (
22): For your remote access. - HTTP (
80) & HTTPS (443): For EML AdminTool (via Nginx). - Minecraft (usually
25565): For the game server.
UFW (Uncomplicated Firewall) is the standard tool for Debian-based systems.
Install UFW (if not installed):
sudo apt install ufw Set default policies (deny incoming, allow outgoing):
sudo ufw default deny incoming
sudo ufw default allow outgoing Allow essential ports:
# SSH (be careful not to lock yourself out!)
sudo ufw allow 22/tcp
# Web Traffic (NGINX/AdminTool)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Minecraft Server (default port; adjust if needed)
sudo ufw allow 25565/tcp Enable the firewall:
sudo ufw enable Check status:
sudo ufw statusFirewalld is the default manager for RHEL-based systems.
Ensure Firewalld is running:
sudo systemctl start firewalld
sudo systemctl enable firewalld Add services/ports permanently:
# SSH is usually enabled by default, but verify
sudo firewall-cmd --permanent --add-service=ssh
# Web Traffic
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# Minecraft Server
sudo firewall-cmd --permanent --add-port=25565/tcp Reload to apply changes:
sudo firewall-cmd --reloadWarning
If you setup NGINX as a reverse proxy (recommended), you should NOT open port 8080 in your firewall. The traffic should go through port 80/443, which then talks to Docker locally. Opening port 8080 directly bypasses NGINX and its security configurations (SSL, logs, etc.).
DDoS protection
Game servers are frequent targets for DDoS attacks. Using a service like Cloudflare is highly recommended to hide your server’s real IP address.
For EML AdminTool (Web)
Cloudflare works perfectly for the AdminTool (API & Dashboard).
- Log in to Cloudflare and create an account if you don’t have one.
- Add your domain to Cloudflare.
- Create an
Arecord pointing to your server IP. - Enable the “Proxy” status (Orange Cloud).
This hides your server’s IP behind Cloudflare’s network, absorbing web-based attacks.
For the Minecraft server (Game)
Important
The standard (free) Cloudflare proxy only handles HTTP/HTTPS traffic. It does NOT support the Minecraft protocol (TCP).
If you proxy your Minecraft subdomain (e.g., play.myserver.com) with the “Orange Cloud”, players will not be able to connect. To allow players to connect while still protecting your server, follow these steps:
- Create a separate
Arecord for the game (e.g.,play.myserver.com). - Disable the Proxy (Grey Cloud / “DNS Only”).
- This exposes your real IP for the game port, but allows connection.
- Advanced: To protect the game port, you would need Cloudflare Spectrum (Paid) or a dedicated DDoS-protected hosting provider (OVH, NeoProtect, etc.).
Application security
Strong passwords
EML AdminTool is the control center of your launcher. If an attacker gains access, they can push malicious updates to all your players.
Use a generated password of at least 16 characters for the Admin account.
HTTPS is mandatory
Never run EML AdminTool in production over HTTP.
- It exposes your admin password in clear text.
- It exposes the session tokens of your users.
- Modern browsers may block downloads or APIs from non-secure sources.
Follow the Set up NGINX and Use an SSL Certificate guides to ensure encryption.
System maintenance
A secure server is an updated server. Botnets scan for outdated software vulnerabilities 24/7.
- Update your OS: Run updates regularly.
- Debian/Ubuntu:
sudo apt update && sudo apt upgrade - CentOS/RHEL:
sudo dnf update
- Debian/Ubuntu:
- Update EML AdminTool: Check our GitHub releases for security patches.
- Protect your
.envfile: This file contains your database credentials and secret keys. Ensure it is never shared or committed to a public repository.