Skip to content
VORQUL
VorqulPanel / Security

Firewall and server hardening

A firewall interface is only useful if it makes the safe configuration the easy one. Listing every rule in a table does not do that.

VorqulPanel manages the server firewall through nftables, with a rule interface covering port exposure, source address restrictions, rate limiting and automatic bans for brute-force attempts. It also handles SSH hardening, and the panel service itself runs under a restricted systemd unit.

Backend
nftables
Bans
Automatic, rate based
Source rules
CIDR allowlists
Panel service
Hardened systemd unit

Rules

The interface works in terms of services rather than raw rules: web, mail, DNS, SSH, panel, game instance ports. Each service is open to everyone, open to a list of CIDR ranges, or closed. The generated nftables ruleset stays viewable and exportable, because at some point you will want to read it.

A common pattern the panel supports directly: HTTP and HTTPS restricted to a CDN’s address ranges so the origin cannot be hit directly, with the ranges refreshable on a schedule.

Brute-force protection

  • Rate limits on SSH, SFTP, mail submission and the panel login
  • Automatic temporary bans with escalating duration
  • Permanent ban list with reason and timestamp
  • Allowlist for your own addresses so you cannot lock yourself out
  • Ban and unban from the panel with the log of what triggered it

SSH

SSH hardening covers the usual set - key-only authentication, root login disabled, a non-default port if you want one, and a restricted set of allowed users. The panel checks that key authentication actually works before it disables passwords, which is the step people skip immediately before locking themselves out.

The panel’s own posture

The panel runs as a systemd service with a restricted unit: limited filesystem access, no new privileges, a reduced capability set and private temporary directories. It is the piece of software on the machine with the broadest reach, so it gets the tightest confinement that still allows it to work.

Privileged operations go through a small helper with a fixed set of allowed actions rather than the panel process holding root permanently.

Frequently asked questions

Related pages