由于天緣最近使用的比較多的是Red Hat 操作系統,而且自己也是在一臺Red Hat 9 下面配置好Bind 9的,因此在下面的例子中就以Red Hat AS3為配置平臺進行介紹。天緣所在單位的服務DNS是solaris操作系統,因此寫shell的時候,我爭取做到對Solaris也通用。由于各種因素,我沒能親自在Solaris上進行測試。下面的安裝過程對Red Hat和其他unix操作系統都沒問題,最后附上的自動安裝的shell腳本我只在Red Hat下測試成功,對Solaris大概也基本上顧及到了,如果大家在實際使用那個腳本的時候發現在Solaris下使用存在問題,請及時反饋到此文的留言中,以使我及時更正,方便其他讀者朋友。
首先,在開始以前,讓我們解釋一下標題中出現的chroot 和 bind這兩個詞。 先是chroot,事實上,在很多英文文章中,稱它為”jail”( 監牢, 拘留所, 監獄)。那么什么是”Jail”呢?簡單來說,就是把一個事物限制到某個范圍。大家都知道,有時候由于一個應用程序的bug、漏洞等問題,會導致該程序被攻擊者控制,取得相應用戶的權限,進而取得系統管理員級別的權限。例如Windows用戶對一些iis漏洞導致系統最高權限落入攻擊者之手的事情肯定時有耳聞。不管什么程序,都可能有bug/漏洞,為了防止這樣系統中某程序的漏洞導致系統最高權限被攻擊者竊取的事件發生,就需要限制該程序的權限。
所謂的限制,并不是不讓該程序運行,而是對程序運行時候可以使用的系統資源、用戶權限、所在目錄進行嚴格控制。這樣,在該程序被他人非法控制后,能具有的權限也相當有限,對系統也不會造成更大的危害。舉個形象的例子,架過ftp 服務器的朋友都知道,用戶憑借自己的用戶名/密碼可以進入到自己的空間內進行上傳/下載/添加刪除目錄等操作權限,而對其他用戶的目錄和系統的其他目錄無法進行任何操作(當然,這些權限是管理者合法授權的),這個就可以看做是一個Jail,把ftp用戶限制在自己的目錄里。在計算機界術語中,我們把這種對程序的Jail,特稱為”chroot”。因此題目中的chroot bind,大家可以理解成“權限受嚴格限制的bind”。
值得一提的是,chroot的程序并不能說是程序本身更安全了,它跟沒有chroot的程序比較,依然有著同樣多的bug/漏洞,依然會被攻擊者利用這些bug/漏洞進行攻擊并得逞。那么我們辛苦chroot是為了什么呢?是為了把損失降低到最小。打個比方,購買人生保險并不能保你一生平安,但是可以在你遇到麻煩的時候讓損失少一些。我們的chroot程序也是同樣的道理,當攻擊者取得了該程序的權限的時候,由于程序本身的權限被嚴格限制了,因此攻擊者無法造成更大的破壞,也無法奪取操作系統的最高權限。DNS 服務器由于是作域名解析之用,需要應付來自各地的很多訪問,且一般不限制來訪ip,因此安全隱患和被攻擊的可能性相當大。做一個Dns服務器的資料網絡上到處可尋,而作為網絡管理員,我們需要的除了域名解析,還有“安全”(天緣在以前的網管筆記中提到過,“安全是一種意識”,在做任何事情的時候都提醒自己注意安全,是一個稱職的網絡管理者所應該具備的)!
好了,接下來是第二個名詞“Bind”。Bind 是ISC 公司的軟件,而它也是目前世界上使用最普遍、最通用的DNS軟件,如果說Apache和IIS是兩分Web Server天下的話,那么Bind 不折不扣是DNS Server事實上的標準了。
接下來開始步入正題,開始我們的Bind安裝之旅。chroot方式安裝軟件,事實上是把一個軟件整體限制到根目錄下的一個子目錄中。即該軟件只在此目錄內具有權限,而一旦跳出該目錄就無任何權限了。在Bind 8的時候,想要把Bind的全部文件放到一個目錄下是一件很麻煩的事,而到了Bind 9開發公司ISC終于順應民心,不光讓Bind 軟件能方便地安裝到同一目錄下進行權限限制作業,而且連遠程控制軟件也加上了,真是超值奉送(稍安勿燥,后面會詳細介紹)。
向耐心看到這里的朋友致敬,下面我們立即開始正題:
新聞熱點
疑難解答