EcliPanel ships a purpose-built Rust daemon that runs alongside Wings on each node and watches outbound network traffic in real time. When the daemon detects a pattern that looks like abuse — a DDoS burst, a port scan, crypto-mining traffic, or a UDP amplification attack — it takes immediate action: suspending the offending server, filing an incident report with the backend, and triggering an email to the server owner. Administrators can review every incident in the admin panel. Because the daemon is compiled to a single native binary, it adds negligible overhead to the node.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/thenoname-gurl/EcliPanel/llms.txt
Use this file to discover all available pages before exploring further.
What the daemon monitors
The daemon inspects every outbound TCP and UDP connection originating from containers on the node. It tracks:- Source and destination IPs and ports to determine connection direction and identify internal containers.
- Hit counts and unique IP counts within configurable fast and slow time windows.
- Port distribution across destinations to recognise sequential or wide-range port scanning.
- Mining-port connections to detect suspected crypto-mining pool traffic.
- UDP amplification targets (DNS, NTP, memcached, and similar amplification-capable services).
Detection types
| Detection type | What triggers it |
|---|---|
ddos_fast_threshold_tcp / _udp | High connection counts to many unique IPs within the fast time window |
ddos_slow_threshold_tcp / _udp | Sustained high connection counts across the slow time window |
port_scan_unique_ports_tcp / _udp | More unique non-ephemeral destination ports than the configured threshold |
port_scan_sequential_tcp / _udp | A run of consecutively numbered destination ports |
udp_amplification_attack | Outbound UDP to known amplification-capable ports (DNS :53, NTP :123, memcached :11211, etc.) |
udp_flood | High UDP hit count across many unique destination IPs |
crypto_mining_pool_ports | Outbound connections to known mining pool ports (3333, 4444, 5555, 6666, 7777, 14444) |
The detection thresholds, time windows, and safe-port list are all configurable through the daemon’s
.env file. Refer to .env.example in the antiabuse/ directory for every available option.What happens when abuse is detected
The daemon follows a strike-based escalation ladder:- Alert — An incident is recorded and reported to the backend. No action is taken on the server.
- Throttle — The server’s CPU is capped for a configurable duration via the backend API.
- Suspend — The server is stopped and marked as suspended via the backend API.
- The backend marks the server as suspended.
- An email is sent to the server owner explaining what was detected.
- The incident appears in the Admin Panel → Anti-Abuse section, where staff can review the detection metrics, recent connection events, and decide whether to unsuspend the server.
If a server is already offline, stopped, or hibernated when a detection fires, suspension is skipped and the incident is recorded as an alert instead.
Deploying the daemon
The daemon must run asroot on each Wings node so it can capture raw network traffic. The recommended deployment path is a compiled binary managed by systemd.
Configure the environment
Copy the example environment file and fill in your values:At a minimum you must set
BACKEND_URL (the URL of your EcliPanel backend) and ANTIABUSE_API_KEY (a key with the admin:antiabuse permission).Build the binary
Compile a release build with Cargo:The binary is produced at
target/release/eclipanel-antiabuse.Install the systemd unit
Copy the provided unit file, reload the systemd daemon, and enable the service:
Restart=always and RestartSec=3, so it recovers automatically from transient failures. The WorkingDirectory in the unit file points to your deployment path — update it if you deploy to a different location.
Viewing incidents in the admin panel
Every incident the daemon reports is visible to administrators at Admin Panel → Anti-Abuse. Each record shows:- The server name and ID
- The detection type and human-readable reason
- Enforcement action taken (alert, throttle, or suspend)
- Strike count at the time of detection
- Detailed metrics (unique IPs, hit counts, time-window data)
- A log of the most recent connection events that contributed to the detection
admin:antiabuse permission can update an incident’s status or delete it from the panel. Bulk status changes and bulk deletions are also supported for high-volume situations.