I’ve been using Cloudflare tunnels in my homelab. I’m wondering how well they resist subdomain discovery/enumeration by bots/malicious actors. I’m aware that security through obscurity isn’t a real strategy, but I am curious about this from a purely academic standpoint. Aside from brute force guessing, are there any other strategies that could be used to find the subdomains of services tunneled through cloudflare?
crt.sh ?
The Cloudflare certs CN are yourdomain.com and *.yourdomain.com, so enumeration via that means is not really going to lead anywhere.
Cloudflare is resistant to, but not totally immune from, DNS enumeration. But, frankly, the attack profile you’re concerned about isn’t likely to have the resources to do proper enumeration: automated bots are going to guess a static list of hosts, not spend time trying to scrape data out of DNS.
TLDR: don’t use common service names, don’t use common activity (don’t use jellyfin. or movies. or media. or tv. and so forth) and make sure your host responds with something aggressively fuck-off for non-matched requests. For nginx, the default_server site configuration I’m using sends what’s likely real humans to a rickroll, and everybot else gets a 444 which is nginx for go fuck yourself.
I use wildcard certs. I don’t know if this completely fixes the issue, though.