使用PowerDNS輕松配置DNS名稱(chēng)服務(wù)器
使用 PDNS 為你的項(xiàng)目提供穩(wěn)定可靠的域名系統(tǒng)(DNS)服務(wù)器。
幾個(gè)月前,我們接到了一個(gè)要求,為一個(gè)新項(xiàng)目提供一個(gè)穩(wěn)定可靠的域名系統(tǒng)(DNS)服務(wù)器。該項(xiàng)目使用容器進(jìn)行自動(dòng)部署,每個(gè)新環(huán)境都會(huì)生成唯一的隨機(jī) URL。在對(duì)可能的方案進(jìn)行了大量研究之后,我們決定嘗試一下 PowerDNS(PDNS)。
一開(kāi)始,我們發(fā)現(xiàn) PowerDNS 在所有主流 Linux 發(fā)行版中都得到了支持,它采用 GPL 許可,且倉(cāng)庫(kù)保持更新。我們還在官方網(wǎng)站上發(fā)現(xiàn)了整潔、組織良好的文檔,以及大量來(lái)自真正喜歡和使用該產(chǎn)品的人在網(wǎng)絡(luò)上的使用方法。看了一些并學(xué)習(xí)了一些基本命令之后,安裝了 PDNS,啟動(dòng)并運(yùn)行,我們的旅程開(kāi)始了。
數(shù)據(jù)庫(kù)驅(qū)動(dòng)
PowerDNS 將記錄保存在 SQL 數(shù)據(jù)庫(kù)中。這對(duì)我們來(lái)說(shuō)是新變化,不必使用文本文件來(lái)保存記錄是一個(gè)不錯(cuò)的更改。我們選擇 MariaDB 作為首選的強(qiáng)大工具,由于有大量的正確地設(shè)置來(lái)安裝名稱(chēng)服務(wù)器的信息,我們可以完美地設(shè)置和加固我們的數(shù)據(jù)庫(kù)。
簡(jiǎn)單配置
其次使我們感興趣的是 PDNS 的所有功能都在配置文件中。pdns.conf
有許多選項(xiàng),你可以通過(guò)添加或刪除 #
號(hào)來(lái)啟用或禁用這些選項(xiàng)。這真是太神奇了,因?yàn)樗刮覀冇袡C(jī)會(huì)將這項(xiàng)新的服務(wù)集成到我們現(xiàn)有的基礎(chǔ)架構(gòu)中,并且只有我們想要的功能,不多也不少。一個(gè)簡(jiǎn)單的例子:
誰(shuí)可以訪問(wèn)你的網(wǎng)絡(luò)服務(wù)器?
webserver-allow-from=172.10.0.1,172.10.1.2
我可以轉(zhuǎn)發(fā)基于域的請(qǐng)求嗎?當(dāng)然!
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
我們可以使用配置文件進(jìn)行激活 API 服務(wù),解決了我們開(kāi)發(fā)團(tuán)隊(duì)的第一個(gè)需求,讓我們見(jiàn)識(shí)到了 PDNS 的強(qiáng)大。這個(gè)功能讓我們通過(guò)發(fā)送請(qǐng)求,簡(jiǎn)單、干凈地創(chuàng)建、修改或刪除 DNS 服務(wù)器中的記錄。
這個(gè) API 有一些基本的安全性參數(shù),因此,只需幾步,你就可以基于 IP 地址和預(yù)共享密鑰驗(yàn)證的組合來(lái)控制誰(shuí)有權(quán)與名稱(chēng)服務(wù)器進(jìn)行交互。這是配置文件的樣子:
api=yes
api-key=lkjdsfpoiernf
webserver-allow-from=172.10.7.13,172.10.7.5
日志
在日志方面,PDNS 做得非常出色。你可以使用日志文件和一個(gè)簡(jiǎn)單的內(nèi)置 Web 服務(wù)器來(lái)監(jiān)控服務(wù)器并查看計(jì)算機(jī)的運(yùn)行狀況。你可以使用瀏覽器查看服務(wù)器不同類(lèi)型的統(tǒng)計(jì)信息,例如 CPU 使用率和收到的 DNS 查詢。這非常有價(jià)值。例如,我們能夠檢測(cè)到一些“不太健康”的 PC,它們正在向我們的服務(wù)器發(fā)送與惡意流量相關(guān)的站點(diǎn)的 DNS 請(qǐng)求。深入查看日志后,我們可以看到流量來(lái)自何處,并對(duì)這些 PC 進(jìn)行清理操作。
其他功能
這只是你使用 PowerDNS 可以做的所有事情的一點(diǎn)點(diǎn)。它還有更多的功能。它是一個(gè)擁有很多功能和特性的完整名稱(chēng)服務(wù)器,因此值得一試。
目前,我們尚未部署 DNSSEC,但似乎只需點(diǎn)擊一下即可將其快速投入生產(chǎn)環(huán)境。另外,在將遞歸服務(wù)與名稱(chēng)服務(wù)器分離時(shí),PowerDNS 有個(gè)不錯(cuò)的方法。我了解到它還支持 DNS RPZ(響應(yīng)策略區(qū)域),并且還提供了非常不錯(cuò)且設(shè)計(jì)良好的前端,可讓你使用 Web 瀏覽器來(lái)管理服務(wù)器,如下圖。
PowerDNS frontend
信不信由你,你只需花費(fèi)幾個(gè)小時(shí)了解 PDNS,就可以大大提高你對(duì) DNS 和 IT 操作的了解。