




已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本文由lyx123x貢獻 doc文檔可能在WAP端瀏覽體驗不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機查看。 第 14 章 DNS 服務器架設與應用 第 14 章 DNS 服務器架設與應用 DNS(Domain Name System,域名服務系統(tǒng))是 Internet 上用得最頻繁的服務之一, 它是一個分布式數(shù)據庫,組織成域層次結構的計算機和網絡服務命名系統(tǒng)。通過它人們可 以將域名解析為 IP 地址,從而使人們能夠通過簡單好記的域名來代替枯燥難記的 IP 地址 來訪問網絡。本章將詳細介紹 DNS 服務的基本概念、工作原理、BIND 的運行、架設和使 用方法。 14.1 DNS 工作原理 DNS 是一個分布式數(shù)據庫,它在本地負責控制整個分布式數(shù)據庫的部分段,每一段中 的數(shù)據通過客戶服務器模式在整個網絡上均可存取,通過采用復制技術和緩存技術使得整 個數(shù)據庫可靠的同時,又擁有良好的性能。下面介紹一下 DNS 的工作原理及 DNS 協(xié)議的 有關情況。 14.1.1 名稱解析方法 網絡中為了區(qū)別各個主機, 必須為每臺主機分配一個唯一的地址, 這個地址即稱為 “IP 地址”。但這些數(shù)字難以記憶,所以就采用“域名”的方式來取代這些數(shù)字了。不過最終 還是必須要將域名轉換為對應的 IP 地址才能訪問主機,因此需要一種將主機名轉換為 IP 地址的機制。在常見的計算機系統(tǒng)中,可以使用 3 種技術來實現(xiàn)主機名和 IP 地址之間的轉 換:Host 表、網絡信息服務系統(tǒng)(NIS)和域名服務(DNS)。 1Host表 Host 表是簡單的文本文件,文件名一般是 hosts,其中存放了主機名和 IP 地址的映射 關系,計算機通過在該文件中搜索相應的條目來匹配主機名和 IP 地址。Hosts 文件中的每 一行就是一個條目,包含一個 IP 地址及與該 IP 地址相關聯(lián)的主機名。如果希望在網絡中 加入、刪除主機名或者重新分配 IP 地址,管理員所要做的就是增加、刪除或修改 hosts 文 件中的條目,但是要更新網絡中每一臺計算機上的 hosts 文件。 在 Internet 規(guī)模非常小的時候,這個集中管理的文件可以通過 FTP 發(fā)布到各個主機, 每個 Internet 站點可以定期地更新其 hosts 文件的副本,并且發(fā)布主機文件的更新版本來反 映網絡的變化。但是,當 Internet 上的計算機迅速增加時,通過一個中心授權機構為所有 Internet 主機管理一個 hosts 文件的工作將無法進行。文件會隨著時間的推移而增大,這樣 按當前和更新的形式維持文件以及將文件分配至所有站點將變得非常困難。 297 第3篇 Linux 常見服務器架設篇 說明:雖然 Host 表目前不再廣泛使用,但大部分的操作系統(tǒng)依舊保留。 2NIS系統(tǒng) 將主機名轉換為 IP 地址的另一種方案是 NIS(Network Information System,網絡信息 系統(tǒng)),它是由 Sun Microsystems 開發(fā)的一種命名系統(tǒng)。NIS 將主機表替換成主機數(shù)據庫, 客戶機可以從它這里得到所需要的主機信息。然而,因為 NIS 將所有的主機數(shù)據都保存在 中央主機上,再由中央主機將所有數(shù)據分配給所有的客戶機,以至于將主機名轉換為 IP 時 的效率很低。因為在 Internet 迅猛發(fā)展的今天,沒有一種辦法可以用一張簡單的表或一個 數(shù)據庫為如此眾多的主機提供服務。因此,NIS 一般只用在中型以下的網絡。 說明:NIS 還有一種擴展版本,稱為 NIS+,提供了 NIS 主計算機和從計算機間的身份 驗證和數(shù)據交換加密功能 3DNS系統(tǒng) DNS 是一種新的主機名稱和 IP 地址轉換機制,它使用一種分層的分布式數(shù)據庫來處 理 Internet 上眾多的主機和 IP 地址轉換。也就是說,網絡中沒有存放全部 Internet 主機信 息的中心數(shù)據庫,這些信息分布在一個層次結構中的若干臺域名服務器上。DNS 是基于客 戶/服務器模型設計的。本質上,整個域名系統(tǒng)以一個大的分布式數(shù)據庫方式工作。具有 Internet 連接的企業(yè)網絡都可以有一個域名服務器, 每個域名服務器包含有指向其他域名服 務器的信息,結果是這些服務器形成了一個大的協(xié)調工作的域名數(shù)據庫。 14.1.2 DNS 組成 每當一個應用需要將域名翻譯成為 IP 地址時,這個應用便成為域名系統(tǒng)的一個客戶。 這個客戶將待翻譯的域名放在一個 DNS 請求信息中, 并將這個請求發(fā)給域名空間中的 DNS 服務器。服務器從請求中取出域名,將它翻譯為對應的 IP 地址,然后在一個回答信息中將 結果返回給應用。如果接到請求的 DNS 服務器自己不能把域名翻譯為 IP 地址,將向其他 DNS 服務器查詢。整個 DNS 域名系統(tǒng)由以下 3 個部分組成。 1DNS域名空間 指定用于組織名稱的域的層次結構,它如同一棵倒立的樹,層次結構非常清晰,如圖 14-1 所示。根域位于頂部,緊接著在根域的下面是幾個頂級域,每個頂級域又可以進一步 劃分為不同的二級域, 二級域再劃分出子域, 子域下面可以是主機也可以是再劃分的子域, 直到最后的主機。在 Internet 中的域是由 InterNIC 負責管理的,域名的服務則由 DNS 來 實現(xiàn)。 2DNS服務器 DNS 服務器是保持和維護域名空間中數(shù)據的程序。由于域名服務是分布式的,每一個 DNS 服務器含有一個域名空間自己的完整信息,其控制范圍稱為區(qū)(Zone)。對于本區(qū)內 298 第 14 章 DNS 服務器架設與應用 的請求由負責本區(qū)的 DNS 服務器解釋,對于其他區(qū)的請求將由本區(qū)的 DNS 服務器與負責 該區(qū)的相應服務器聯(lián)系。 圖 14-1 DNS 域名空間 3解析器 解析器是簡單的程序或子程序,它從服務器中提取信息以響應對域名空間中主機的查 詢,用于 DNS 客戶端。 14.1.3 DNS 查詢的過程 當客戶端程序要通過一個主機名稱來訪問網絡中的一臺主機時,它首先要得到這個主 機名稱所對應的 IP 地址,因為 IP 數(shù)據報中允許放置的是目地主機的 IP 地址,而不是主機 名稱。可以從本機的 hosts 文件中得到主機名稱所對應的 IP 地址,但如果 hosts 文件不能 解析該主機名稱時,只能通過向客戶機所設定 DNS 服務器進行查詢了。 說明:在 UNIX 系統(tǒng)中,可以設置 hosts 和 dns 的使用次序。 可以以不同的方式對 DNS 查詢進行解析。 第一種是本地解析, 就是客戶端可以使用緩 存信息就地應答,這些緩存信息是通過以前的查詢獲得的;第二種是直接解析,就是直接 由所設定的 DNS 服務器解析, 使用的是該 DNS 服務器的資源記錄緩存或者其權威回答 (如 果所查詢的域名是該服務器管轄的);第三種是遞歸查詢,即設定的 DNS 服務器代表客戶 端向其他 DNS 服務器查詢,以便完全解析該名稱,并將結果返回至客戶端。第四種是迭代 查詢,即設定的 DNS 服務器向客戶端返回一個可以解析該域名的其他 DNS 服務器,客戶 端再繼續(xù)向其他 DNS 服務器查詢。 1本地解析 本地解析的過程如圖 14-2 所示。 客戶機平時得到的 DNS 查詢記錄都保留在 DNS 緩存 299 第3篇 Linux 常見服務器架設篇 中, 客戶機操作系統(tǒng)上都運行著一個 DNS 客戶端程序。 當其他程序提出 DNS 查詢請求時, 這個查詢請求要傳送至 DNS 客戶端程序。DNS 客戶端程序首先使用本地緩存信息進行解 析,如果可以解析所要查詢的名稱,則 DNS 客戶端程序就直接應答該查詢,而不需要向 DNS 服務器查詢,該 DNS 查詢處理過程也就結束了。 圖 14-2 本地解析 2直接解析 如果 DNS 客戶端程序不能從本地 DNS 緩存回答客戶機的 DNS 查詢, 它就向客戶機所 設定的局部 DNS 服務器發(fā)一個查詢請求, 要求局部 DNS 服務器進行解析。 如圖 14-3 所示, 局部 DNS 服務器得到這個查詢請求,首先查看一下所要求查詢的域名是不是自己能回答 的,如果能回答,則直接給予回答,如是不能回答,再查看自己的 DNS 緩存,如果可以從 緩存中解析,則也是直接給予回應。 圖 14-3 局部 DNS 服務器解析 3遞歸解析 當局部 DNS 服務器自己不能回答客戶機的 DNS 查詢時, 它就需要向其他 DNS 服務器 進行查詢。此時有兩種方式,如圖 14-4 所示的是遞歸方式。局部 DNS 服務器自己負責向 其他 DNS 服務器進行查詢, 一般是先向該域名的根域服務器查詢, 再由根域名服務器一級 級向下查詢。最后得到的查詢結果返回給局部 DNS 服務器,再由局部 DNS 服務器返回給 客戶端。 圖 14-4 DNS 解析的遞歸方式 300 第 14 章 DNS 服務器架設與應用 4迭代解析 當局部 DNS 服務器自己不能回答客戶機的 DNS 查詢時,也可以通過迭代查詢的方式 進行解析,如圖 14-5 所示。局部 DNS 服務器不是自己向其他 DNS 服務器進行查詢,而是 把能解析該域名的其他 DNS 服務器的 IP 地址返回給客戶端 DNS 程序,客戶端 DNS 程序 再繼續(xù)向這些 DNS 服務器進行查詢,直到得到查詢結果為止。 圖 14-5 DNS 解析的迭代方式 以上介紹了 DNS 解析的 4 種方式,下面看一下 DNS 報文的格式。 14.1.4 DNS 報文格式 DNS 客戶端與 DNS 服務器進行交互時,需要傳送各種各樣的數(shù)據報,這些數(shù)據報的 總體格式如圖 14-6 所示。DNS 報文由 12 字節(jié)長的首部和 4 個長度可變的字段組成。標識 字段由客戶程序設置并由服務器返回結果,客戶程序通過它來確定響應與查詢是否匹配。 標識字段包含了以下內容。 定義是查詢報文還是響應報文; 查詢類型是標準查詢、反向查詢還是服務器狀態(tài)請求; 是否是權威回答; 查詢方式是遞歸查詢還是迭代查詢; 是否支持遞歸查詢; 查詢是否有差錯或要查的域名不存在。 問題部分中每個問題的格式如圖 14-7 所示,通常只有一個問題。查詢名是要查找的名 字,它是一個或多個標識符的序列。每個標識符以首字節(jié)的計數(shù)值來說明隨后標識符的字 節(jié)長度,每個名字以最后字節(jié)為 0 結束,長度為 0 的標識符是根標識符。計數(shù)字節(jié)的值必 須是 063 的數(shù),因為標識符的最大長度僅為 63。與其他常用報文格式不一樣的是,該字 301 第3篇 Linux 常見服務器架設篇 段無需以整 32bit 邊界結束, 即無需填充字節(jié)。 14-8 顯示了如何存放域名 。 圖 其中,3、5、2 表示后續(xù)字符的個數(shù)。 圖 14-6 DNS 數(shù)據報的總體格式 圖 14-7 3 w w w 5 w DNS 數(shù)據包問題部分格式 z v t c 2 c n 0 圖 14-8 域名 的表示方法 每個問題都有一個查詢類型,而每個應答(也稱為一條資源記錄)也有一個應答類型。 大約有 20 個不同的類型值,有一些目前已經過時,表 14-1 列出了常用的一些值。其中有 兩種可以用于查詢類型: 一種是 A 類型, 表示期望獲得查詢名的 IP 地址。 還有一種是 PTR 類型,表示請求獲得一個 IP 地址對應的域名,也稱為指針查詢。查詢報文格式中的查詢類 通常是 1,指互聯(lián)網地址。 注意:某些站點也支持其他非 IP 地址查詢,此時查詢類將是其他數(shù)值。 表 14-1 名 A NS CName PTR 字 數(shù) 1 2 5 12 值 描 IP 地址 名字服務器 規(guī)范名稱 指針記錄 DNS問題和響應的類型值和查詢類型值 述 名 HINFO MX AXFR *或 ANY 字 數(shù) 13 15 252 255 值 描 主機信息 郵件交換記錄 對區(qū)域轉換的請求 對所有記錄的請求 述 DNS 報文一般格式中的最后 3 個字段是回答字段、授權字段和附加信息字段,它們均 采用一種稱為資源記錄 RR(Resource Record)的相同格式。圖 14-9 顯示了資源記錄的格 302 第 14 章 DNS 服務器架設與應用 式,各個字段的含義如下: 圖 14-9 DNS 資源記錄格式 域名是記錄中資源數(shù)據對應的名字,它的格式和前面介紹的查詢名字段格式(圖 14-8)相同。 類型說明 RR 的類型碼,它的值的取值及含義見表 14-1。 類通常為 1,指 Internet 數(shù)據。 生存時間字段是客戶程序保留該資源記錄的秒數(shù),資源記錄通常的生存時間值為 2 天。 資源數(shù)據長度說明資源數(shù)據的數(shù)量。 資源數(shù)據的格式依賴于類型字段的值,對于類型 1(A 記錄)資源數(shù)據是 4 字節(jié)的 IP 地址。 14.1.5 實際的 DNS 報文數(shù)據 在客戶機利用域名訪問一臺主機時, 首先要向所設的 DNS 服務器發(fā)送查詢報文, 以獲 得該域名所對應的 IP 地址,DNS 服務器要根據具體情況返回給客戶端應答。下面通過抓 包工具 Ethereal 捕獲這些數(shù)據包,并進行觀察,以便更深入地理解 DNS 協(xié)議。 假設在一臺 IP 地址為 52 的客戶機上執(zhí)行 ping 命令,成功執(zhí) 行完成后, Ethereal 抓到的數(shù)據包如圖 14-10 所示。 用 在命令執(zhí)行前, 先用 ipconfig /flushdns 清除本地的 DNS 緩存,否則客戶機有可能不發(fā)送 DNS 報文而是直接從 DNS 緩存中得到 IP 地址。 從圖 14-10 可以看出,客戶機 52 在 ping 一個域名時,要先通過 DNS 查詢獲 得該域名所對應的 IP 地址,因此向所設的 DNS 服務器 9 發(fā)送了數(shù)據包 1,可以看 出查詢類型為 A。DNS 服務器 9 通過數(shù)據包 2 告訴客戶機, 域名所 對應的 IP 地址是 8。于是,ping 命令向 8 發(fā)送了數(shù)據包 3、5、7 和 9 四個 ICMP 請求,而 8 則通過 4、6、8 和 10 四個數(shù)據包進行了回復。 從數(shù)據包 2 還可以看出,DNS 服務器返回了一條 CNAME 資源記錄和兩條 A 資源記 錄, 客戶端根據自己的算法取出了第一條 A 資源記錄中所包含的 IP 地址。 另外, 從圖 4-10 中所示窗口的中間部分還可以看出,DNS 報文是通過 UDP 協(xié)議發(fā)送的,服務器的端口號 是 53 號。 303 第3篇 Linux 常見服務器架設篇 圖 14-10 Ethereal 抓到的 DNS 數(shù)據包 說明:以上是 DNS 客戶端與服務器的報文交互情況。實際上,DNS 服務器為了解析 域名,可能還需要與其他 DNS 服務器進行交互,這些交互數(shù)據包 不能在客戶機上捕獲。 14.2 BIND 的安裝與運行 Bind 是最知名的域名服務器軟件,它完整地實現(xiàn)了 DNS 協(xié)議規(guī)定的各種功能,可以 在各種主流的操作系統(tǒng)平臺上運行,并且被作為許多供應商的 UNIX 標準配置封裝在產品 中。下面介紹一下有關 Bind 服務器軟件的安裝與運行方法。 14.2.1 BIND 簡介 Linux 系統(tǒng)下架設 DNS 服務器通常是使用 Bind 程序來實現(xiàn)的。 Bind 是 Berkeley Internet Name Domain Service 的簡寫,是一款架設 DNS 服務器的開放源代碼軟件。Bind 原本是美 國 DARPA 資助伯克里大學開設的一個研究生課題,后來經過多年的變化發(fā)展,已經成為 世界上使用最為廣泛的 DNS 服務器軟件,目前 Internet 上絕大多數(shù)的 DNS 服務器都是用 Bind 來架設的。 Bind 經歷了第 4 版、第 8 版和最新的第 9 版,第 9 版修正了以前版本中的許多錯誤, 304 第 14 章 DNS 服務器架設與應用 并提升了執(zhí)行時的效能。Bind 能夠運行在當前大多數(shù)的操作系統(tǒng)系統(tǒng)平臺之上。目前 Bind 軟件由 ISC(Internet Software Consortium,因特網軟件聯(lián)合會)這個非贏利性機構負責開 發(fā)和維護。 的官方網站域名為 /, ISC 包含了 Bind 的最新錯誤修復和更新。 14.2.2 BIND 的獲取與安裝 在 Red Hat Enterprise Linux 5 下安裝 BIND 服務器可以有兩種方式,一種是源代碼方 式安裝,一種是 RPM 軟件包方式安裝。源代碼可以從 處下載,目前最新的 版本是 9.5.0 版,文件名是 bind-9.5.0-P2.tar.gz。RHEL 5 自帶的 BIND 版本是 9.3.9 版,文 件名是 bind-9.3.3-7.el5.i386.rpm,在發(fā)行版的第 2 張盤上。 先看一下 RPM 方式安裝。如果安裝 RHEL 5 系統(tǒng)的時候沒有選擇安裝 bind-9.3.3-7.el5 包,需要從第二張安裝光盤把相應文件復制到當前目錄以后,再用以下命令安裝。 # rpm -ivh bind-9.3.3-7.el5.i386.rpm 如果安裝成功,會出現(xiàn)以下提示。 warning: bind-9.3.3-7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing # 100% 1:bind # 100% # 再輸入以下命令,可以看到安裝后的文件分布情況。 # rpm -ql bind-9.3.3-7.el5 其中比較重要的文件分布如下: /etc/rc.d/init.d/named:Bind 開機自動啟動時所用的啟動腳本。 /usr/sbin/bind-chroot-admin:啟用或禁用 chroot 功能的命令。 /usr/sbin/named:named 進程的程序文件。 /usr/sbin/rndc:遠程控制 named 進程運行的工具。 /usr/sbin/rndc-confgen:產生 rndc 密鑰的工具。 /usr/share/doc/bind-9.3.3:該目錄下安裝了 BIND 的幫助文檔和例子文件。 /usr/share/man/man5:這個目錄下安裝了 BIND 的手冊頁。 /usr/share/man/man8:這個目錄下也安裝了 BIND 的手冊頁。 /var/named:Bind 配置文件的默認存放目錄(不包含主配置文件)。 /var/run/named:named 進程 PID 文件的存放目錄。 named 進程是以 named 用戶的身份運行的,因此,操作系統(tǒng)中要事先存在這個用戶。 說明:當默認安裝 RHEL 5 時,named 用戶已經創(chuàng)建,如是由于某種原因該用戶不存在 了,需要重新創(chuàng)建。 如果采用源代碼方式安裝,則從 /isc/bind9/9.5.0-P2/處下載 Bind 的最新 版 9.5.0 版的源代碼文件 bind-9.5.0-P2.tar.gz,文件復制到當前目錄后,使用以下命令進行 安裝。 305 第3篇 # # # # # # Linux 常見服務器架設篇 rpm e bind-9.3.3-7.el5 /如果安裝了 bind 9.3.3 包,則先拆除 tar xvzf bind-9.5.0-P2.tar.gz /解壓源代碼文件包,到 bind-9.5.0-P2 目錄中 cd bind-9.5.0-P2 ./configure make /編譯連接,產生可執(zhí)行文件 make install /把文件安裝到相應的目錄 當練習測試時,可選擇上述兩種安裝方式中的一種,本章后面的例子是以 RPM 安裝 方式為基礎進行講解的。 14.2.3 BIND 的簡單配置與運行 與其他服務器相比,BIND 的配置文件結構要復雜得多,而且在配置文件不正確的 情況下,BIND 將無法運行。為了使 BIND 能初步得到運行,下面先提供一套最簡單的配 置文件,使得 BIND 能正常地運行起來,并具有初步的域名解析功能,具體內容的解釋見 14.3 節(jié)。 (1)在/etc 目錄下建立 BIND 的主配置文件 named.conf,內容如下所示。 # vi /etc/named.conf options directory /var/named; pid-file /var/named/named.pid; forwarders 96; 97; ; allow-query any; ; ; zone . IN type hint; file named.root; ; zone 0.0.127. IN type master; file named.local; allow-update none; ; ; zone IN type master; file ; allow-update none; ; ; zone 1.10.10. IN type master; file named.1.10.10; allow-update none; ; ; (2)在/var/named 目錄下要建立在主配置文件中指定的 4 個區(qū)文件,文件名分別是 named.root、named.local、 和 named.1.10.10。其中,named.root 可以由以下 命令生成。 # dig /var/named/named.root /var/named/named.local 文件的內容如下: # vi /var/named/named.local $TTL 3h 306 第 14 章 DNS 服務器架設與應用 0.0.127.. IN SOA . . ( 1 ; Serial 3h ; Refresh after 3 hours 1h ; Retry after 1 hour 1w ; Expire after 1 week 1h ) ; Negative caching TTL of 1 hour 27.. IN PTR localhost. /var/named/ 文件的內容如下: # vi /var/named/ $TTL 3h . IN SOA . . ( 1 ; Serial 3h ; Refresh after 3 hours 1h ; Retry after 1 hour 1w ; Expire after 1 week 1h ) ; Negative caching TTL of 1 hour . . . mail www oa lib gsx IN IN IN IN IN IN IN IN NS . MX 10 mail A 9 A A CNAME www A A 34 /var/named/named.1.10.10 文件的內容如下: # vi /var/named/named.1.10.10 $TTL 3h 1.10.10.. IN SOA . .( 1 ; Serial 3h ; Refresh after 3 hours 1h ; Retry after 1 hour 1w ; Expire after 1 week 1h ) ; Negative caching TTL of 1 hour 1.10.10.. 0.. 0.. 0. . IN IN IN IN NS . PTR . PTR . PTR . (3)為了使 BIND 的運行不受 chroot 功能的影響,先用以下命令禁用 chroot。 # bind-chroot-admin -d (4)用以下命令啟動 named 進程,加-g 選項的目的是為了顯示啟動過程的詳細信息, 以便出錯時能及時發(fā)現(xiàn)原因。 # /usr/sbin/named -g & 1 3849 # 13-Nov-2008 18:18:54.336 starting BIND 9.3.3rc2 -g 13-Nov-2008 18:18:54.337 found 1 CPU, using 1 worker thread 13-Nov-2008 18:18:54.339 loading configuration from /etc/named.conf 13-Nov-2008 18:18:54.340 listening on IPv4 interface lo, #53 13-Nov-2008 18:18:54.341 listening on IPv4 interface eth0, 9#53 13-Nov-2008 18:18:54.343 command channel listening on #953 13-Nov-2008 18:18:54.344 command channel listening on :1#953 13-Nov-2008 18:18:54.344 ignoring config file logging statement due to -g 307 第3篇 Linux 常見服務器架設篇 option 13-Nov-2008 18:18:54.345 zone 1.10.10./IN: loaded serial 1 13-Nov-2008 18:18:54.346 zone /IN: loaded serial 1 13-Nov-2008 18:18:54.346 running (5)用以下命令查看 named 進程是否已正常啟動。 # ps -eaf|grep named root 3849 3469 0 18:18 pts/0 root 3862 3469 0 18:23 pts/0 # 00:00:00 /usr/sbin/named -g 00:00:00 grep named (6)由于 DNS 采用的是 UDP 協(xié)議,監(jiān)聽的是 53 號端口,可以用下面的命令進一步驗 證 named 是否已正常工作。 # netstat tcp tcp udp udp -an | grep :53 0 0 9:53 0 0 :53 0 0 9:53 0 0 :53 :* :* :* :* LISTEN LISTEN 可見,UDP53 號端口已經打開,同時也可以看到,TCP 的 53 號端口也是處于監(jiān)聽狀 態(tài)的,這個端口主要是用于 DNS 服務器之間傳送域數(shù)據。 (7)上述步驟完成后,再檢查一下防火墻是不是開放了 TCP 和 UDP 的 53 號端口。如 果還沒開放,可輸入以下命令打開。 #iptables -I INPUT -p tcp -dport 53 -j ACCEPT #iptables -I INPUT -p udp -dport 53 -j ACCEPT (8)最后,可以在本機或網絡中的其他計算機進行以下測試(“”后面是用戶輸入 的內容)。 C: nslookup Default Server: Address: # 原來默認的 DNS 服務器是 server 9 # 把 DNS 服務器設為 9 Default Server: 9 Address: 9 Server: 9 Address: 9 Name: Address: Server: 9 Address: 9 Name: Address: Server: 9 Address: 9 308 # 查詢 的 IP 地址 # DNS 服務器回復 的 IP 地址是 # 再查詢 的 IP 地址 # DNS 服務器回復 的 IP 地址是 # 查詢其他域的域名 第 14 章 DNS 服務器架設與應用 Non-authoritative answer: # 表示是非權威的回答 Name: Addresses: 8, 9 # DNS 服務器回復 的 IP 地 址,有兩個 Aliases: , exit C: 從以上測試可以看出,DNS 已經能正常地工作,能解析 區(qū)中的域名,還能通 過其他的 DNS 服務器解析互聯(lián)網上的所有域名。 14.2.4 chroot 功能 chroot 是 Change Root 的縮寫,它可以將文件系統(tǒng)中某個特定的子目錄作為進程的虛 擬根目錄,即改變進程所引用的“/”根目錄位置。chroot 對進程可以使用的系統(tǒng)資源、用 戶權限和所在目錄進行嚴格控制,程序只在這個虛擬的根目錄及其子目錄具有權限,一旦 離開該目錄就沒有任何權限了,所以也將 chroot 稱為“jail 監(jiān)禁”。 說明:在 Vsftpd 服務器架設中,也有幾個關于 chroot 的配置選項,可以把操作系統(tǒng)中的 某一個目錄(通常是該用戶的主目錄)作為用戶的根目錄,用戶登錄到 FTP 服務 器時,看到的根目錄并不是服務器上真正的根目錄,而是其他目錄。用戶不能訪 問除這個目錄以外的任何文件,即就是把用戶監(jiān)禁在某一目錄中,用戶的任何操 作僅對這個目錄有效,不會影響到系統(tǒng)和其他用戶的文件。 早期 Linux 服務都是以 root 權限啟動和運行的,隨著技術的發(fā)展,各種服務變得越來 越復雜,導致 BUG 和漏洞也越來越多。黑客利用服務的漏洞入侵系統(tǒng),就能獲得 root 級 別的權限,從而可以控制整個系統(tǒng)。為了減緩這種攻擊所帶來的負面影響,現(xiàn)在的服務器 軟件通常設計成以 root 權限啟動,然后服務器進程自行放棄 root 權限,再以某個低權限的 系統(tǒng)賬號來運行進程。這種方式的好處在于該服務被攻擊者利用漏洞入侵時,由于進程權 限比較低,攻擊者得到的訪問權限是基于這個較低權限的,因此對系統(tǒng)造成的危害比以前 減輕了許多。 基于同樣的道理,chroot 的使用并不能說是讓程序本身更安全了,它跟沒有 chroot 的 程序比較,依然有著同樣多的 bug 和漏洞,依然會被攻擊者利用這些 bug 和漏洞進行攻擊 并得逞。但由于程序本身的權限被嚴格限制了,因此攻擊者無法造成更大的破壞,也無法 奪取操作系統(tǒng)的最高權限。DNS 服務器主要是用于域名解析,需要面對來自網絡各個位置 的大量訪問,并且一般不限制來訪者的 IP,因此,存在的安全隱患和被攻擊的可能性相當 大,使用 chroot 功能也就特別地有意義了。 在 Red Hat Enterprise Linux 5 下 , chroot 的 安 裝 包 文 件 名 為 bind-chroot-9.3.37.el5.i386.rpm,在第二張安裝盤中。把安裝文件復制到當前目錄后,輸入以下命令進行 安裝。 # rpm -ivh bind-chroot-9.3.3-7.el5.i386.rpm 309 第3篇 Linux 常見服務器架設篇 當成功安裝 chroot 后,named 的虛擬根目錄變?yōu)?var/named/chroot,即以后運行 named 進程時,會把這個目錄當作根目錄。同時,這個虛擬根目錄下還自動創(chuàng)建了 dev、etc 和 var 3 個目錄,分別對應實際根目錄下的同名目錄。另外,安裝 chroot 時,還會自動把實際 根目錄下的這 3 個目錄中的配置文件都復制到虛擬根目錄下對應的 3 個目錄中,例如, /etc/named.conf 會復制到/var/named/chroot/etc。因此,以后編輯 named 的配置文件時,要 注意其存放的目錄位置。 當 BIND 包安裝完后,會在/usr/sbin 目錄下出現(xiàn) bind-chroot-admin 文件,這是一個與 chroot 有關的命令文件,利用它,可以禁用或啟用 chroot 功能,也可以使虛擬根目錄下的 named 配置文件與實際根目錄下的 named 配置文件進行同步。其命令格式如下所示。 # bind-chroot-admin Usage: -e | -enable: enable the bind-chroot environment -d | -disable: disable the bind-chroot environment -s | -sync: sync files between the bind chroot and / environments, so they are correct for the current state of the bind-chroot (enabled / disabled) $BIND_CHROOT_PREFIX, default /var/named/chroot, is the location of the chroot. $BIND_DIR, default /var/named, is the default un-chrooted bind directory. 在 bind-chroot-admin 命令后加-e 選項可以啟用 chroot 功能, 加-d 選項禁用 chroot 功能, 加-s 選項同步配置文件。在實際工作中,最好要啟用 chroot 功能,可以使服務器的安全性 能得到提高, 但在本章中, 為了講解和實驗的方便, 以及減少出錯的可能性, 禁用了 chroot 功能。 14.2.5 使用 rndc rndc 是 BIND 安裝包提供的一種控制域名服務運行的工具,它可以運行在其他計算機 上,通過網絡與 DNS 服務器進行連接,然后根據管理員的指令對 named 進程進行遠程控 制,此時,管理員不需要 DNS 服務器的根用戶權限。 使用 rndc 可以在不停止 DNS 服務器工作的情況進行數(shù)據的更新,使修改后的配置文 件生效。在實際情況下,DNS 服務器是非常繁忙的,任何短時間的停頓都會給用戶的使用 帶來影響。因此,使用 rndc 工具可以使 DNS 服務器更好地為用戶提供服務。 rndc 與 DNS 服務器實行連接時,需要通過數(shù)字證書進行認證,而不是傳統(tǒng)的用戶名/ 密碼方式。在當前版本下,rndc 和 named 都只支持 HMAC-MD5 認證算法,在通信兩端使 用共享密鑰。rndc 在連接通道中發(fā)送命令時,必須使用經過服務器認可的密鑰加密。為了 生成雙方都認可的密鑰,可以使用 rndc-confgen 命令產生密鑰和相應的配置,再把這些配 置分別放入 named.conf 和 rndc 的配置文件 rndc.conf 中,具體操作步驟如下所示。 (1)執(zhí)行 rndc-confgen 命令,得到密鑰和相應的配置。 # rndc-confgen # Start of rndc.conf key rndckey algorithm hmac-md5; secret TKuaJSEo58zohJBfrdF7dQ=; 310 第 14 章 ; options default-key rndckey; default-server ; default-port 953; ; # End of rndc.conf # # # # # # # # # # # DNS 服務器架設與應用 Use with the following in named.conf, adjusting the allow list as needed: key rndckey algorithm hmac-md5; secret TKuaJSEo58zohJBfrdF7dQ=; ; controls inet port 953 allow ; keys rndckey; ; ; End of named.conf (2)在/etc 目錄下創(chuàng)建 rndc.conf 文件,根據提示輸入上述輸出中不帶注釋的內容。 # vi /etc/rndc.conf key rndckey algorithm hmac-md5; secret TKuaJSEo58zohJBfrdF7dQ=; ; options default-key rndckey; default-server ; default-port 953; ; (3)根據提示,把下列內容放入原有的/etc/named.conf 文件后面。 key rndckey algorithm hmac-md5; secret TKuaJSEo58zohJBfrdF7dQ=; ; controls inet port 953 allow ; keys rndckey; ; ; (4)重啟 named 進程后,就可以使用 rndc 工具對 named 進行控制了。例如,下面的 命令可以使 named 重新裝載配置文件和區(qū)文件。 # rndc reload server reload successful # 此外,所有 rndc 支持的命令及幫助信息可以通過不帶參數(shù)的 rndc 命令顯示。 rootlocalhost named# rndc Usage: rndc -c config -s server -p port -k key-file -y key -V command command is one of the following: 311 第3篇 Linux 常見服務器架設篇 reload Reload configuration file and zones. reload zone class view status Display status of the server. recursing Dump the queries that are currently recursing (named.recursing) Restart the server. *restart * = not yet implemented Version: 9.3.3rc2 可以看到, rndc 提供了非常豐富的命令, 可以讓管理員在不重啟 named 進程的情況下, 完成大部分的 DNS 服務器管理工作。 說明:rndc 命令后面可以跟“-s”和“-p”選項連接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025勞動仲裁申請書合同爭議
- 2025版合同續(xù)簽協(xié)議書范本
- 2025年個體意外傷害保險合同范本
- 2025合同期內遭遇解雇補償
- 2025試用合同期合同(標準)
- 2025設備采購合同協(xié)議書模板
- 2025物業(yè)管理合同的寫作結構
- 2025標準融資租賃合同范本
- 親戚之間合作開店合同范例
- 從業(yè)勞動合同范例
- 部編版語文六年級下冊第四單元 復習課件
- 常用試敏藥品操作規(guī)程表
- 學位論文寫作及其學術規(guī)范課件
- 022旋翼干式塑料表殼水表
- 特殊旅客的航空服務文獻綜述
- 實驗模式動物斑馬魚左正宏
- 小學后進生轉化記錄表4篇-后進生轉化
- 鋼箱梁運輸與安裝施工方案
- DDI輔導員工邁向成功-輔導領導力系列
- 兼職教師任職承諾書
- 上海市2020年中考化學試卷(word版含解析)
評論
0/150
提交評論