Hola,
Con respecto a buenas prácticas, manual corta palos, etc, hay mucha documentación, con diferentes enfoques, por ejemplo alguna documentación al respecto:
http://www.bcp38.info/index.php/Main_Page
https://kb.isc.org/article/AA-00874/0/Best-Practices-for-those-running-Recur...
Lo que puedo recomendar/comentar con respecto a como prepararse para un escenario de DDoS, son desde el punto de vista de la infraestructura:
país para casi todos es menor que la capacidad de las máquinas para contestar.
poder redistribuir la carga. Como alternativa, si se dispone de una intranet grande, se puede hacer algo similar con ospf.
puede ocurrir que ante un ataque, un firewall corte o limite el tráfico que la máquina DNS aún era capaz de procesar. Hemos observado casos en que es mas caro analizar y bloquear tráfico DNS a que la máquina los procese directamente.
Es deseable, que los servidores de DNS, estén en un segmento de red distinto del resto de los servicios, y para grandes organizaciones tener además además los servidores DNS en redes distintas entre sí. De ésta forma se tiene mas flexibilidad para realizar cambios de ruteo sin afectar a todos los clientes ni todos los servicios.
Una medida mas bien administrativa, es tener una excelente comunicación con mis proveedores de red, de manera de poder reaccionar rápidamente ante un incidente, ya sea cambiando reglas de ruteo, anunciando prefijos mas pequeños, etc.
Poder llegar a una copia de un servidor raíz cercana, de manera que un corte internacional no me deje "sin dns".
En específico de BIND, las recomendaciones son: - mantener separados los servicios de recursión y autoritativo siempre, en servidores separados. - Que el servidor recursivo no sea público, sino que sólo para mis clientes. - Parches de seguridad al día. - Utilizar y tener bien ajustados los parámetros de las las herramientas de Rate Limit, que en las últimas versiones de Bind viene incorporado. - Si se utilizan muchos logs (como consultas por ejemplo) en caso de un alza significativa de tráfico desactivarlo, ya que si bien son muy útiles, merman la capacidad de la máquina de responder con rapidez.
Además, también recomendamos mantener listo para operar, algún software alternativo de DNS, como por ejemplo NSD/Unbound, Knot para entrar en operación en caso de alguna vulnerabilidad o problema de BIND que no permita la correcta operación.
Otra cosa, es el monitoreo constante, para DNS la utilización de DSC con gráficos ayuda a determinar el tráifco normal, y poder darse cuenta cuando deja de serlo, el tipo de consultas e intentar realizar las medidas antes.
En resumen, es una mezcla de sobre-provisionamiento, con herramientas y protocolos de mitigación.
Saludos, Marco.