• Zarobi@aussie.zone
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 days ago

      The router where I live is configured to use Google DNS. I’d change it to use OpenDNS or something if I could, but since it’s not my router, I cannot

      • diaphragmwp@discuss.tchncs.de
        link
        fedilink
        English
        arrow-up
        2
        ·
        8 days ago

        Oh. You probably meant OpenNIC.

        Anyways, did you hear that you can do stuff when you own your computer? Not the router. Example with NetworkManager (I also have an OpenBSD box somewhere and don’t feel like turning it on rn but it’s in /etc/ somewhere named after the network interface): $ cat /etc/NetworkManager/NetworkManager.conf

        # Configuration file for NetworkManager.
        # See "man 5 NetworkManager.conf" for details.
        [main]
        hostname-mode=none
        dns=0
        rc-manager=unmanaged
        
        [device]
        wifi.scan-rand-mac-address=yes
        
        [connection]
        ethernet.cloned-mac-address=random
        wifi.cloned-mac-address=random
        connection.mdns=0
        connection.llmnr=0
        
        [ipv6]
        addr-gen-mode=1
        ip6-privacy=2
        

        Make sure nothing in /etc/NetworkManager/conf.d is overwriting this of course. Note the dns=0 and rc-manager=unmanaged. I’ve only recently discovered this. The DHCP server may insist on making NetworkManager use some random DNS server and it will comply. However, this tells nm to NOT change /etc/resolv.conf, the actual file stdlibs will read for DNS info. nm will still report the server(s) it accepted and live in it’s own, disconnected reality, though.

        Now, you should make sure /etc/resolv.conf isn’t symlinked anywhere (ls -l for it shouldn’t show any arrows), then restart NetworkManager. Twice, for some reason, for it to take effect, don’t know exactly why. NOW you can just write whatever the fuck you want into it:

        nameserver 2001:470:1f15:b80::53
        nameserver 91.190.185.43
        

        This won’t do much if some middleman is overthrowing the unencrypted requests of course. Like with a shitty router, shitty ISP or just the fact you are in China or Russia or Belarus and so on and so forth. Some overcome this by telling Tor to listen on port 53. Some overcome this by installing dnscrypt-proxy or similar (although could be blocked altogether). Some overcome this just by using a local resolver (hopefully at least dnssec capable). Yes, you can resolve DNS yourself, kinda slow but still. Crazy info, I know.

        Meanwhile, major browsers will happily ignore that completely. In Firefox, go to Privacy and Security > DNS over HTTPS, then select “own settings”, “provider” - “custom”, then put in something like https://dns1.slowb.ro/dns-query. Now, what this does is literally connect to that server via HTTPS and do requests on it. In JSON. This sounds extremely cursed and wrong, I know, but it works. How does it resolve “dns1.slowb.ro” in the first place - honestly, no idea. They probably made a tiny self resolver just for this (bruh), or hardcoded 1.1.1.1 or something. It’s definitely not OS settings: can’t use opennic.glue addresses there.