inherit (config.networking) domain;
in
{
+# TODO: nsupdate in the initrd
systemd.services.nsupdate = {
after = [
"network-online.target"
User = users."nsupdate".name;
};
};
-users.users."nsupdate".isSystemUser = true;
+users.users."nsupdate" = {
+ isSystemUser = true;
+ group = groups."nsupdate".name;
+};
+users.groups."nsupdate" = {};
users.groups."keys".members = [users."nsupdate".name];
security.gnupg.secrets."knot/tsig/${domain}/bureau1.key" = {
user = users."nsupdate".name;
};
+networking.nftables.ruleset =
+ lib.optionalString (config.services.upnpc.redirections != []) ''
+ # Create a rule for accepting any SSDP packets going to a remembered port.
+ add rule inet filter net2fw udp dport @ssdp_out \
+ counter accept comment "SSDP answer"
+ add rule inet filter fw2net \
+ skuid {${users.upnpc.name},${users.nsupdate.name}} \
+ tcp dport 1900 \
+ counter accept \
+ comment "SSDP automatic opening"
+ add rule inet filter fw2net \
+ skuid {${users.upnpc.name},${users.nsupdate.name}} \
+ ip daddr 239.255.255.250 udp dport 1900 \
+ set add udp sport @ssdp_out \
+ comment "SSDP automatic opening"
+ add rule inet filter fw2net \
+ skuid {${users.upnpc.name},${users.nsupdate.name}} \
+ ip daddr 239.255.255.250 udp dport 1900 \
+ counter accept comment "SSDP"
+ '' + lib.optionalString config.networking.enableIPv6 ''
+ add rule inet filter fw2net \
+ skuid {${users.upnpc.name},${users.nsupdate.name}} \
+ ip6 daddr {FF02::C, FF05::C, FF08::C, FF0E::C} udp dport 1900 \
+ set add udp sport @ssdp_out comment "SSDP automatic opening"
+ add rule inet filter fw2net \
+ skuid {${users.upnpc.name},${users.nsupdate.name}} \
+ ip6 daddr {FF02::C, FF05::C, FF08::C, FF0E::C} udp dport 1900 \
+ counter accept comment "SSDP"
+ '';
}