RandomDNS simplify and improve the security of DNSCrypt proxy by randomizing the choice of the server.
Features
+ Randomize the provider at runtime
+ Use (-E)phemeral keys option
+ Securely run DNSCrypt proxy by verifying its hash and by copying it in /tmp dir with restricted permissions
+ Watch the proxy process and relaunch it if it dies
+ Can filter the server list by protocols, country and much more
+ Rotate the server with a defined time (default: 10 minutes)
ToDo
Add health checks support (if the server does not answer anymore, pick another one)
Roadmap
+ Have in-memory cache support
+ Do a reverse proxy so it can:
— Spawn multiples DNSCrypt processes and do DNS requests load balancing
— Scramble monitoring of DNS traffic by sending fake DNS requests randomly
— Do Consistent Hashing while the program is running (hash DNS requests, save it in memory and when there is a match send it to the same upstream provider) **
+ Add support for DNSSEC (?) **
Usage:
brew update && brew upgrade brew install dnscrypt-proxy node npm git clone https://github.com/pwnsdx/RandomDNS.git && cd RandomDNS && npm update node ./run.js Set your DNS settings to 127.0.0.1
Source: https://github.com/pwnsdx