nixos/modules/system/resolved: disable DNSSEC validation by default

Historically, we allowed downgrade of DNSSEC, but some folks argue
this may decrease actually the security posture to do opportunistic DNSSEC.

In addition, the current implementation of (opportunistic) DNSSEC validation
is broken against "in the wild" servers which are usually slightly non-compliant.

systemd upstream recommended to me (in personal communication surrounding
the All Systems Go 2023 conference) to disable DNSSEC validation until
they work on it in a significant capacity, ideally, by next year.

Changed files
+7 -1
nixos
modules
system
+7 -1
nixos/modules/system/boot/resolved.nix
···
};
services.resolved.dnssec = mkOption {
-
default = "allow-downgrade";
example = "true";
type = types.enum [ "true" "allow-downgrade" "false" ];
description = lib.mdDoc ''
···
synthesizing a DNS response that suggests DNSSEC was not
supported.
- `"false"`: DNS lookups are not DNSSEC validated.
'';
};
···
};
services.resolved.dnssec = mkOption {
+
default = "false";
example = "true";
type = types.enum [ "true" "allow-downgrade" "false" ];
description = lib.mdDoc ''
···
synthesizing a DNS response that suggests DNSSEC was not
supported.
- `"false"`: DNS lookups are not DNSSEC validated.
+
+
At the time of September 2023, systemd upstream advise
+
to disable DNSSEC by default as the current code
+
is not robust enough to deal with "in the wild" non-compliant
+
servers, which will usually give you a broken bad experience
+
in addition of insecure.
'';
};