nixos/prometheus-exporters: use nixos-fw chain

Use nixos-fw chain instead of INPUT so that the rules don't keep
stacking everytime the firewall is reloaded.
This also adds a comment to each rule about the associated exporter.

Changed files
+5 -4
nixos
modules
services
monitoring
prometheus
+5 -4
nixos/modules/services/monitoring/prometheus/exporters.nix
···
description = ''
Specify a filter for iptables to use when
<option>services.prometheus.exporters.${name}.openFirewall</option>
-
is true. It is used as `ip46tables -I INPUT <option>firewallFilter</option> -j ACCEPT`.
+
is true. It is used as `ip46tables -I nixos-fw <option>firewallFilter</option> -j nixos-fw-accept`.
'';
};
user = mkOption {
···
mkExporterConf = { name, conf, serviceOpts }:
mkIf conf.enable {
-
networking.firewall.extraCommands = mkIf conf.openFirewall ''
-
ip46tables -I INPUT ${conf.firewallFilter} -j ACCEPT
-
'';
+
networking.firewall.extraCommands = mkIf conf.openFirewall (concatStrings [
+
"ip46tables -I nixos-fw ${conf.firewallFilter} "
+
"-m comment --comment ${name}-exporter -j nixos-fw-accept"
+
]);
systemd.services."prometheus-${name}-exporter" = mkMerge ([{
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];