towerops/lib/towerops_web/live
Graham McIntire 4d73e77f3a
Add 404-based brute force protection system
Implements automated detection and blocking of IPs exhibiting scanning behavior (5+ unique 404s within 1 minute).

Key features:
- Progressive ban escalation (5 min → 1 hour → permanent)
- CIDR range and exact IP whitelisting
- Redis-backed 404 path tracking with 60s TTL
- Cloudflare WAF integration for permanent bans
- Admin UI for whitelist and blocked IP management
- Oban cron jobs for cleanup (expired bans, stale violations)
- ETS caching for whitelist performance

Components:
- Plug: ToweropsWeb.Plugs.BruteForceProtection
- Context: Towerops.Security.BruteForce
- Schemas: IpBlock, IpWhitelist
- Workers: CloudflareBanWorker, ExpiredBanCleanupWorker, StaleViolationCleanupWorker
- Admin UI: /admin/security (superuser only)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 16:31:48 -06:00
..
account_live Replace single name field with first_name and last_name 2026-02-01 15:00:23 -06:00
admin Add 404-based brute force protection system 2026-02-10 16:31:48 -06:00
agent_live Add agent restart and self-update commands 2026-02-10 13:06:10 -06:00
alert_live refactor: centralize LiveView access control checks 2026-02-04 17:51:05 -06:00
device_live fix bug on device add/edit page with mikrotik api fields showing 2026-02-09 13:01:47 -06:00
graph_live wip 2026-02-09 12:44:37 -06:00
help_live help update 2026-02-04 17:56:48 -06:00
helpers refactor: centralize LiveView access control checks 2026-02-04 17:51:05 -06:00
mikrotik_backup_live handle mikrotik ssh 2026-02-02 16:42:18 -06:00
org UI improvements 2026-02-05 14:57:11 -06:00
org_live UI improvements 2026-02-05 14:57:11 -06:00
site_live make devices site optional and many test fix 2026-02-04 15:05:42 -06:00
user_settings_live more gettext 2026-02-02 13:10:08 -06:00
dashboard_live.ex make devices site optional and many test fix 2026-02-04 15:05:42 -06:00
dashboard_live.html.heex make devices site optional and many test fix 2026-02-04 15:05:42 -06:00
mobile_qr_live.ex more dark mode 2026-01-20 17:23:11 -06:00
network_map_live.ex filter more honeybadger alerts, format dates to users time zone, email template cleanup 2026-02-01 09:27:42 -06:00
network_map_live.html.heex refactoring 2026-01-29 10:03:43 -06:00
user_registration_live.ex add snmp port 2026-02-03 12:51:50 -06:00
user_reset_password_live.ex add HIBP password check 2026-02-01 08:57:01 -06:00
user_settings_live.ex add default org 2026-02-02 10:45:37 -06:00
user_settings_live.html.heex add default org 2026-02-02 10:45:37 -06:00