Comment by jeroenhd

9 days ago

My DoH server ended up on a random list on Github at some point. I noticed when I saw what seemed like a small country suddenly use my DoH server.

Blacklisting the entire country worked, after that I moved my actual DoH resolver to a subpath. Because it's HTTPS, you can just run your DoH server at https://my-doh.example.com/066c591f-c976-4095-85fe-a49e62577.... Not as easy to remember, but you can send yourself and anyone you want to share the server with a link.

Other things to consider when setting up your own DoH server: setting up HTTP3 with HTTPS records and the like, 0-rtt TLS for the query server, ODoH support (upstream or as an endpoint directly), and of course DNSSEC validation (because you can't trust your clients to the validation themselves).

For DoT this is a lot harder. A random IPv6 address should work, but then you're stuck having to fall back to something else on networks with only legacy IP support.

> I saw what seemed like a small country suddenly use my DoH server.

Wouldn't that mean that your requests are more hidden, instead of sticking out and being more susceptible to a side channel attack?

  • From a privacy viewpoint: yes

    From a practical viewpoint: the desktop tower in the corner of my room that acted as my NAS+router+home server+home assistant was running quite hot and the poor undervolted i3 CPU wasn't able to keep up.

  • Yes though I wouldn't want some of the possibly illegal stuff people search for flowing through my infra even if just name resolution

>ODoH support (upstream or as an endpoint directly)

Is there client support without installing third party apps? Such apps usually use a VPN connection to operate, which means you can't use another VPN at the same time as oDOH, which is a major disadvantage.

  • dnscrypt supports ODoH so any device capable of running that will do. Other than that, you'll need individual app support (like browsers for instance).

    If you want support on mobile devices without VPN-like apps, I think the best way to set it up would be to run something like a PiHole or equivalent, configure dnscrypt as your upstream, and then set up DoH/DoT from your phone to your DNS server. Mobile phones can do DoT/DoH natively already, but I don't think any commercial mobile OS has extended support to ODoH.

    In theory you may be able to run dnscrypt in the background and point your DNS resolver to that, but I doubt it'll work reliably.

  • Firefox has it builtin, some sub resolvers too, Android has it under Private internet since android 9, that tries DoT and DoH.

You can actually just move it to a subdomain and wildcard TLS cert as well.

  • Oh that's clever. Was thinking about putting a slug into the URL as "secret" but subdomain is probably easier to square

    • >but subdomain is probably easier to square

      Why would it be? Is there some client/OS that doesn't support custom paths for DoH?

      2 replies →