Installation ------------ Step 1: * Install DJB's daemontools (optional) and setup /package and /service directory if you want to use djbdnscurve6 using svc. [http://cr.yp.to/daemontools.html] * Install NaCl; recommended under /usr/local [http://nacl.cr.yp.to] * NaCl is included in libsodium as well: [https://libsodium.gitbook.io/doc/] to be used alternatively. * Installation of djbdnscurve6 in a VM requires libsodium instead of NaCl. * Install qlibs; recommended under /usr/local Step 2: * Untar djbdnscurve6-XYZ under /package cd to net/djbdnscurve6 and the respective subdir Step 3: * Customize djbdnscurve6 - conf-home: where to place binaries - conf-qlibs: where the qlibs are located - conf-nacl: where to find the NACL modules Attention: Check 'hostname' and 'arch' in path and adjust to your local settings * libsodium settings - change conf-nacl to include the path of your libsodium settings - Usually, the libsodium samples in conf-nacl do work; put them on lines 1 and 2 - In src/Makefile replace 'nacl' with 'sodium' (one occurence, about line number 321) * If required, you can adjust - conf-cc for compiler settings - conf-ld for loader settings - conf-man for man-page location * Services are initially configured editing -conf-dnscache: setting up dnscache; /var/service/dnscache @ ::1 - enabled -conf-tinydns: setting up tinydns; disabled -conf-rbldns: setting up rbldns; disabled -conf-walldns: setting up walldns; disabled -conf-axfrdns: is still a dummy You have to specify each: - a userid for service - a service directory - a log-userid - an IP address to bind to * Binaries are usually installed at - /usr/local/bin * Service directories are assumed to exist at: - /var/service/XXX both are customizable. Given the ./run script, the service directory needs to be able to support executables. Step 4: * Execute - package/install * or using individual steps - package/compile - package/upgrade - package/legacy - package/man - package/service (for conf-XX services) * If you are not planning to use - dnscache - tinydns - rbldns - walldns under supervise; don't apply the respective XX-conf executables but rather use customized run scripts and feed the required environment variables and uid settings manually; not to forget to care about logging. Step 5: * Call - curvedns-keygen in each service home directory (ie. tinydns) to generate the public and private keys under - ./env * Use the generated public key name of your service as hostname for your DNS service and use it as delegated NS anchor. Read the man pages! Erwin Hoffmann; July 2023