Account security
First passwords
First passwords
The first admin created with
DNZ_ADMIN_PASSWORD must choose a new password at the first
sign-in. So must every user whose password an admin created or reset. Passwords need at least
10 characters and are hashed with argon2.Brute-force protection
Brute-force protection
After 5 failed sign-ins, that username is locked for 15 minutes. An IP address is locked after
20 failures. Both show up in the audit log as
user.login_failed and user.login_locked.Behind a reverse proxy, set DNZ_TRUSTED_PROXIES so the client’s address is locked, not the
proxy’s. See HTTPS and reverse proxies.Sessions
Sessions
Sessions end after
DNZ_SESSION_TTL_HOURS (168 hours by default), or sooner when unused for
DNZ_SESSION_IDLE_HOURS (72 hours by default). Signed-in devices are listed under
Account → Sessions, where you can sign any of them out. The CLI has the same with
dnz session list and dnz session revoke.Security headers
Security headers
Every response carries a per-page Content Security Policy that only allows DNZ’s own scripts,
X-Frame-Options: DENY, X-Content-Type-Options: nosniff, and HSTS when reached over HTTPS
(directly, or through a proxy that sends X-Forwarded-Proto: https).Secrets
Secrets
API tokens and update-key secrets are shown once; DNZ stores only a hash of each API token.
Passwords and secrets are never written to the audit log, and notification secrets are shown
masked.
Firewall
See Encrypted DNS and Replication.