Table of Contents

PiHole

Serveur DNS et DHCP dans le réseau filaire et WiFi. Bouffe les DNS lookup des fournisseurs de publicité

Assez stable et il y a un restart chaque matin à 05:45 cronjob

upgrade

pihole -up

Config pour le réseau local

https://discourse.pi-hole.net/t/howto-using-pi-hole-as-lan-dns-server/533

Pour un docker sur unraid: /mnt/cache/cache_only/appdata/pihole/dnsmask.d/09-lan.conf

Pour le raspberry pi: /etc/dnsmask.d/09-lan.conf

addn-hosts=/etc/pihole/lan.list

Pour un docker sur unraid: /mnt/cache/cache_only/appdata/pihole/lan.list Pour le raspberry pi: /etc/pihole/lan.list

192.168.1.111 patatemagique.biz
192.168.1.111 gallery.patatemagique.biz
192.168.1.111 unifi.patatemagique.biz
192.168.1.111 blog.patatemagique.biz
192.168.1.111 nextcloud.patatemagique.biz
192.168.1.111 heimdall.patatemagique.biz
192.168.1.111 tower.patatemagique.biz
192.168.1.111 grocy.patatemagique.biz
192.168.1.111 bw.patatemagique.biz
192.168.1.111 dokuwiki.patatemagique.biz
192.168.1.111 budget.patatemagique.biz
192.168.1.111 qbt.patatemagique.biz

DNS over HTTPS (Raspberry Pi)

https://docs.pi-hole.net/guides/dns-over-https/

Installing cloudflared

wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz
tar -xvzf cloudflared-stable-linux-arm.tgz
sudo cp ./cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
cloudflared -v

Configuring cloudflared to run on startup

Create a cloudflared user to run the daemon
sudo useradd -s /usr/sbin/nologin -r -M cloudflared
Create a configuration file for cloudflared

Copying the following in to /etc/default/cloudflared. This file contains the command-line options that get passed to cloudflared on startup:

# Commandline args for cloudflared
CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query

Update the permissions for the configuration file and cloudflared binary to allow access for the cloudflared user:

sudo chown cloudflared:cloudflared /etc/default/cloudflared
sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared

Then create the systemd script by copying the following in to /etc/systemd/system/cloudflared.service. This will control the running of the service and allow it to run on startup:

[Unit]
Description=cloudflared DNS over HTTPS proxy
After=syslog.target network-online.target

[Service]
Type=simple
User=cloudflared
EnvironmentFile=/etc/default/cloudflared
ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Enable the systemd service to run on startup, then start the service and check its status:

sudo systemctl enable cloudflared
sudo systemctl start cloudflared
sudo systemctl status cloudflared
Test

Now test that it is working! Run the following dig command, a response should be returned similar to the one below:

dig @127.0.0.1 -p 5053 google.com
; <<>> DiG 9.10.3-P4-Ubuntu <<>> @127.0.0.1 -p 5053 google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65181
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1536
;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     299 IN  A   243.65.127.221

;; Query time: 3 msec
;; SERVER: 127.0.0.1#5053(127.0.0.1)
;; MSG SIZE  rcvd: 65
Configuring Pi-hole

Finally, configure Pi-hole to use the local cloudflared service as the upstream DNS server:

Custom 1 (IPv4): 127.0.0.1#5053