Bind

如何防止綁定動態更新更改原始區域文件?

  • May 24, 2021

我正在使用 certbot DNS 外掛來頒發 Let’s Encrypt 證書。Certbot 使用動態 DNS 更新來添加TXT記錄以進行驗證。Bind 為區域創建一個.jnl文件。該TXT記錄僅存在 30 秒,然後被 certbot 刪除。該過程完成後,一切都應該恢復正常。

副作用是 bind 過度寫入我的原始區域文件(由 擁有root)並將其保存為歸named. 加上區域文件的內容以我不喜歡的方式完全重新格式化。

有沒有辦法阻止綁定嘗試更改原始區域文件?有什麼方法可以告訴綁定這個動態更新是臨時的,只保存在記憶體中還是什麼?

還有一個問題,但不是那麼重要。如果它無法在.jnl沒有所有權的情況下保存文件,它如何綁定給出權限被拒絕錯誤named,但它可以輕鬆覆蓋由 擁有的區域文件root

一旦您使用動態 DNS,您不應該期望您的 zonefile 採用任何特定格式並讓 bind 管理它。這就是為什麼你有rndc命令freezethaw.

在您的情況下,您應該拆分關注點。_acme-challenge在您的區域中創建,以CNAME將其指向另一個區域。然後這個區域可以沒有動態更新,你可以按照你喜歡的方式擁有你的區域文件。

在另一個區域中,您啟用動態更新並確保TXT在那裡添加記錄。

但它可以輕鬆覆蓋root擁有的區域文件?

編輯(包括刪除)文件的權限取決於文件​​所在的目錄所有權/權限,而不是文件本身的權限。想像一個目錄開始一個文件,其內容是其中的文件列表……

引用自:https://serverfault.com/questions/1064559