Raspberry Pi - Pi-Hole and NxF combination. Home DNS and Ads blocking
For this tutorial I'm using Raspberry
Pi 4B. I do not explicitly explain how to image the Pi or configure network interfaces her. I'm also not focusing on extra-security configuration for the setup, which is surely possible.
What we're trying to achieve
Pi-Hole is known as a good and easy to use DNS filter for a home network with many ads blocking lists publicly available. Although it helps to get rid of some of the annoying ads and known malware, it lacks advanced functionality and control. Even in a home network you may be tempted to have more control and custom policies.
NXFilter is much more than an ads filter, in fact it's designed to be used in an enterprise environment with many amazing features that allow granular control. It is free, and the Jahaslist for blocking that comes with it is free for home usage (under 25 users configured in the system).
Some of the features include:
- Creating users based on IP or LDAP and assigning different DNS access policies to them, including time quota
- Manage categories and classifiers, easily create your own
- Block by categories
- Malware and botnet detection
We want to daisy chain Pi-Hole and NXfilter to take advantage of both of them in our home network and run all of that on our Raspberry Pi. Also, I'm not a fan of installing everything on a bare metal - it's often more complicated, leads to port conflicts and too much configuration, harder to keep up to date. For this scenario we want to use docker containers and leverage their default security and isolation.
Topology explained
![](data:image/png;base64,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)
- Configure your Raspberry Pi with a static IP.
- Set Raspberry Pi as the primary and only DNS IP for you LAN network (can be done in DHCP settings on your router/modem or manually on each device).
- Run Pi-Hole on the raspberry Pi and expose DNS port 53 to the client devices.
- Run NxFilter on the raspberry Pi. Configure Pi-Hole to use NxFIlter's container IP as the only upstream DNS
- Configure NxFilter for DOH (DNS over HTTPS). It will use actual internet DNS servers and complete the name resolution.
1. Install docker on Pi:
# Install dependancies
# Verify that docker is running or start it if it's not:
# Configure a size limit for docker logs
# EDIT FILE: /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m"
}
}
2. Run Pi-Hole in a docker container and verify that it works.
Ports for this container must be published to the recommended standard values to work properly, as this is what LAN clients will face first: 80, 443, 53.
Update the environment variable TZ to your timezone.
# Create a docker network where we will keep both containers
docker network create dns
# Check which subnet was assigned to the network (e.g. 172.18.0.0). We will use it to set static IPs to the containers.
docker network inspect dns
. . .
"Subnet": "172.18.0.0/16",
. . .
# Create a folder where we will keep our containers' persistence data
mkdir ~/Documents/DOCKER
# Start Pi-Hole. Use a static IP in the 'dns' network subnet (here 172.18.0.2). Note that I'm not publishing DHCP port 67, since I don't use Pi-Hole dhcp.
IMAGE CREATED STATUS PORTS
pihole/pihole:latest 25 hours ago Up 24 hours (healthy) 0.0.0.0:53->53/udp, 0.0.0.0:53->53/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp
3. NXFilter (NxF)
Now that the Pi-Hole is working, we're ready to start the NxF. We will put NxF container in the same docker network as Pi-Hole. This way pi-hole can access NXFilter's dns port without them being published on the host. At the same time both will be isolated from the Docker default network. NXFilter Web interface ports shall be published to something that do not overlap with Pi-Hole's web interface (e.g. change 80 to 8080, change 443 to 8081)
At the moment of writing I could not find a well-documented and working docker image for ARM, so I made my own Dockerfile to build the image: https://github.com/maksokami/docker-nxfilter
# Build the docker image
git clone https://github.com/maksokami/docker-nxfilter.git
docker image built -t maksokami/nxfilter .
# Start NXFilter. Use a static IP in the 'dns' network subnet (here 172.18.0.3).
docker logs nxfilter
# Go to the NxF web interface and verify that it's working. Default credentials: admin/admin
https://<RaspPI IP>:8081/admin
# For additional troubleshooting you can publish DNS ports as well and test them separately from Pi-Hole:
# Add extra parameters to the docker run:
4. Enable the chain
Now all you need to enable the daisy-chaining is to configure Pi-Hole to use NxF's container IP ( 172.18.0.3) as the only upstream DNS.
Go to Pi-Hole Settings -> DNS. Configure "Upstream DNS server" to be 172.18.0.3. Disable any other DNS, including DOH (DNS over HTTPS). You should configure DOH in NxF instead.
You will be able to observe some blocking happening at Pi-Hole container, and additional blocking and your custom policies applied at NxF container.
Pi-Hole:
NxF:
![](data:image/png;base64,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)
What we're trying to achieve
Pi-Hole is known as a good and easy to use DNS filter for a home network with many ads blocking lists publicly available. Although it helps to get rid of some of the annoying ads and known malware, it lacks advanced functionality and control. Even in a home network you may be tempted to have more control and custom policies.
NXFilter is much more than an ads filter, in fact it's designed to be used in an enterprise environment with many amazing features that allow granular control. It is free, and the Jahaslist for blocking that comes with it is free for home usage (under 25 users configured in the system).
Some of the features include:
- Creating users based on IP or LDAP and assigning different DNS access policies to them, including time quota
- Manage categories and classifiers, easily create your own
- Block by categories
- Malware and botnet detection
We want to daisy chain Pi-Hole and NXfilter to take advantage of both of them in our home network and run all of that on our Raspberry Pi. Also, I'm not a fan of installing everything on a bare metal - it's often more complicated, leads to port conflicts and too much configuration, harder to keep up to date. For this scenario we want to use docker containers and leverage their default security and isolation.
Topology explained
- Configure your Raspberry Pi with a static IP.
- Set Raspberry Pi as the primary and only DNS IP for you LAN network (can be done in DHCP settings on your router/modem or manually on each device).
- Run Pi-Hole on the raspberry Pi and expose DNS port 53 to the client devices.
- Run NxFilter on the raspberry Pi. Configure Pi-Hole to use NxFIlter's container IP as the only upstream DNS
- Configure NxFilter for DOH (DNS over HTTPS). It will use actual internet DNS servers and complete the name resolution.
1. Install docker on Pi:
# Install dependancies
sudo apt-get install vim apt-transport-https ca-certificates software-properties-common -y
# Get the docker easy install script
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
# Allow pi user to run docker commands without sudo
sudo usermod -aG docker pi
# Add docker to the package update repositories. This will allow to update docker.
# Import the key
sudo curl https://download.docker.com/linux/raspbian/gpg
# Add the repository url to the apt list
# EDIT FILE: /etc/apt/sources.list
deb https://download.docker.com/linux/raspbian/ stretch stable
# Verify that repository is working and upgrade packages, if needed
sudo apt-get update
sudo apt-get upgrade
# Verify that docker is running or start it if it's not:
systemctl status docker.service
systemctl start docker.service
systemctl enable docker.service# Configure a size limit for docker logs
# EDIT FILE: /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m"
}
}
2. Run Pi-Hole in a docker container and verify that it works.
Ports for this container must be published to the recommended standard values to work properly, as this is what LAN clients will face first: 80, 443, 53.
Update the environment variable TZ to your timezone.
- Docker image used: https://hub.docker.com/r/pihole/pihole/
- Folders for Pi-Hole configuration persistence: /home/pi/Documents/DOCKER/. . .
# Create a docker network where we will keep both containers
docker network create dns
# Check which subnet was assigned to the network (e.g. 172.18.0.0). We will use it to set static IPs to the containers.
docker network inspect dns
. . .
"Subnet": "172.18.0.0/16",
. . .
# Create a folder where we will keep our containers' persistence data
mkdir ~/Documents/DOCKER
# Start Pi-Hole. Use a static IP in the 'dns' network subnet (here 172.18.0.2). Note that I'm not publishing DHCP port 67, since I don't use Pi-Hole dhcp.
docker run -d \
--name pihole \
--network dns \
--ip 172.18.0.2 \
-p 53:53/tcp -p 53:53/udp \
-p 80:80 \
-p 443:443 \
-e TZ="America/Chicago" \
-v "/home/pi/Documents/DOCKER/etc-pihole/:/etc/pihole/" \
-v "/home/pi/Documents/DOCKER/etc-dnsmasq.d/:/etc/dnsmasq.d/" \
--dns=127.0.0.1 --dns=1.1.1.1 \
--restart=unless-stopped \
--hostname pi.hole \
-e VIRTUAL_HOST="pi.hole" \
-e PROXY_LOCATION="pi.hole" \
pihole/pihole:latest
# Verify container status (Up, healthy):
docker ps -a
IMAGE CREATED STATUS PORTS
pihole/pihole:latest 25 hours ago Up 24 hours (healthy) 0.0.0.0:53->53/udp, 0.0.0.0:53->53/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp
# See container logs for troubleshooting, if required. You will also find the random Web Interface password here.
docker logs pihole
# Login to the Pi-Hole web interface and verify that it's working. You should be able to login with the web interface password found in docker logs. Alternatively change the password:
docker exec -it pihole_container_name pihole -a -p
http://<RaspPI IP ADDRESS>/admin/
# Test DNS from one of your client machines against PiHole
nslookup google.com <RaspPI IP ADDRESS>
Now that the Pi-Hole is working, we're ready to start the NxF. We will put NxF container in the same docker network as Pi-Hole. This way pi-hole can access NXFilter's dns port without them being published on the host. At the same time both will be isolated from the Docker default network. NXFilter Web interface ports shall be published to something that do not overlap with Pi-Hole's web interface (e.g. change 80 to 8080, change 443 to 8081)
At the moment of writing I could not find a well-documented and working docker image for ARM, so I made my own Dockerfile to build the image: https://github.com/maksokami/docker-nxfilter
# Build the docker image
git clone https://github.com/maksokami/docker-nxfilter.git
docker image built -t maksokami/nxfilter .
# Start NXFilter. Use a static IP in the 'dns' network subnet (here 172.18.0.3).
docker run -dt \
--name nxfilter \
--network dns \
--ip 172.18.0.3 \
-p 8080:80 \
-p 8081:443 \
-v "/home/pi/Documents/DOCKER/nxfilter-conf":/nxfilter/conf \
-v "/home/pi/Documents/DOCKER/nxfilter-db":/nxfilter/db \
-v "/home/pi/Documents/DOCKER/nxfilter-log":/nxfilter/log \
-e TZ="America/Chicago" \
--restart=unless-stopped \
maksokami/nxfilter
# Verify container status (Up, healthy):
docker ps -a
IMAGE CREATED STATUS PORTS
maksokami/nxfilter 2 days ago Up 25 hours 0.0.0.0:8080->80/tcp, 0.0.0.0:8081->443/tcp
# See container logs for troubleshooting, if required.maksokami/nxfilter 2 days ago Up 25 hours 0.0.0.0:8080->80/tcp, 0.0.0.0:8081->443/tcp
docker logs nxfilter
# Go to the NxF web interface and verify that it's working. Default credentials: admin/admin
https://<RaspPI IP>:8081/admin
# For additional troubleshooting you can publish DNS ports as well and test them separately from Pi-Hole:
# Add extra parameters to the docker run:
docker run . . . -p 8053:53/tcp -p 8053:53/udp . . .
# Test NxF DNS functionality (without Pi-Hole) from a client machine with linux or even from the PI.
dig @<RaspPI IP> -p 8053 google.com A
Now all you need to enable the daisy-chaining is to configure Pi-Hole to use NxF's container IP ( 172.18.0.3) as the only upstream DNS.
Go to Pi-Hole Settings -> DNS. Configure "Upstream DNS server" to be 172.18.0.3. Disable any other DNS, including DOH (DNS over HTTPS). You should configure DOH in NxF instead.
You will be able to observe some blocking happening at Pi-Hole container, and additional blocking and your custom policies applied at NxF container.
Pi-Hole:
NxF: