我接管了一个旧系统。我计划购买新硬件并很快停用这台令人兴奋的服务器。与此同时,我的托管服务提供商警告我,我正在运行一个响应所有人的 DNS 服务器,可用于 DNS 放大攻击。
我知道在 named.conf 中正确使用的选项是“allow-query-cache”,问题是此选项是在 BIND 9.4 中引入的,我正在运行 9.3.6。我有什么选择?如果我理解正确的话,“allow-query”选项将过于严格,因为我在 dns-server 上托管区域。
我真的不想花太多时间修复这个旧服务器,因为它即将被扔进垃圾场。有什么建议吗?
答案1
根据各种功能的添加时间,您可能无法使用所有选项,但一般来说:
- 如果您正在操作仅权威服务器并且不需要回答客户端的递归查询,则可以使用“recursion no;”完全关闭所有客户端的递归。
- 引入“allow-recursion”语句之后的 BIND 版本允许您指定 ACL,从而可以更细粒度地控制哪些客户端可以进行递归查询。
Zytrax 的实用在线 DNS 手册有一些您可能会觉得有用的语法示例。
很高兴您能负责任地寻找解决问题的方法。 开放式解析器很容易被利用给无辜的第三方带来麻烦。
答案2
如果您说得对,您无法使用 BIND 9.3.6 解决此问题(我相信您的说法),那么我认为您的选择是:
- 使用不同的 DNS 服务器
- 升级到较新版本的 BIND
其中,较新版本的 BIND 可能更容易,因为您已经为 BIND 9.3 设置了配置。BIND 9.8 和 9.9 可以在 FreeBSD 端口中找到,也可能在 FreeBSD 7 软件包中找到。
当然,FreeBSD 不再受支持,并且较新版本的 FreeBSD 将提供较新版本的 BIND(FreeBSD 9.1 附带 BIND 9.8.3-p4),但如果服务器即将退役,那么您可能认为不值得付出努力。