The firewall
Symplax uses the firewall your distribution ships with:- UFW on Ubuntu and Debian.
- firewalld on AlmaLinux, Rocky Linux, CentOS Stream and Fedora.
What is allowed
Traffic from Docker’s bridge network is also allowed, so containers keep working behind the firewall.
Every other incoming port is closed.
Symplax keeps ports that were already publicly listening when you connected, so a VPN, game server or other service you were already running stays reachable. Setup logs which ports it left open. Services bound to
127.0.0.1 stay private, as they were before.Apps don’t need extra ports
Your apps are reached through nginx on ports 80 and 443, using their*.symplax.app subdomain or a custom domain. Deploying an app doesn’t open any new firewall port.
Opening a port yourself
If you start a new service on another port after setup, allow it yourself from SSH or the console:Fail2Ban
Symplax installs Fail2Ban and turns on its SSH jail with these settings:
Symplax’s addresses are excluded so that a few failed logins can never lock Symplax out of a server it manages. The config is written to
/etc/fail2ban/jail.local.
If you lock yourself out from your own IP, wait an hour for the ban to lift, or use the console, which connects from Symplax and isn’t affected.
Database ports
Databases work differently. A database container publishes its port through Docker, and Docker’s port publishing bypasses UFW rules. So Symplax doesn’t rely on UFW for databases. It adds its owniptables rules for each database port:
- Private (the default): only Symplax can reach the port. Your apps on the same server connect over the internal Docker network, not this port.
- Public with an allowlist: only the IP addresses you list, plus Symplax, can connect. Up to 10 addresses per database.
- Public to everyone: any address can connect.
Database public access
Turn public access on, manage the IP allowlist and pick an expiry.