使用 PowerDNS 轻松配置域名服务器

使用 PDNS 为您的项目提供稳定可靠的域名系统 (DNS) 服务器。
92 位读者喜欢这篇文章。
Computer laptop in space

Opensource.com

几个月前,我们接到一个需求,为一个新项目提供一个稳定可靠的域名系统 (DNS) 服务器。该项目涉及使用容器进行自动部署,每个新环境都会生成一个唯一的随机 URL。在对可能的解决方案进行了大量研究之后,我们决定尝试 PowerDNS (PDNS)。

一开始,我们发现 PowerDNS 在所有主要的 Linux 发行版中都受支持,在 GPL 许可下可用,并保持其存储库更新。我们还在官方网站上找到了整洁且组织良好的 文档,以及来自真正喜欢并使用该产品的人的大量操作指南。在阅读了几页并学习了一些基本命令后,PDNS 已安装、启动并运行,我们的旅程开始了。

数据库驱动

PowerDNS 将其记录保存在 SQL 数据库中。这对我们来说是新的,不必使用平面文件来保存记录是一个很好的改变。我们选择了 MariaDB 作为我们的强大工具,并且由于有大量关于安装域名服务器的正确设置的预先信息,我们可以完美地设置和强化我们的数据库。

轻松配置

第二个吸引我们的是 PDNS 在其配置文件中具有的所有功能。此文件 pdns.conf 具有许多选项,您只需添加或删除 # 符号即可启用或禁用这些选项。这真是太棒了,因为它让我们有机会将这项新服务集成到我们当前的 инфраструктуру 中,只需我们想要的值,不多不少,只需我们需要的特性。一个简单的例子

谁可以访问您的 Web 服务器?

webserver-allow-from=172.10.0.1,172.10.1.2

我可以根据域名转发请求吗? 当然可以!

forward-zones=mylocal.io=127.0.0.1:5300
forward-zones+=example.com=172.10.0.5:53
forward-zones+=lucky.tech=172.10.1.5:53

包含 API

我们可以使用此配置文件激活,这时我们开始通过解决开发团队的第一个请求(API 服务)来了解 PDNS 的“力量”。此功能使我们能够发送请求,以简单干净的方式在我们的 DNS 服务器中创建、修改或删除记录。

此 API 具有一些基本的安全参数,因此只需几个步骤,您就可以基于 IP 地址和预共享密钥的组合作为身份验证方式,来控制谁有权与域名服务器进行交互。这是此配置的外观

api=yes
api-key=lkjdsfpoiernf
webserver-allow-from=172.10.7.13,172.10.7.5

日志记录

在日志记录方面,PDNS 做得非常出色。 您可以监视您的服务器,并通过使用日志文件和一个简单的内置 Web 服务器来查看机器的运行状况。 使用浏览器,您可以查看来自机器的不同类型的统计信息,例如 CPU 使用率和收到的 DNS 查询。 这非常有价值 - 例如,我们能够检测到一些“不太健康”的 PC,它们正在向我们的服务器发送 DNS 请求,以查找与恶意流量相关的站点。 在深入研究日志后,我们可以看到流量的来源,并对这些 PC 进行清理操作。

其他功能

这只是您可以使用 PowerDNS 完成的所有事情的惊鸿一瞥。 它是一个完整的域名服务器,具有许多特性和功能,使其值得一试。

目前,我们没有实施 DNSSEC,但看起来只需单击一下即可将其投入生产。 此外,在将递归器服务与域名服务器分离方面,PowerDNS 具有很好的方法。 我读到它也支持 DNS RPZ(响应策略区域),并且还有一些非常漂亮且设计良好的前端可用,使您可以使用简单的 Web 浏览器管理服务器,如下面的图片所示。

PowerDNS frontend

(PowerDNS 文档,MIT 许可证)

信不信由你,只需花费几个小时“玩”PDNS,您就可以极大地提高您对 DNS 和 IT 运营的了解。

接下来要阅读的内容
标签
User profile image.
来自多米尼加共和国的基督徒、丈夫和父亲。 Unix / Linux 系统管理员,从古至今,主要是出于测试目的而进行发行版切换。 对蜜罐和使用开源工具进行防御等主题的安全研究充满热情。

1 条评论

很棒的文章!
感谢分享。

Creative Commons License 本作品采用 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.