From 50e450d06554457cbec6f43b21109dc25006297c Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 4 Sep 2017 10:11:07 +0200 Subject: [PATCH] ma dnscrypt: provide client and server config --- makefu/2configs/dnscrypt/client.nix | 18 +++++++++++++++--- makefu/2configs/dnscrypt/server.nix | 26 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 makefu/2configs/dnscrypt/server.nix diff --git a/makefu/2configs/dnscrypt/client.nix b/makefu/2configs/dnscrypt/client.nix index 6e7ef0f82..988fb4a7d 100644 --- a/makefu/2configs/dnscrypt/client.nix +++ b/makefu/2configs/dnscrypt/client.nix @@ -1,6 +1,18 @@ -{ - services.dnscrypt-proxy.enable = true; - services.dnscrypt-proxy.resolverName = "cs-de"; +{ config, ... }: +let + customResolver = { + # TODO: put this somewhere else + address = config.krebs.hosts.gum.nets.internet.ip4.addr; + port = 15251; + name = "2.dnscrypt-cert.euer.krebsco.de"; + # dnscrypt-wrapper --show-provider-publickey --provider-publickey-file public.key + key = "1AFC:E58D:F242:0FBB:9EE9:4E51:47F4:5373:D9AE:C2AB:DD96:8448:333D:5D79:272C:A44C"; + }; +in { + services.dnscrypt-proxy = { + enable = true; + inherit customResolver; + }; networking.extraResolvconfConf = '' name_servers='127.0.0.1' ''; diff --git a/makefu/2configs/dnscrypt/server.nix b/makefu/2configs/dnscrypt/server.nix new file mode 100644 index 000000000..79305e727 --- /dev/null +++ b/makefu/2configs/dnscrypt/server.nix @@ -0,0 +1,26 @@ +{ config, ... }: +let + # TODO: dataDir is currently not provided by upstream + # data = config.services.dnscrypt-wrapper.dataDir; + data = "/var/lib/dnscrypt-wrapper"; + sec = toString ; + port = 15251; + user = "dnscrypt-wrapper"; +in { + services.dnscrypt-wrapper = { + enable = true; + address = "0.0.0.0"; + upstream.address = "8.8.8.8"; + providerName = "2.dnscrypt-cert.euer.krebsco.de"; + inherit port; + }; + networking.firewall.allowedUDPPorts = [ port ]; + systemd.services.prepare-dnscrypt-wrapper-keys = { + wantedBy = [ "dnscrypt-wrapper.service" ]; + before = [ "dnscrypt-wrapper.service" ]; + script = '' + install -m700 -o ${user} -v ${sec}/dnscrypt-public.key ${data}/public.key + install -m700 -o ${user} -v ${sec}/dnscrypt-secret.key ${data}/secret.key + ''; + }; +}