In my continuing efforts to troll the internets, I have now set up a DNS server and some additioinal web "sites". ;)
First up, I have set up a DNS server that is "publicly available" to the internets. Don't bother setting it up for your own uses though, I am using to troll any would-be "hackers" trying to do..., well, anything useful, really.
This DNS server will respond to *ALL* requests with the same public IP this site is listed on. So useless for any "legitimate" purposes, but definitely trolling anyone trying to.
The "meat" of the work is provided by fakedns, a python3 script that responds to any DNS request with a defined IP. Using this as a base, I wrote an init.d script as a "wrapper" to make the fakedns python script work like a daemon. It's still in early stages, and while the basic functionality is certainly there, I want to (eventually hopefully maybe) include some better logging and a better status check, but for now, it's there and running. Once it's at a "publishable" state, I will certainly be putting a link here.
I also set up a couple new WAF rules to accept *ANY* and *ALL* HTTP HTML requests sent to this site's IP Address. Again, useless for "legit" purposes, but yet a little more trolling.
The real challenge here was to get a complete list of *ALL* the TLDs that exist, because my firewall wouldn't allow "*" for the "hosted domain". IANA has a complete list available, but I need to preface each one with a "*." to be able to mass add them all to my firewall WAF rules; I was *NOT* going to be adding them all, one by one. Within a few moments, I was able to come up with the following set of commands to grab the list, and format it according to my needs:
for TLD in $(curl https://data.iana.org/TLD/tlds-alpha-by-domain.txt|grep -v '#'); do echo "*."$TLD >> TLDs.txt; done
Open the TLDs.txt file, copy/paste the list, DONE!