Part 1: Architecture, Dnscrypt-Proxy, Configuration
Introduction / Overview
Every since I have heard about the DoH (DNS over HTTPS) server on Linux Action News, I’ve wanted to set one up myself and also work on some other monitoring tools to as well. I like to document running through these tutorials and drill down into the hick-ups along the way because there are always hick-ups. I find that the best learning happens when things don’t work as planned. In the process of finding out why something is not working you also learn so many other things along the way.
For this tutorial I am following instructions from Antoine Aflalo’s page. It is very well laid out and easy to follow. In my setup I decided to use the Debian 9 (Stretch) and am hosting in AWS.
The simple installation of dnscrypt works just fine. As soon as I get to the configuration I run into issues. The command
sudo add-apt-repository shows as not found (this is to use PPA to install programs). So I investigated why that is so. It turns out that the package add-apt-repository is not automatically installed on Debian or Ubuntu and in order to use this method of installation you must first install that package. A simple Google search reveals the command needed to install the package. And it is NOT
sudo apt install add-apt-repository. The actual command to install the package is
sudo apt-get install software-properties-common. You can find an explanation of why that is here.
After installation I was unable able to locate the .toml file mentioned in the tutorial. As a result I went back to review the installation using PPA and noticed the following output:
gpg:failed to start the dirmngr'/usr/bin/dirmngr': No such file or directory
gpg:keyserver receive failed: No dirmngr
From a quick Google search I have also realized that dirmngr needs to be installed as well. The command for that is as follows
sudo apt-get install dirmngr --install-recommends Now when we run the command
sudo add-apt repository ppa:shevchuk/dnscrypt-proxy the output returns the following:
gpg: keybox ‘/tmp/tmpxxxxxx/pubring.gpg’ created
gpg: /tmp/tmpxxxxxx/trustdb.gpg: trustdb created
gpg: key xxxxxxxxxx: public key “Launchpad PPA for Andrei Shevchuk” imported
gpg: Total number processed: 1
After executing this command, I still did not locate the .toml file so I pulled the repository into my user folder and used nano to edit and rename the .toml file and then to
After editing the file and renaming it to “dnscrypt-proxy.toml” move the file to the appropriate directory and then verify that it has been moved.
sudo mv dnscrypt-proxy.toml /etc/dnscrypt-proxy/
Once the file has been moved, restart the service.
sudo systemctl restart dnscrypt-proxy
If you are using this tutorial and using Debian or Ubuntu, I would add the following commands before beginning your installation:
sudo apt-get install software-properties-common
sudo apt-get install dirmngr --install-recommends
It the next part of this article we will go through install and setup of the DNS-over-HTTPS server.