那有什么方法可以提高這個IPC$共享的安全性呢?“堵”與“疏”,可供大家選擇。
第一招:堵,取消IPC$共享
取消其共享,顯然這是杜絕IPC$安全隱患的最根本的方法??墒?,由于其跟一般的共享文件夾不同,不是很輕易就可以取消共享。如在上面這個共享文件管理窗口,我們在“IPC$”條目上右鍵單擊,可以選擇“取消共享”??墒牵@么操作的話,系統(tǒng)會提示一個錯誤信息“服務器服務要求有IPC$,他不能被刪除”。所以說,要取消IPC$共享的話,利用常規(guī)的方法還不行。
如我們可以通過注冊表的設置,來取消這個IPC$共享。
1、 在開始菜單的運行處,輸入“regedit”命令,打開注冊表編輯器。
2、 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters。找到這一項內(nèi)容。
3、 如果采用的是2003等服務器操作系統(tǒng),則在上面這個項目下,要建立一個名叫“AutoShareServer”的雙字節(jié)鍵值項,并把這個項值設置為0。如果你采用的是普通的工作站系統(tǒng),則需要建立一個名叫“AutoShareWKs”的雙字節(jié)鍵值項。這個項值也設置為0。
4、 然后重新啟動系統(tǒng)。如此的話,這個名叫IPC$共享就被取消了。
不過在利用注冊表強制取消IPC$默認共享的時候,需要注意兩個問題。
一是,這個設置不僅會取消IPC$默認共享,而且會把其他所有的默認共享都取消掉。如在2000的操作系統(tǒng)上,不僅會有IPC$默認共享。而且還會有C$等磁盤默認共享。采用這種方式的話,也會把磁盤默認共享禁用掉。
二是,正如上面這個提示所說,有些服務器系統(tǒng)的服務需要使用IPC$默認共享。若把這個共享取消掉,則有可能會給相關服務帶來不利影響,甚至造成服務無法正常啟動。
所以,在實際工作中,筆者是不建議采用這種“堵”的方法,強制把IPC$默認共享關掉。筆者建議采取下面這種“疏”的方式,不關掉其默認共享,而是采用“限制使用”的方式,來提高IPC$默認共享的安全性。
第二招:疏,限制使用
有些服務,必須要求啟動IPC$共享命名管道,特別是一些微軟出品的應用軟件。如微軟的SQL Server數(shù)據(jù)庫,必須要啟用IPC$共享命名管道。否則的話,數(shù)據(jù)庫就無法正常運行。IPC$共享命名管道,也是SQL Server數(shù)據(jù)庫與微軟服務器操作系統(tǒng)無縫集成的一個通道。所以,我們一味的停用IPC$共享命名通道,雖然提高了服務器操作系統(tǒng)的安全性,但是,也會使得一些應用服務無法使用。這種“玉石共焚”的方法,不是上上之策。
筆者建議通過“限制使用”的方式,來提高IPC$共享命名管道的安全。其實,這也是比較簡單的,我們可以通過注冊表來實現(xiàn)這個需求。
我們利用上面的方法打開注冊表編輯器,然后依次找到下面的這一項內(nèi)容“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa”。在這一項內(nèi)容中,有一個叫做restrictanonymous的鍵值。這個鍵值,由三個可選的參數(shù)。如果設置為0,就是沒有限制,任何用戶,包括匿名用戶都可以使用這個共享命名管道。這是系統(tǒng)的默認值。如果設置為1,則表示匿名用戶無法列舉本機的用戶列表。如果設置為2,則表示匿名用戶無法連接這臺主機的IPC$共享。一般情況下,是不建議設置為2,因為這會導致依賴于共享命名管道的一些應用服務無法正常啟動。
不過以上設置只適用于微軟早期的操作系統(tǒng)。在2003的服務器系統(tǒng)中,有一個特殊的鍵,叫做“restrictanonymoussam”。在后期的服務器系統(tǒng)中,要利用這個鍵來限制使用共享命名管道。如下圖:
這個鍵也有兩個值,0與1。1是系統(tǒng)的默認值,表示匿名用戶無法列舉主機的用戶列表。0表示匿名用戶不但不能夠列舉主機的用戶列表,而且也不能夠使用默認共享命名管道。所以,一般情況下,只要把這個默認值設置為1。
對這個“疏”的方法,筆者也有如下建議:
首先,根據(jù)服務器系統(tǒng)上采用的應用服務來判斷需要如何進行設置。如果服務器系統(tǒng)上運行了SQL Server數(shù)據(jù)庫,則需要把這個值設置為1(如果是2003的服務器系統(tǒng))。也就是說,不要讓匿名用戶列舉服務器的用戶列表,但是允許匿名用戶使用它。這一方面可以讓SQL Server等數(shù)據(jù)庫系統(tǒng)正常的 啟動,同時,對服務器的安全也具有一定的保障。
其次,對于一些不需要IPC$命名管道的應用程序,也需要謹慎設置。有一些跨平臺的應用程序,如Oracle數(shù)據(jù)庫等,可以不使用IPC$命名管道。此時,從理論上說,可以取消IPC$命名管道,從而從根本上杜絕IPC$命名管道攻擊,提高服務器的安全性。不過,在取消之前,最好能夠進行嚴格的測試。因為往往在一臺服務器中,不光光就運行一個應用服務。有時候Oracle數(shù)據(jù)庫可能不需要這個IPC$共享,但是,其他應用服務就需要他。所以,是否需要禁用這個IPC$命名管道,企業(yè)服務器管理員需要測試后再作定奪。
總之,在對待IPC$默認共享安全上,筆者的態(tài)度是“堵不如疏”,禁用不如限用。俗話說,不能夠因噎廢食。只要合理限制匿名用戶對IPC$默認共享的使用,就可以保障其安全性。同時,也不會對其他的應用服務產(chǎn)生不良的影響。