Access control
Ferron supports several access control patterns, from simple 403 Forbidden rules to authenticated areas and IP allow/block lists.
Restrict a path by client IP (return 403)
Use status 403 with not_allowed to allow only specific IPs or CIDR ranges:
// Replace "example.com" with your domain name.
example.com {
root "/var/www/html"
// Only allow these networks to access /admin; everyone else gets 403.
status 403 url="/admin" not_allowed="203.0.113.0/24,2001:db8:1234::/48" body="Access denied"
}Block sensitive paths with regex (return 403)
Use regex matching to deny access to sensitive files/directories:
// Replace "example.com" with your domain name.
example.com {
root "/var/www/html"
// Deny dotfiles and selected sensitive paths.
status 403 regex="/\\."
status 403 regex="^/(?:config|private|backup)(?:$|[/?#])"
}Protect an area with Basic Auth (return 401)
Use status 401 + users + realm and define users with user:
// Replace "example.com" with your domain name.
example.com {
root "/var/www/html"
status 401 url="/admin" realm="Admin Area" users="admin"
user "admin" "$2b$10$replace_with_password_hash"
}For password hashes, use ferron-passwd.
Block or allow IPs globally or per host
Use block and allow for broader access policy:
* {
// Block known abusive addresses globally.
block "198.51.100.10" "203.0.113.0/24"
}
// Replace "example.com" with your domain name.
example.com {
root "/var/www/html"
// Only allow these ranges for this host.
allow "192.168.1.0/24" "10.0.0.0/8"
}Notes and troubleshooting
- If Ferron is behind a reverse proxy/load balancer, configure
trust_x_forwarded_forso IP-based rules use client IP rather than proxy IP. - Test restrictive rules with a temporary endpoint first to avoid locking yourself out.
- Prefer
urlmatches when possible; useregexonly when you need pattern matching. - For complex logic (method/header/path combinations), use conditional configuration. See Configuration: conditionals.
- For directive details (
status,user,allow,block,trust_x_forwarded_for), see Configuration: security & TLS.