dnssec
This commit is contained in:
@@ -62,5 +62,8 @@ in
|
|||||||
algorithm = "zstd";
|
algorithm = "zstd";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
my.dns.strictDNSSEC = true;
|
||||||
|
|
||||||
system.stateVersion = "25.05";
|
system.stateVersion = "25.05";
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-3
@@ -6,7 +6,10 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [ nixosModules.packages.common ];
|
imports = [
|
||||||
|
nixosModules.packages.common
|
||||||
|
nixosModules.dnsResolved
|
||||||
|
];
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
@@ -65,6 +68,7 @@
|
|||||||
systemd.network.wait-online.enable = false;
|
systemd.network.wait-online.enable = false;
|
||||||
services.resolved.enable = true;
|
services.resolved.enable = true;
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
my.dns.enable = true;
|
||||||
|
|
||||||
systemd.network.networks."10-wired" = {
|
systemd.network.networks."10-wired" = {
|
||||||
matchConfig.Name = [
|
matchConfig.Name = [
|
||||||
@@ -75,8 +79,14 @@
|
|||||||
DHCP = "yes";
|
DHCP = "yes";
|
||||||
IPv6AcceptRA = true;
|
IPv6AcceptRA = true;
|
||||||
};
|
};
|
||||||
dhcpV4Config.RouteMetric = 100;
|
dhcpV4Config = {
|
||||||
ipv6AcceptRAConfig.RouteMetric = 100;
|
RouteMetric = 100;
|
||||||
|
UseDNS = false;
|
||||||
|
};
|
||||||
|
ipv6AcceptRAConfig = {
|
||||||
|
RouteMetric = 100;
|
||||||
|
UseDNS = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
|
|||||||
@@ -7,4 +7,5 @@
|
|||||||
mailServer = import ./mail-server;
|
mailServer = import ./mail-server;
|
||||||
packages = import ./packages;
|
packages = import ./packages;
|
||||||
zfsRoot = import ./zfs-root.nix;
|
zfsRoot = import ./zfs-root.nix;
|
||||||
|
dnsResolved = import ./dns-resolved.nix;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
{ config, lib, options, ... }:
|
||||||
|
let
|
||||||
|
# Targets the custom options we created
|
||||||
|
cfg = config.my.dns;
|
||||||
|
|
||||||
|
# Feature detection
|
||||||
|
hasSettings = options.services.resolved ? settings;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.dns = {
|
||||||
|
enable = lib.mkEnableOption "custom DNS setup with Cloudflare and LibreDNS";
|
||||||
|
|
||||||
|
strictDNSSEC = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "If true, enforces strict DNSSEC. If false, uses allow-downgrade.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
networking.nameservers = [
|
||||||
|
"116.202.176.26#dot.libredns.gr"
|
||||||
|
"1.1.1.1#cloudflare-dns.com"
|
||||||
|
"1.0.0.1#cloudflare-dns.com"
|
||||||
|
];
|
||||||
|
|
||||||
|
services.resolved = if hasSettings then {
|
||||||
|
enable = true;
|
||||||
|
settings.Resolve = {
|
||||||
|
DNSOverTLS = "yes";
|
||||||
|
DNSSEC = if cfg.strictDNSSEC then "yes" else "allow-downgrade";
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
enable = true;
|
||||||
|
dnsovertls = "true";
|
||||||
|
dnssec = if cfg.strictDNSSEC then "true" else "allow-downgrade";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -9,6 +9,8 @@
|
|||||||
defaults.email = "postmaster@billenius.com";
|
defaults.email = "postmaster@billenius.com";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.dns.strictDNSSEC = true;
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./autodiscover.nix
|
./autodiscover.nix
|
||||||
./mail.nix
|
./mail.nix
|
||||||
|
|||||||
Reference in New Issue
Block a user