Hi,

I've searched around a bit, and noticed some others have similar problems as this but nobody has come up with a decent solution, or at least, I've not found one.

I have an Authoritative BIND server. It is configured to only allow recursive queries from localhost, with recursion disabled for any remote clients.

If you attempt to perform a recursive query against this server, it will respond with a "query refused" packet, as this is what BIND does if you try to recursively query a server configured to disallow recursive queries.

Kiddies, however, are exploiting this behaviour to provide a level of indirection in their DDoS efforts.

Jan 19 10:12:34 mars named[7683]: client 69.50.142.110#40346: query (cache) './NS/IN' denied Jan 19 10:12:35 mars named[7683]: client 76.9.16.171#47713: query (cache) './NS/IN' denied Jan 19 10:12:37 mars named[7683]: client 76.9.16.171#53205: query (cache) './NS/IN' denied Jan 19 10:12:38 mars named[7683]: client 76.9.16.171#2340: query (cache) './NS/IN' denied Jan 19 10:12:39 mars named[7683]: client 76.9.16.171#53417: query (cache) './NS/IN' denied Jan 19 10:12:41 mars named[7683]: client 76.9.16.171#38593: query (cache) './NS/IN' denied Jan 19 10:12:43 mars named[7683]: client 69.50.142.110#61075: query (cache) './NS/IN' denied Jan 19 10:12:43 mars named[7683]: client 76.9.16.171#54721: query (cache) './NS/IN' denied Jan 19 10:12:45 mars named[7683]: client 76.9.16.171#12764: query (cache) './NS/IN' denied Jan 19 10:12:47 mars named[7683]: client 76.9.16.171#59043: query (cache) './NS/IN' denied Jan 19 10:12:47 mars named[7683]: client 76.9.16.171#55282: query (cache) './NS/IN' denied Jan 19 10:12:49 mars named[7683]: client 76.9.16.171#54628: query (cache) './NS/IN' denied Jan 19 10:12:51 mars named[7683]: client 76.9.16.171#34097: query (cache) './NS/IN' denied Jan 19 10:12:52 mars named[7683]: client 69.50.142.110#63662: query (cache) './NS/IN' denied

Each of these requests send back a packet to the IP the spoofed query coes from. I've contacted network operators (not necessarily those ones listed for these IPs) and they've confirmed, separately, that they've been under attack for several weeks by these DNS reply packets.

Obviously the amount of load here is negligible to me, and if I didn't care about anyone else, then I could just suppress the log messages and move on with my life. But, I don't think thats the appropriate response.

Even though my nameserver seems to be correctly configured, there seems to be no way for me to ignore these spurious requests or rate limit them, so therefore I'm aiding the attackers, however obliquely, in their efforts.

I've considered using views blackhole recursive requests, but blackholes can only be specified in the global configuration, not in views. I've considered using iptables/netfilter and the u32 extension to match the specific DNS flags that denote a recursive query, and then apply a rate limit; but I really don't know the best way forward.

I currently manage these attacks by adding a blackhole entry for each IP that the kiddies try to attack, but this is a stop-gap, and I'd prefer something that can work in an automatic way to deny kiddies the use of my authoritative nameserver as a reflector.

The ideal solution for me, would be a bind configuration option that could rate limit responses based on type; so you could specify that a "REFUSED" reply will only be sent to a given host once per hour, or something like that.

Any ideas? Anyone facing this same problem found a solution? I'd be glad to hear it :)

--
Nathan Ollerenshaw :: http://www.stupendous.net/
"Anyone who has never made a mistake has never
 tried anything new." - Albert Einstein



_______________________________________________
bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to