跳到主要內容

Linux-CentOS7 使用 Bind 架設 DNS Server & DNS正解

DNS(Domain Name System)服務
提供域名解析,相較於IP位址(IP Address),域名(Domain name)讓使用者容易記憶,使用域名對應IP位址。


1.安裝 BIND 套件
  • # sudo yum install bind

2.編輯 BIND 主設定檔
  • # sudo vim /etc/named.conf

2.1添加 options下的設定值
  • listen-on port 53 - 加入提供服務器的IP
  • allow-query        - 允許查詢此DNS服務器的網段

2.2加入一個正解的 zone ,這邊測試使用 brookdns.local

3.編輯 正解區域檔案清單(brookdns.local.txt)

  • # sudo vim /var/named/brookdns.local.txt


4.使用指令:named-checkconf 檢查下主設定檔

  • 主設定檔錯誤時會有提示,依提示修改錯誤

4.1發現主設定檔一個錯誤 ,在正解宣告區域的地方少了 ; 分號


5.使用指令:name-checkzone,檢查正解區域檔案
  • # sudo named-checkzone brookdns.local. /var/named/brookdns.local.txt

6.防火牆開通DNS服
  • # sudo firewall-cmd --add-service=dns --permanent (永久保存規則)
  • # sudo firewall-cmd --reload (重新載入防火牆規則,讓規則生效)

7.重新啟動named服務並且查看服務的啟動狀態

  • sudo systemctl restart named
  • sudo systemctl status named


8.使用nslookup工具測試 DNS 解析
若使用nslookup指令出現 command not found ,使用 yum pervides nslookup ,查找到套件包(bind-utils)後,將bind-utils安裝上就可以用了。

9.使用 dig 工具測試 DNS 解析

留言

  1. 版主您好,
    請教您個問題
    在我自己建立的環境使用nslookup測試
    # nslookup
    > dns.bt.com.tw
    Server: 192.168.93.129
    Address: 192.168.93.129#53

    ** server can't find vgw.bt.com.tw: SERVFAIL

    會出現此錯誤
    用反解搜尋是正常的
    # nslookup
    >192.168.93.129
    129.93.168.192.in-addr.arpa name = dns.bt.com.tw.

    請問可能是哪邊有錯誤呢?
    謝謝您!

    回覆刪除
    回覆
    1. 你好,最近準備考試呢!來不及給你即時回覆。

      看你提供的資訊使用 nslookup ,查 dns.bt.com.tw 給出 vgw.bt.com.tw: SERVFAIL 目前我還沒遇到過,我嘗試了幾個錯誤設定,但沒有還原出你這個錯誤訊息。

      遇到類似的問題,我會用以下方法排查:
      1.使用 name-checkzone 、named-checkconf 檢查主設定檔跟正解區域檔案,是否有出現錯誤
      2.在正解設定檔內的解析 例如:dns.bt.com.tw. 最後面的 . 是否有添加到設定檔因為那代表 根,沒有添加到的話服務器將無法正常啟動,服務啟動的發生錯誤時依照錯誤訊息查看LOG
      3.如果以上兩個都沒問題,嘗試更改一下正解檔案的的所屬群組修改成 named,在重新啟動服務試試。

      如果你已經解決這個問題,歡迎你在這邊交流一下你發現的狀況。如果以上都沒有解決你的問題在提供設定檔跟正解檔的設定我們再來看看怎麼辦吧!

      刪除

張貼留言

這個網誌中的熱門文章

Linux-CentOS7 Bind 設置 DNS反解(rDNS) & 增加次要(Slave)伺服器

DNS 反解 : 將IP轉換成域名,通常需要 Class C 或是跟上層網路業者申請 ➽此使用內部網路做DNS反解測試。 1.在主設定檔(/etc/named.conf)添加反解區域(240.168.192.in-addr.arpr) # sudo vim /etc/named.conf zone "240.168.192.in-addr.arpa" IN { type master; file "240.168.192.txt"; }; 2.編輯 反解區域檔案(240.168.192.txt),完成後儲存檔案 # sudo vim/var/named/240.168.192.txt 3.重新啟動 Bind 服務&查看 Bind 服務狀態 # sudo systemctl restart named # sudo systemctl status named 4.使用 nslookup 工具測試 server xxx.xxx.xxx.xxx  --> 指定 DNS 服務器 反解測試完成!! DNS次要(Slave)服務器: 主要減少主伺服器的負擔,還有DNS服務器備機的用途。 1.在主要(Master)DNS服務器,正解及反解區域添加: allow-transfer { }; notify yes; 2.重啟主要(Master)DNS服務器的 Bind 服務 # sudo system restart named 3.次要(Slave)服務器安裝 Bind # sudo yum install -y bind 4.編輯 Slave 的 Bind 主設定檔 # sudo vim /etc/named.conf listen-on port 53 {}; //加入次要服務器 IP allow-query {}; //開放允許查詢的網段 // 加入正解區域 zone "brookdns.local" IN { type slave; masters {192.168.240.14

Linux & Windows 使用 SSH 公開金鑰(Public Key Authentication) 登入遠端主機(Linux Server)

目的: 讓SSH連線更加安全及便利 Step1 Linux Server 配置 1.在需要使用金鑰驗證的使用者(brookadmin)家目錄建立一個 .ssh 資料夾 ,權限 700 # mkdir .ssh 2.在 .ssh 資料夾內 建立一個 authorized_keys 的檔案,權限600,這裡會存放 client 端的Pubkey #touch authorized_keys Step2 Linux Client 使用 ssh-keygen 產生金鑰   1.進到使用者家目錄下 .ssh 目錄,使用指令 ssh-keygen 產生金鑰 2.將生成的公鑰存至要連線的服務器,使用指令 ssh-copy-id #sudo ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22168 brookadmin@192.168.240.148 Windows Client 使用 ssh-keygen 產生金鑰 1.使用的windows作業系統是win 10,打開 cmd 命令提示字元,使用指令 ssh-keygen 產生金鑰,金鑰位置:C:\Users\ your username \.ssh,使用者的 .ssh 資料夾下 2.將 id_rsa.pub文件內容金鑰,添加到遠程linux server管理帳號下家目錄的 .ssh/authorized_keys 檔案裡 Step3 Linux Server 配置 1.將 Linux Client 跟 Windows Client 的 id_rsa.pub(公開金鑰)內容依序加入檔案,如果沒有金鑰可以先使用 ssh-keygen 產生,公開金鑰檔名可以自訂,需記住使用哪一組,加入金鑰後的authorized_keys 檔案內容就像圖片所示 2.編輯 SSH 設定檔 > sudo vim /etc/ssh/sshd_config #找到 PubkeyAuthentication 將註解#拿掉 並修改參數 #找到 PasswordAuthentication 修改參數為 no 3.重新啟動 ssh 服務,讓設定生效 #sudo systemctl restart sshd