{ config, lib, this, ... }: let cfg = config.nixfiles.modules.fail2ban; in { options.nixfiles.modules.fail2ban.enable = lib.mkEnableOption "fail2ban"; config = lib.mkIf cfg.enable { ark.directories = [ "/var/lib/fail2ban" ]; services.fail2ban = { enable = true; bantime-increment = { enable = true; maxtime = "24h"; rndtime = "8m"; }; ignoreIP = lib.optionals (lib.hasAttr "wireguard" this) ( with config.nixfiles.modules.wireguard; [ ipv4.subnet ipv6.subnet ] ); jails.DEFAULT.settings.blocktype = "DROP"; }; }; }