diff --git a/configuration/default.nix b/configuration/default.nix index 8dddf76..d4c422f 100644 --- a/configuration/default.nix +++ b/configuration/default.nix @@ -18,6 +18,7 @@ ./services/backups.nix ./services/battery-manager.nix ./services/conduit.nix + ./services/crowdsec.nix ./services/foundryvtt.nix ./services/gitea.nix ./services/metrics diff --git a/configuration/services/crowdsec.nix b/configuration/services/crowdsec.nix new file mode 100644 index 0000000..110602c --- /dev/null +++ b/configuration/services/crowdsec.nix @@ -0,0 +1,35 @@ +{ pkgs, ... }: +{ + security.crowdsec = { + enable = true; + + parserWhitelist = [ + "1.64.239.213" + ]; + + settings.crowdsec_service.acquisition_path = pkgs.writeText "crowdsec-acquisitions.yaml" '' + --- + source: journalctl + journalctl_filter: + - "SYSLOG_IDENTIFIER=Nextcloud" + labels: + type: syslog + --- + source: journalctl + journalctl_filter: + - "SYSLOG_IDENTIFIER=sshd-session" + labels: + type: syslog + --- + ''; + + remediationComponents.firewallBouncer = { + enable = true; + settings.prometheus = { + enabled = true; + listen_addr = "127.0.0.1"; + listen_port = "60601"; + }; + }; + }; +} diff --git a/configuration/services/metrics/victoriametrics.nix b/configuration/services/metrics/victoriametrics.nix index 710cf70..5cfc614 100644 --- a/configuration/services/metrics/victoriametrics.nix +++ b/configuration/services/metrics/victoriametrics.nix @@ -10,6 +10,22 @@ extraSettings.authorization.credentials_file = config.sops.secrets."forgejo/metrics-token".path; }; coturn.targets = [ "127.0.0.1:9641" ]; + + crowdsec.targets = + let + address = config.security.crowdsec.settings.prometheus.listen_addr; + port = config.security.crowdsec.settings.prometheus.listen_port; + in + [ "${address}:${toString port}" ]; + + csFirewallBouncer.targets = + let + address = + config.security.crowdsec.remediationComponents.firewallBouncer.settings.prometheus.listen_addr; + port = + config.security.crowdsec.remediationComponents.firewallBouncer.settings.prometheus.listen_port; + in + [ "${address}:${toString port}" ]; }; }; }