Unix操作系統(tǒng)管理客戶端
在Unix操作系統(tǒng)中,可以利用兩個文件來統(tǒng)一管理客戶端的連接。誰可以訪問Unix服務(wù)器,都有這兩個文件說了算。也就是說,這Hosts.allow與Hosts.deny兩個文件就好像是Unix服務(wù)器的“看門狗”,它決定了哪些客戶端可以訪問Unix服務(wù)器,哪些則不行。
筆者在描述這兩個文件的工作流程時,各位讀者不知道有沒有注意一個問題。當(dāng)客戶端的信息在兩個文件中都沒有定義的時候,Unix操作系統(tǒng)服務(wù)器最終是否允許連接呢?答案是可以連接。也就是說,Unix操作系統(tǒng)服務(wù)器有一個默認(rèn)的策略,當(dāng)在以上兩個文件中都找不到相關(guān)的紀(jì)錄時,則服務(wù)器最終是允許客戶端進(jìn)行連接的。
這就會造成一個安全的隱患。如上面財務(wù)管理軟件這個案例。企業(yè)可能只允許四個財務(wù)人員與系統(tǒng)管理員可以連接到財務(wù)管理軟件服務(wù)器。為此Unix操作系統(tǒng)管理員就只在Hosts.allow文件中定義了這五個用戶的信息。而在hosts.deny文件中沒有定義其他信息。此時采購部的某個用戶其能否訪問這臺Unix服務(wù)器呢?首先Unix操作系統(tǒng)會查詢hosts.allow文件,發(fā)現(xiàn)沒有這個客戶端的相關(guān)信息。此時Unix服務(wù)器就會去查詢hosts.deny文件的信息。
由于在這個文件中也沒有明確定義用戶不能夠訪問Unix服務(wù)器,故Unix操作系統(tǒng)又會放行。最后的結(jié)果就是采購用戶可以訪問財務(wù)管理軟件的服務(wù)器系統(tǒng)。這個結(jié)果顯然跟系統(tǒng)管理員的本意不符。
筆者上面談到過,這兩個文件的處理機(jī)制跟思科防火墻的訪問控制列表類似。但是在這方面則是一個最大的不同。在思科路由器等網(wǎng)絡(luò)設(shè)備中的防火控制列表,其默認(rèn)情況下是全部拒絕的。也就是說,如果其前面沒有匹配選項的話,則其最后采用拒絕全部用戶連接電策略。而現(xiàn)在Unix操作系統(tǒng)對這個兩個文件的處理過程則剛好相反。默認(rèn)情況下,其是允許用戶進(jìn)行連接的。
即如果前面兩個文件都沒有客戶端信息的話,則最終將允許這個客戶端連接到Unix服務(wù)器中。這顯然對于Unix操作系統(tǒng)服務(wù)器不怎么安全。為了避免這種情況,筆者建議在hosts.deny文件的尾部最好能夠添加ALL:ALL一句。
這個表示默認(rèn)情況下拒絕所有客戶端連接到Unix操作系統(tǒng)服務(wù)器中。如此的話,第一個文件定義允許的客戶端;第二個文件定義拒絕的客戶端(默認(rèn)情況下為所有客戶端都拒絕連接)。這就可以保證只有第一個文件中定義的客戶端才可以連接到Unix服務(wù)器,就不會有漏網(wǎng)之魚了。當(dāng)然這是對于安全要求比較要的企業(yè)或者服務(wù)器來說。
而對于像文件服務(wù)器這種多個部門需要用到的管理軟件,則不能夠這么設(shè)置。因為其默認(rèn)情況下是所有客戶端都可以連接到文件服務(wù)器,故要把hosts.deny文件中的ALL:ALL參數(shù)去掉。
如果Unix操作系統(tǒng)需要限制某些客戶端的連接(如某個員工要離職了,為了防止其對文件服務(wù)器中的文件進(jìn)行故意損壞,就會中斷這個員工跟服務(wù)器的連接),則可以以顯示的方式在hosts.deny這個文件中加入這個信息。拒絕這個客戶端再次連接到Unix服務(wù)器中。