主頁 > 軟體設計 > RH358管理DNS和DNS服務器--使用Unbound配置快取名稱服務器

RH358管理DNS和DNS服務器--使用Unbound配置快取名稱服務器

2021-12-22 07:56:58 軟體設計

RH358管理DNS和DNS服務器–使用Unbound配置快取名稱服務器

本章節介紹使用unbound軟體配置快取DNS,雖說配置DNS方面還是在windows server上部署更加方便,但難免出現日后需要使用的場景,還是需要學習,

專欄地址:https://blog.csdn.net/qq_41765918/category_11532281.html

文章目錄

    • RH358管理DNS和DNS服務器--使用Unbound配置快取名稱服務器
      • 1. 安裝和配置Unbound
        • 安裝unbound
        • 編輯unbound組態檔
        • 啟用快取名稱服務器
      • 2. 管理Unbound
        • 轉儲和加載unbound快取
        • 重繪unbound快取
      • 3. 課本練習
        • 1. 安裝unbound,
        • 2. 按要求編輯server子句,
        • 3. 生成私鑰和服務器證書,
        • 4. 檢查unbound組態檔的語法,
        • 5. 配置防火墻允許DNS流量,
        • 6. 啟用并啟動unbound服務,
        • 7. 通過執行查詢和檢查快取的內容來驗證快取名稱服務,
        • 完成實驗
      • 總結

DNS服務器軟體:bind,powerdns,dnsmasq,unbound,coredns

1. 安裝和配置Unbound

快取名稱服務器將DNS查詢結果存盤在本地快取中,并在它們的ttl過期時從快取中洗掉資源記錄,通常設定快取名稱服務器以代表本地網路上的客戶端執行查詢,這大大提高了DNS名稱決議的效率,減少DNS流量在互聯網上,隨著快取的增長,DNS性能會隨著快取名稱服務器從其本地快取回應越來越多的客戶端查詢而提高,有幾個包可用于配置快取名稱服務器,包括bind、dnsmasq和unbound,在本節中,將學習如何安裝、配置和管理Unbound,這是一個啟用了DNSSEC驗證的更安全的快取名稱服務器,

安裝unbound

要將unbound配置為快取名稱服務器,請確保已安裝unbound包:

[root@host ~]# yum install unbound

編輯unbound組態檔

以root用戶編輯/etc/unbound/unbound.conf檔案,如下所示:

  • 在server子句中,定義Unbound將偵聽的網路介面,
interface: 192.0.2.100
interface: 2001:db8:1001::f0

默認情況下,Unbound只偵聽本地主機網路介面,要允許遠程客戶端使用Unbound作為快取名稱服務器,請使用/etc/unbound/unbound.conf中server子句中的interface選項來指定要偵聽的網路介面,您可以指定多個介面指令,

重要:

如果將interface設定為0.0.0.0或::0(偵聽所有網路介面),則必須將interface-automatic設定為yes,否則,將interface-automatic設定為no,

如果libvirtd服務與Unbound運行在同一臺機器上,并且試圖系結到所有介面,Unbound可能不會啟動,這是因為,默認情況下,Libvirtd在連接到其虛擬網路的本地介面的53埠(UDP和TCP的DNS服務器埠)上運行dnsmasq

  • 允許或阻止客戶端訪問,

默認情況下,unbound拒絕來自除localhost以外的所有客戶機的遞回查詢,在/etc/unbound/unbound .conf的server子句中,使用access-control選項來指定哪些客戶端可以進行遞回查詢,可以指定網路地址或IP地址,匹配最多的將獲勝,最有用的三種設定是allow,,允許訪問,refuse,阻止訪問并向客戶端發送DNS拒絕錯誤,deny,阻止訪問并根本不發送回應,

access-control: 172.25.0.0/24 allow
access-control: 2001:db8:1001::/32 allow
access-control: 10.0.0.0/8 refuse

重要:

配置一個access-control來禁止除您的目標客戶端以外的主機使用快取名稱服務器的遞回,如果你允許互聯網上的任何主機使用你的服務器進行遞回查詢,它可以被攻擊者用來對第三方執行DNS放大分布式拒絕服務攻擊(DDOS),

  • 將查詢轉發到另一個快取名稱服務器(可選),

如果此名稱服務器不能訪問internet,但可以訪問能夠訪問internet的名稱服務器,則可能需要這樣做,也可以這樣做,將內部域的查詢直接發送到該域的權威名稱服務器,

在/etc/unbound/unbound.conf中,創建forward-zone子句來指定要轉發的域和要轉發查詢的DNS服務器,設定name值為“.”轉發所有查詢,使用forward-host選項通過主機名指定轉發區域的DNS服務器,或使用forward-addr選項通過IP地址指定轉發區域的DNS服務器,

forward-zone:
  name: "."
  forward-addr: 172.25.254.254
  • 禁用特定未簽名區域的DNSSEC****驗證(可選),

默認情況下,unbound對接收到的所有DNS回應進行DNSSEC驗證,通常希望它這樣做,但有時會有一個未正確簽名的內部域,因此無法通過DNSSEC驗證,

/etc/unbound/unbound.conf的server子句中的domain-insecure選項指定了需要跳過DNSSEC驗證的域,

domain-insecure: example.com

警告:不要僅僅為了解決DNS決議中未解釋的問題而禁用DNSSEC驗證,DNSSEC失敗可能表明正在接收被正確拒絕的欺騙回應,

  • 保存組態檔/etc/unbound/unbound.conf,

生成私鑰和服務器證書,

[root@host ~]# unbound-control-setup
setup in directory /etc/unbound
generating unbound_server.key
Generating RSA private key, 3072 bit long modulus (2 primes)
..........................................................++++
.....++++
e is 65537 (0x010001)
generating unbound_control.key
Generating RSA private key, 3072 bit long modulus (2 primes)
....................................++++
......................................++++
e is 65537 (0x010001)
create unbound_server.pem (self signed certificate)
create unbound_control.pem (signed client certificate)
Signature ok
subject=CN = unbound-control
Getting CA Private Key
Setup success. Certificates created. Enable in unbound.conf file to use

# 檢查/etc/unbound/unbound.conf組態檔的語法錯誤,
[root@host ~]# unbound-checkconf
unbound-checkconf: no errors in /etc/unbound/unbound.conf

啟用快取名稱服務器

配置防火墻允許DNS流量,如果使用firewalld,可以配置它以允許dns服務,

[root@host ~]# firewall-cmd --permanent --add-service=dns
success
[root@host ~]# firewall-cmd --reload
success

# 啟動并開機啟用Unbound,
[root@host ~]# systemctl enable --now unbound

2. 管理Unbound

安裝了Unbound DNS服務器后,管理員有時需要操作它的快取,unbound-control實用程式管理unbound服務器的快取,

轉儲和加載unbound快取

快取名稱服務器的管理員在解決DNS問題時可能需要轉儲快取資料,比如那些由過時的資源記錄引起的問題,轉儲Unbound DNS服務器的快取,請使用unbound-control實用程式配合dump_cache子命令,

[root@host ~]# unbound-control dump_cache
START_RRSET_CACHE
;rrset 86395 1 0 3 3
classroom.example.com. 86395 IN A 172.25.254.254
;rrset 86395 1 0 7 3
example.com. 86395 IN NS classroom.example.com.
;rrset 86395 1 0 8 3
example.com. 86395 IN A 172.25.254.254
END_RRSET_CACHE
START_MSG_CACHE
msg example.com. IN A 33152 1 86395 3 1 1 1
example.com. IN A 0
example.com. IN NS 0
classroom.example.com. IN A 0
END_MSG_CACHE
EOF

使用dump_cache執行unbinding -control命令將快取以文本格式轉儲到stdout,這個輸出可以被定向到一個檔案中進行存盤,如果需要的話,可以使用unbound-control load_cache加載回快取中,unbound-control load_cache命令從stdin讀取資料來填充快取,

[root@host ~]# unbound-control load_cache < dump.out
ok

重繪unbound快取

快取名稱服務器的管理員可能還需要定期從快取中清除過時的資源記錄,快取中的錯誤和過時的資源記錄會阻止已改正的對應記錄對客戶端可用,直到資源記錄上的TTL過期,與等待TTL過期不同,您可以通過對記錄執行unbound-control flush來清除快取中的過時記錄:

[root@host ~]# unbound-control flush www.example.com
ok

# 使用flush_zone子命令執行unbound-control以清除Unbound DNS服務器上屬于某個域的所有資源記錄,
[root@host ~]# unbound-control flush_zone example.com
ok removed 3 rrsets, 1 messages and 0 key entries

3. 課本練習

[student@workstation ~]$ lab dns-unbound start

1. 安裝unbound,

[root@servera ~]# yum install unbound

2. 按要求編輯server子句,

在172.25.250.10介面上監聽,
允許來自172.25.250.0/24子網進行查詢,
免example.com區域的DNSSEC驗證,
將所有查詢轉發到172.25.250.254,
[root@servera ~]# vim /etc/unbound/unbound.conf
interface: 172.25.250.10
access-control: 172.25.250.0/24 allow
domain-insecure: "example.com"
forward-zone:
       name: .      
       forward-addr: 172.25.250.254

3. 生成私鑰和服務器證書,

[root@servera ~]# unbound-control-setup
setup in directory /etc/unbound
generating unbound_server.key
Generating RSA private key, 3072 bit long modulus (2 primes)
...........++++
.......++++
e is 65537 (0x010001)
generating unbound_control.key
Generating RSA private key, 3072 bit long modulus (2 primes)
...........................................................................................................................++++
..............++++
e is 65537 (0x010001)
create unbound_server.pem (self signed certificate)
create unbound_control.pem (signed client certificate)
Signature ok
subject=CN = unbound-control
Getting CA Private Key
Setup success. Certificates created. Enable in unbound.conf file to use

4. 檢查unbound組態檔的語法,

[root@servera ~]# unbound-checkconf
unbound-checkconf: no errors in /etc/unbound/unbound.conf

5. 配置防火墻允許DNS流量,

[root@servera ~]# firewall-cmd --permanent --add-service=dns
success
[root@servera ~]# firewall-cmd --reload
success

6. 啟用并啟動unbound服務,

[root@servera ~]# systemctl enable --now unbound
Created symlink /etc/systemd/system/multi-user.target.wants/unbound.service → /usr/lib/systemd/system/unbound.service.

7. 通過執行查詢和檢查快取的內容來驗證快取名稱服務,

[root@servera ~]# unbound-control dump_cache
START_RRSET_CACHE
END_RRSET_CACHE
START_MSG_CACHE
END_MSG_CACHE
EOF

[student@workstation ~]$ dig @servera.lab.example.com A workstation.lab.example.com
...........
workstation.lab.example.com. 600 IN A 172.25.250.9

[student@workstation ~]$ dig @servera.lab.example.com A servera.lab.example.com
............
servera.lab.example.com. 600 IN A 172.25.250.10

# 在服務器上,再次轉儲快取,您應該在快取中看到查詢的記錄,
[root@servera ~]# unbound-control dump_cache
............
msg workstation.lab.example.com. IN A 33152 1 587 3 1 1 1
workstation.lab.example.com. IN A 0
lab.example.com. IN NS 0
bastion.lab.example.com. IN A 0
msg net. IN DNSKEY 33152 1 78675 0 1 0 0
net. IN DNSKEY 0
END_MSG_CACHE
EOF

[root@servera ~]# unbound-control flush workstation.lab.example.com
ok

[root@servera ~]# unbound-control dump_cache | grep workstation

完成實驗

[student@workstation ~]$ lab dns-unbound finish

總結

  • 介紹如何安裝和配置Unbound,
  • 管理Unbound,
  • 若喜歡金魚哥的文章,順手點個贊,也可點個關注,因為后續會不斷上干貨,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389110.html

標籤:其他

上一篇:Redis最常用的使用場景

下一篇:如何對nginx進行平滑升級

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more