Hi Jon,
No, I use the FW rules inside Meraki AP - all my clients are connected to Meraki AP and FW rules for controlling DNS traffic are in Meraki. More, Meraki AP are using NAT - all wifi clients are in a /8 IP range and are unaware of the ipfire - all is managed by Meraki - DHCP, DNS, all being provided by Meraki to the wifi clients.
I think I found a potential issue: the IPFIRE DHCP (!) gives to Meraki AP two DNS servers:
- as Primary is provides the IPFIRE IP (i.e. unbound)
- as Secondary an old DNS IP used by unbound as Upstream DNS (defined in the page https://a.b.c.d:444/cgi-bin/dns.cgi
So Meraki AP receives 2 DNS servers and (I assume!) it might use both of them to solve the DNS requests from Wifi clients.
Digram looks like this
Wifi Client in Isolation mode → Meraki AP in NAT mode and with DNS Proxy receiving its LAn setting from IPfire DHCP → IPFIRE with DHCP sending to Meraki 2 DNS servers: first being IPFIRE GREEN IP and secondary being an old (no longer used!) upstream DNS server used by unbound. IPFIRE unbound service uses a different upstream DNS server from the one DHCP sends to Meraki.
How Unbound is configured
And Meraki FW allowed traffic to several DNS servers including the ones you see above, but, again, the wifi client do not receive any of these from Meraki - Meraki gives them an internal IP where its DNS proxy listen
As soon as I removed the Meraki Allow FW rule to the Secondary DNS server provided by IPFIRE DHCP to Meraki AP the DoH test was successful (w/o any IPFIRE FW rule to block DNS or DoT)
DNS over HTTPS
This is weird because Meraki AP still has knowledge about second DNS server (provided by IPFIRE DHCP!) but the wifi clients no longer can access it directly although those clients are unaware of that server - those clients receive a Meraki IP address where Meraki DNS proxy listen.
And, now the RPZ logs show much more RPZ block lines:
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] doh.securedns.eu. rpz-nxdomain Meraki.LAN.IP@58604 doh.securedns.eu. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.powerdns.org``. rpz-nxdomain Meraki.LAN.IP@58817 ``doh.powerdns.org``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.powerdns.org``. rpz-nxdomain Meraki.LAN.IP@34775 ``doh.powerdns.org``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.blahdns.com``. rpz-nxdomain Meraki.LAN.IP@35244 ``doh.blahdns.com``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.blahdns.com``. rpz-nxdomain Meraki.LAN.IP@33639 ``doh.blahdns.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``cloudflare-dns.com``. rpz-nxdomain Meraki.LAN.IP@60338 ``cloudflare-dns.com``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``cloudflare-dns.com``. rpz-nxdomain Meraki.LAN.IP@36869 ``cloudflare-dns.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``dns.google.com``. rpz-nxdomain Meraki.LAN.IP@50883 ``dns.google.com``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``dns.google.com``. rpz-nxdomain Meraki.LAN.IP@57876 ``dns.google.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.powerdns.org``. rpz-nxdomain Meraki.LAN.IP@47097 ``doh.powerdns.org``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.blahdns.com``. rpz-nxdomain Meraki.LAN.IP@38068 ``doh.blahdns.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``cloudflare-dns.com``. rpz-nxdomain Meraki.LAN.IP@48399 ``cloudflare-dns.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``dns.google.com``. rpz-nxdomain Meraki.LAN.IP@55758 ``dns.google.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] doh.securedns.eu. rpz-nxdomain Meraki.LAN.IP@51173 doh.securedns.eu. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``dns9.quad9.net``. rpz-nxdomain Meraki.LAN.IP@36165 ``dns9.quad9.net``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``dns9.quad9.net``. rpz-nxdomain Meraki.LAN.IP@41770 ``dns9.quad9.net``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``dns9.quad9.net``. rpz-nxdomain Meraki.LAN.IP@60532 ``dns9.quad9.net``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.blahdns.com``. rpz-nxdomain Meraki.LAN.IP@59449 ``doh.blahdns.com``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.blahdns.com``. rpz-nxdomain Meraki.LAN.IP@39767 ``doh.blahdns.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.powerdns.org``. rpz-nxdomain Meraki.LAN.IP@34307 ``doh.powerdns.org``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``doh.powerdns.org``. rpz-nxdomain Meraki.LAN.IP@34259 ``doh.powerdns.org``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``cloudflare-dns.com``. rpz-nxdomain Meraki.LAN.IP@36576 ``cloudflare-dns.com``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``cloudflare-dns.com``. rpz-nxdomain Meraki.LAN.IP@53682 ``cloudflare-dns.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``dns.google.com``. rpz-nxdomain Meraki.LAN.IP@51941 ``dns.google.com``. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] ``dns.google.com``. rpz-nxdomain Meraki.LAN.IP@39313 ``dns.google.com``. A IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] doh.securedns.eu. rpz-nxdomain Meraki.LAN.IP@35359 doh.securedns.eu. HTTPS IN
Nov 15 20:53:51 black-x86-64 unbound: [20217:0] info: rpz: applied [BlockDOH_jpgpi250] doh.securedns.eu. rpz-nxdomain Meraki.LAN.IP@57480 doh.securedns.eu. A IN
Late edit - original Meraki FW rules - the ones marked with a red X were removed and that solved the DoH test!