I was inspired to use Cloudflare Free plan due to the positive posts of @SeriousHoax @rashmi and @Marko :). I am using the free plan (no credit card info needed).
We had an discussion about the user friendliness of ZT, which I am not going to repeat. The UI has so many options, that you need to find your way for just using the Zero Trust DNS firewall policies. When you found the setting in the user interface it is really easy to create policies. I created policies based on security categories. content categories, domains and resolved IP continent and resolved IP location (click on the picture below) which you can define using AND plus OR logic with drop down menu's to select categories and (list) values.
What I really like about Cloudflare that you can use your own block screen and add a policy specific sentence, so you exactly which policy caused the block (of course you can also check the logs in the ZT console, but I like this feature, see picture for explanation how easy it is to add a policy specific sentence to the block page)
I went all out and specified 10 policies. As a precaution I had set Allow exceptions for critical services (work and home banking related). The order determines the precedence, so policy number 8 takes precedence over policy number 9 and 10. This is handy, because in policy 10 I block resolved IP country geo locations except Europe and 5 Eyes countries, but in 8 I have blocked Belarus and Russian Federation (both on TLD and resolved IP address geo location).
After playing around for 3,5 months I am only seeing blocks from policy number 4 (known bad) and 7 (newly seen) and occasionally from 5 and 8 (only when playing with links from OpenPhish and URL hause).
The benefit of Cloudflare is IMO the option to block on resolved IP address GEO continent and country. This allows to block additional content categories (like file and photo sharing content categories) which I have not yet encountered a block or false positive.
Picture of policy using resolved IP location continent and country, allowing Europe (not selected in continent list) and 5 Eyes Countries (added AND not in Country Codes of US, CA, UK, AU, NZ)
Picture of policy using regexpattern (blocking CRINK countries and TLD's with punycode in it (and also CRINK country code TLD's)
I know rule 8 (partly), 9 and 10 are only effective when the bad-guys don't use a Content Delivery Network with server hubs in the whitelisted resolved IP geo locations.
According to latest data nearly 80% of the "advanced" attacks from well known adversaries use trusted services (bypassing rules 9 and 10). Reversely 80% of the unsophisticated attacks are delivered locally (that is why rule 8 often trigger block screens when playing with URLhaus links).
I used ChatGPT and Leo AI to help me construct the policies and check whether I did not make logic makes mistakes. I also asked AI whether rules 8, 9 and 10 made any sense and AI confirmed that those rules did not protect in absolute manner, but shaved of attack surface which did not hurt in any way (because it is processed on DNS servers and does not cause FP's).
It is also possible to add adblock filters using @SeriousHoax Github automation.
We had an discussion about the user friendliness of ZT, which I am not going to repeat. The UI has so many options, that you need to find your way for just using the Zero Trust DNS firewall policies. When you found the setting in the user interface it is really easy to create policies. I created policies based on security categories. content categories, domains and resolved IP continent and resolved IP location (click on the picture below) which you can define using AND plus OR logic with drop down menu's to select categories and (list) values.
What I really like about Cloudflare that you can use your own block screen and add a policy specific sentence, so you exactly which policy caused the block (of course you can also check the logs in the ZT console, but I like this feature, see picture for explanation how easy it is to add a policy specific sentence to the block page)
I went all out and specified 10 policies. As a precaution I had set Allow exceptions for critical services (work and home banking related). The order determines the precedence, so policy number 8 takes precedence over policy number 9 and 10. This is handy, because in policy 10 I block resolved IP country geo locations except Europe and 5 Eyes countries, but in 8 I have blocked Belarus and Russian Federation (both on TLD and resolved IP address geo location).
After playing around for 3,5 months I am only seeing blocks from policy number 4 (known bad) and 7 (newly seen) and occasionally from 5 and 8 (only when playing with links from OpenPhish and URL hause).
The benefit of Cloudflare is IMO the option to block on resolved IP address GEO continent and country. This allows to block additional content categories (like file and photo sharing content categories) which I have not yet encountered a block or false positive.
Picture of policy using resolved IP location continent and country, allowing Europe (not selected in continent list) and 5 Eyes Countries (added AND not in Country Codes of US, CA, UK, AU, NZ)
Picture of policy using regexpattern (blocking CRINK countries and TLD's with punycode in it (and also CRINK country code TLD's)
I know rule 8 (partly), 9 and 10 are only effective when the bad-guys don't use a Content Delivery Network with server hubs in the whitelisted resolved IP geo locations.
According to latest data nearly 80% of the "advanced" attacks from well known adversaries use trusted services (bypassing rules 9 and 10). Reversely 80% of the unsophisticated attacks are delivered locally (that is why rule 8 often trigger block screens when playing with URLhaus links).
I used ChatGPT and Leo AI to help me construct the policies and check whether I did not make logic makes mistakes. I also asked AI whether rules 8, 9 and 10 made any sense and AI confirmed that those rules did not protect in absolute manner, but shaved of attack surface which did not hurt in any way (because it is processed on DNS servers and does not cause FP's).
It is also possible to add adblock filters using @SeriousHoax Github automation.
Last edited:

