aboutsummaryrefslogtreecommitdiff
path: root/hosts/sagittarius/web/dns.nix
blob: 800a32130046e5542b149b6d0cf72dfb62e14fb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{ flakeRoot, ... }:
let
  nsdPort = 5340;
in
{
  services.nsd = {
    enable = true;
    interfaces = [ "127.0.0.1" ];
    verbosity = 5;
    port = nsdPort;
    zones."sorre.internal." = {
      data = builtins.readFile (flakeRoot + /etc/dns/sorre.internal.zone);
      provideXFR = [ "127.0.0.1 NOKEY" ];
    };
  };

  services.resolved.enable = false;
  services.unbound = {
    enable = true;
    settings = {
      server = {
        interface = [
          "127.0.0.1"
          "2301:db8:acad:a::1"
        ];
        verbosity = 5;
        do-not-query-localhost = false;
        access-control = [
          # allow wireguard
          "2301:db8:acad:a::/64 allow"

          # allow localhost
          "127.0.0.0/8 allow"

          # block all else
          "0.0.0.0/0 refuse"
          "::0/0 refuse"
        ];
      };

      auth-zone = [
        {
          name = "sorre.internal.";
          primary = "127.0.0.1@${toString nsdPort}";
          fallback-enabled = false;
          for-downstream = true;
        }
      ];
    };
  };
}