2023-02-10 17:34:46 +00:00
|
|
|
{ config, pkgs, ... }: {
|
|
|
|
services.fail2ban = {
|
|
|
|
enable = true;
|
2023-03-06 19:40:04 +00:00
|
|
|
maxretry = 10;
|
2023-02-10 17:34:46 +00:00
|
|
|
ignoreIP = [ "127.0.0.0/8" "10.0.0.0/8" "192.168.0.0/16" "78.94.116.222" ];
|
|
|
|
bantime-increment.enable = true;
|
2023-03-06 19:40:04 +00:00
|
|
|
|
|
|
|
jails = {
|
|
|
|
nginx-bad-request = ''
|
|
|
|
enabled = true
|
|
|
|
action = iptables[type=allports]
|
|
|
|
'';
|
|
|
|
grafana = ''
|
|
|
|
enabled = true
|
|
|
|
action = iptables[type=allports]
|
|
|
|
'';
|
|
|
|
};
|
2023-02-10 17:34:46 +00:00
|
|
|
};
|
2023-03-06 19:40:04 +00:00
|
|
|
|
|
|
|
# Workaround for nginx-bad-request not being included
|
|
|
|
environment.etc."fail2ban/filter.d/nginx-bad-request.conf".source =
|
|
|
|
pkgs.fetchurl {
|
|
|
|
url =
|
|
|
|
"https://raw.githubusercontent.com/fail2ban/fail2ban/master/config/filter.d/nginx-bad-request.conf";
|
|
|
|
sha256 = "sha256-fCxNQpN+IAY+2kfeOmunmtipxTjS0gHauTBIKiCtjDY=";
|
|
|
|
};
|
2023-02-10 17:34:46 +00:00
|
|
|
}
|
|
|
|
|