Michael De Roover <i...@nixmagic.com> wrote: > > Said friend said to me that he tested my authoritative name servers and > found them to be not vulnerable. [snip] They do not respond to recursive > queries. It appears that the test of whether a server is "vulnerable" or > not has to do with this. The command used to test this was apparently > "dig +short test.openresolver.com TXT @your.name.server".
OK, that iss all right and correct, but there is (of course) a bit more to this issue. As you already know, the most basic thing to avoid is not being an open recursive server. Out of the box, BIND has a recursion ACL that only allows queries from directly connected networks, so you won't have this problem without making an explicit configuration mistake. Normally for an authoritative-only server, you should set `recursion no` to lock it down more tightly. An auth-only server can also be used for amplification attacks that use its authoritative zones - these attacks don't have to use recursion. There are a few ways to mitigate auth-only amplification attacks. Response rate limiting is very effective. Start off by putting the following in your options{} section, and look in the BIND ARM for other directives you can put in the rate-limit{} section. rate-limit { responses-per-second 10; }; Especially if you have DNSSEC signed zones then there are a few extra things you can do to reduce the size of your response packets, which reduces the attacker's amplification factor, and makes you less likely to be abused. Set a maximum UDP packet size, to suppress fragmented packets. The DNS flag day 2020 campaign will make this a standard setting. For a long time I have used: max-udp-size 1420; https://dnsflagday.net/2020/ A downside of small UDP responses is more truncated packets and more queries over TCP, but there are still more ways to reduce response size which also reduce truncation. Reduce the size of responses to ANY queries, which are a favourite tool of amplification attacks. There's basically no downside to this one, in my opinion, but I'm biased because I implemented it. minimal-any yes; You can also reduce the size of other answers. In theory this option might force resolvers to make more queries to get records that by default would appear in the additional section, but I think in practice resolvers make these queries anyway because of RFC 2181 trustworthiness logic, and because applications (such as SMTP servers) find it easier to query directly than use additional records. So on my auth servers I set: minimal-responses yes; If you are signing zones with DNSSEC, consider doing an algorithm rollover to ECDSA p256 (algorithm 13) because this has much smaller signatures than RSA. Algorithm rollovers are not particularly easy, because you need a good grasp of the DNSSEC key timing parameters and how and when to swap over your DS records. (There used to be even more gotchas, so it is getting easier, honest!) Finally, there's the built-in _bind CHAOS view. This has very strict response rate limiting by default, but if you want to be super careful you can set `version none` and `hostname none` to lock it down further. (I don't bother with this.) Here endeth the brain dump. Tony. -- f.anthony.n.finch <d...@dotat.at> http://dotat.at/ Mull of Galloway to Mull of Kintyre including the Firth of Clyde and North Channel: Variable, 2 to 4. Moderate at first near the Mull of Kintyre, otherwise smooth or slight. Showers. Mainly good. _______________________________________________ Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from this list ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information. bind-users mailing list bind-users@lists.isc.org https://lists.isc.org/mailman/listinfo/bind-users