GitHub ↗

Debian / Ubuntu

wget https://github.com/jp1337/easywall/releases/latest/download/easywall_amd64.deb
sudo dpkg -i easywall_amd64.deb && sudo apt-get install -f

Then open https://<server>:12227. The certificate is self-signed on first start, so the browser will warn — accept it, or configure your own. The first visit runs the setup wizard.

arm64 packages are on the same release page.

Where everything lives

Path  
/etc/easywall/easywall.toml core: firewall options, acceptance window, Docker
/etc/easywall/web.toml web: auth, TLS, language, bind address
/var/lib/easywall/rules.json the three rule sets
/var/log/easywall/audit.log audit log, rotated daily

Full key reference: Configuration.

Running it

systemctl status  easywall-core easywall-web
journalctl -u easywall-core -f
journalctl -u easywall-web  -f
systemctl restart easywall-core easywall-web

easywall-core runs as root; easywall-web runs as the unprivileged easywall user. Both start on boot.

Your own certificate

# /etc/easywall/web.toml
[tls]
cert = "/etc/letsencrypt/live/example.com/fullchain.pem"
key  = "/etc/letsencrypt/live/example.com/privkey.pem"
systemctl restart easywall-web

The easywall user must be able to read both files — a Let’s Encrypt privkey.pem is root:root 0600 by default.

Removing it

sudo apt remove easywall          # keeps /etc/easywall and the rules
sudo apt purge  easywall          # removes them too

Purging does not flush the rules from the kernel. Do that first if you want the host open again:

sudo nft delete table inet easywall