HASH c42ae82aa831
DATE 2025-10-23
SUBJECT caddy: fail2ban configuration
FILES 2 CHANGED
HASH c42ae82aa831
DATE 2025-10-23
SUBJECT caddy: fail2ban configuration
FILES 2 CHANGED
┌─ modules/nixos/server/webserver/caddy-fail2ban.nix ────────────────────────┐
│ diff --git a/modules/nixos/server/webserver/caddy-fail2ban.nix b/modules/nixos/ser │
│ ver/webserver/caddy-fail2ban.nix │
│ new file mode 100644 │
│ index 0000000..56c89b1 │
│ --- /dev/null │
│ +++ b/modules/nixos/server/webserver/caddy-fail2ban.nix │
│ @@ -0,0 +1,24 @@ │
│ +{ │
│ + config, │
│ + lib, │
│ + ... │
│ +}: let │
│ + inherit (lib) mkIf; │
│ + inherit (config.ooknet.server.webserver) caddy; │
│ + inherit (config.services) fail2ban; │
│ +in { │
│ + config = mkIf (caddy.enable && fail2ban.enable) { │
│ + services.fail2ban.jails.caddy-4xx = { │
│ + settings = { │
│ + maxretry = 20; │
│ + findtime = "5m"; │
│ + bantime = "1h"; │
│ + }; │
│ + │
│ + filter.Definition = { │
│ + failregex = ''^.*"status":(4\d{2}).*"remote_ip":"<HOST>".*$''; │
│ + journalmatch = "_SYSTEMD_UNIT=caddy.service"; │
│ + }; │
│ + }; │
│ + }; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ .../webserver/caddy-fail2ban.nix ───┐
│ diff --git a/modules/nixos/server/webserver/ │
│ caddy-fail2ban.nix b/modules/nixos/server/we │
│ bserver/caddy-fail2ban.nix │
│ new file mode 100644 │
│ index 0000000..56c89b1 │
│ --- /dev/null │
│ +++ b/modules/nixos/server/webserver/caddy-f │
│ ail2ban.nix │
│ @@ -0,0 +1,24 @@ │
│ +{ │
│ + config, │
│ + lib, │
│ + ... │
│ +}: let │
│ + inherit (lib) mkIf; │
│ + inherit (config.ooknet.server.webserver) │
│ caddy; │
│ + inherit (config.services) fail2ban; │
│ +in { │
│ + config = mkIf (caddy.enable && fail2ban.e │
│ nable) { │
│ + services.fail2ban.jails.caddy-4xx = { │
│ + settings = { │
│ + maxretry = 20; │
│ + findtime = "5m"; │
│ + bantime = "1h"; │
│ + }; │
│ + │
│ + filter.Definition = { │
│ + failregex = ''^.*"status":(4\d{2}). │
│ *"remote_ip":"<HOST>".*$''; │
│ + journalmatch = "_SYSTEMD_UNIT=caddy │
│ .service"; │
│ + }; │
│ + }; │
│ + }; │
│ +} │
└──────────────────────────────────────────────┘
┌─ modules/nixos/server/webserver/default.nix ───────────────────────────────┐
│ diff --git a/modules/nixos/server/webserver/default.nix b/modules/nixos/server/web │
│ server/default.nix │
│ index 1f898a8..0e67171 100644 │
│ --- a/modules/nixos/server/webserver/default.nix │
│ +++ b/modules/nixos/server/webserver/default.nix │
│ @@ -1,5 +1,6 @@ │
│ { │
│ imports = [ │
│ ./caddy.nix │
│ + ./caddy-fail2ban.nix │
│ ]; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ .../server/webserver/default.nix ───┐
│ diff --git a/modules/nixos/server/webserver/ │
│ default.nix b/modules/nixos/server/webserver │
│ /default.nix │
│ index 1f898a8..0e67171 100644 │
│ --- a/modules/nixos/server/webserver/default │
│ .nix │
│ +++ b/modules/nixos/server/webserver/default │
│ .nix │
│ @@ -1,5 +1,6 @@ │
│ { │
│ imports = [ │
│ ./caddy.nix │
│ + ./caddy-fail2ban.nix │
│ ]; │
│ } │
└──────────────────────────────────────────────┘
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET