如果你曾經配置過Windows NT Server或是Windows 2000 Server,你也許發現這些微軟的產品缺省並不是最安全的。雖然微軟提供了很多安全機制,但是依然需要你來實現它們。然而當微軟發布Windows Server 2003的時候,改變了以往的哲學體系。新的理念是,服務器缺省就應該是安全的。這的確是一個不錯的理念,不過微軟貫徹得還不夠徹底。雖然缺省的Windows 2003安裝絕對比確省的Windows NT或 Windows 2000安裝安全許多,但是它還是存在著一些不足。下面讓我們來討論如何讓Windows Server 2003更加安全。
理解你的角色
理解服務器角色絕對是安全進程中不可或缺的一步。Windows Server可以被配置為多種角色,Windows Server 2003 可以作為域控制器、成員服務器、基礎設施服務器、文件服務器、打印服務器、IIS服務器、IAS服務器、終端服務器等等。一個服務器甚至可以被配置為上述角色的組合。
現在的問題是每種服務器角色都有相應的安全需求。例如,如果你的服務器將作為IIS服務器,那麼你將需要開啟IIS服務。然而,如果服務器將作為獨立的文件或者打印服務器,啟用IIS服務則會帶來巨大的安全隱患。
我之所以在這裡談到這個的原因是我不能給你一套在每種情況下都適用的步驟。服務器的安全應該隨著服務器角色和服務器環境的改變而改變。
因為有很多強化服務器的方法,所以我將以配置一個簡單但安全的文件服務器為例來論述配置服務器安全的可行性步驟。我將努力指出當服務器角色改變時你將要做的。請諒解這並不是一個涵蓋每種角色服務器的完全指南。
物理安全
為了實現真正意義上的安全,你的服務器必須被放置在一個安全的位置。通常地,這意味著將將服務器放置在上了鎖的門後。物理安全是相當重要的,因為現有的許多管理和災難恢復工具同樣也可以被黑客利用。任何擁有這樣工具的人都能在物理接入到服務器的時候攻擊服務器。唯一能夠避免這種攻擊的方法是將服務器放置在安全的地點。對於任何角色的Windows Server 2003,這都是必要的。
創建基線
除了建立良好的物理安全以外,我能給你的最佳建議是,在配置一系列Windows Server 2003的時候,應該確定你的安全需求策略,並立即部署和執行這些策略 。
實現這一目的最好的方法是創建一個安全基線(security baseline)。安全基線是文檔和公認安全設置的清單。在大多數情況下,你的基線會隨著服務器角色的不同而產生區別。因此你最好創建幾個不同的基線,以便將它們應用到不同類型的服務器上。例如,你可以為文件服務器制定一個基線,為域控制器制定另一個基線,並為IAS服務器制定一個和前兩者都不同的基線。
Windows 2003包含一個叫"安全配置與分析"的工具。這個工具讓你可以將服務器的當前安全策略與模板文件中的基線安全策略相比較。你可以自行創建這些模板或是使用內建的安全模板。
安全模板是一系列基於文本的INF文件,被保存在%SYSTEMROOT%\SECUR99vY|TEMPLATES 文件夾下。檢查或更改這些個體模板最簡單的方法是使用管理控制台(MMC)。
要打開這個控制
台,在RUN提示下輸入MMC命令,在控制台加載後,選擇添加/刪除管理單元屬性命令,Windows就會顯示添加/刪除管理單元列表。點擊"添加"按鈕,你將會看到所有可用管理單元的列表。選擇安全模板管理單元,接著依次點擊添加,關閉和確認按鈕。
在安全模板管理單元加載後,你就可以察看每一個安全模板了。在遍歷控制台樹的時候,你會發現每個模板都模仿組策略的結構。模板名反映出每個模板的用途。例如,HISECDC模板就是一個高安全性的域控制器模板。
如果你正在安全配置一個文件服務器,我建議你從SECUREWS模板開始。在審查所有的模板設置時,你會發現盡管模板能被用來讓服務器更加安全,但是不一定能滿足你的需求。某些安全設置可能過於嚴格或過於松散。我建議你修改現有的設置,或是創建一個全新的策略。通過在控制台中右擊C:\WINDOWS\Security\Templates文件夾並在目標菜單中選擇新建模板命令,你就可以輕輕松松地創建一個新的模板。
在創建了符合需求的模板後,回到添加/刪除管理單元屬性面板,並添加一個安全配置與分析的管理單元。在這個管理單元加載後,右擊"安全配置與分析"容器,接著在結果菜單中選擇"打開數據庫"命令,點擊"打開"按鈕,你可以使用你提供的名稱來創建必要的數據庫。
接下來,右擊"安全配置與分析"容器並在快捷菜單中選擇"導入模板"命令。你將會看到所有可用模板的列表。選擇包含你安全策略設置的模板並點擊打開。在模板被導入後,再次右擊"安全配置與分析"容器並在快捷菜單中選擇"現在就分析計算機"命令。Windows將會提示你寫入錯誤日志的位置,鍵入文件路徑並點擊"確定"。
在這樣的情況下,Windows將比較服務器現有安全設置和模板文件裡的設置。你可以通過"安全配置與分析控制台"看到比較結果。每一條組策略設置顯示現有的設置和模板設置。
在你可以檢查差異列表的時候,就是執行基於模板安全策略的時候了。右擊"安全配置與分析"容器並從快捷菜單中選擇"現在就配置計算機"命令。這一工具將會立即修改你計算機的安全策略,從而匹配模板策略。
組策略實際上是層次化的。組策略可以被應用到本地計算機級別、站點級別、域級別和OU級別。當你實現基於模板的安全之時,你正在在修改計算機級別的組策略。其他的組策略不會受到直接影響,盡管最終策略可能會反映變化,由於計算機策略設置被更高級別的策略所繼承。
修改內建的用戶賬號
多年以來,微軟一直在強調最好重命名Administrator賬號並禁用Guest賬號,從而實現更高的安全。在Windows Server 2003中,Guest 賬號是缺省禁用的,但是重命名Administrator賬號仍然是必要的,因為黑客往往會從Administrator賬號入手開始進攻。
有很多工具通過檢查賬號的SID來尋找賬號的真實名稱。不幸的是,你不能改變用戶的SID,也就是說基本上沒有防止這種工具來檢測Administrator賬號真實名稱的辦法。即便如此,我還是鼓勵每個人重命名Administrator 賬號並修改賬號的描述信息,有兩個原因:
首先,诳橢械男率摯贍懿恢勒饫喙ぞ叩拇嬖诨蛘卟換崾褂盟恰F浯危孛鸄dministrator賬號為一個獨特的名稱讓你能更方便的監控黑客對此賬號的進攻。
另一個技巧適用於成員服務器。成員服務器有他們自己的內建本地管理員賬號,完全獨立於域中的管理
員賬號。你可以配置每個成員服務器使用不同的用戶名和密碼。如果某人猜測出你的本地用戶名和密碼,你肯定不希望他用相同的賬號侵犯其他的服務器。當然,如果你擁有良好的物理安全,誰也不能使用本地賬號取得你服務器的權限。
服務賬號
Windows Server 2003在某種程度上最小化服務賬號的需求。即便如此,一些第三方的應用程序仍然堅持傳統的服務賬號。如果可能的話,盡量使用本地賬號而不是域賬號作為服務賬號,因為如果某人物理上獲得了服務器的訪問權限,他可能會轉儲服務器的LSA機密,並洩露密碼。如果你使用域密碼,森林中的任何計算機都可以通過此密碼獲得域訪問權限。而如果使用本地賬戶,密碼只能在本地計算機上使用,不會給域帶來任何威脅。
系統服務
一個基本原則告訴我們,在系統上運行的代碼越多,包含漏洞的可能性就越大。你需要關注的一個重要安全策略是減少運行在你服務器上的代碼。這麼做能在減少安全隱患的同時增強服務器的性能。
在Windows 2000中,缺省運行的服務有很多,但是有很大一部分服務在大多數環境中並派不上用場。事實上,Windows 2000的缺省安裝甚至包含了完全操作的IIS服務器。而在Windows Server 2003中,微軟關閉了大多數不是絕對必要的服務。即使如此,還是有一些有爭議的服務缺省運行。
其中一個服務是分布式文件系統(DFS)服務。DFS服務起初被設計簡化用戶的工作。DFS允許管理員創建一個邏輯的區域,包含多個服務器或分區的資源。對於用戶,所有這些分布式的資源存在於一個單一的文件夾中。
我個人很喜歡DFS,尤其因為它的容錯和可伸縮特性。然而,如果你不准備使用DFS,你需要讓用戶了解文件的確切路徑。在某些環境下,這可能意味著更強的安全性。在我看來,DFS的利大於弊。
另一個這樣的服務是文件復制服務(FRS)。FRS被用來在服務器之間復制數據。它在域控制器上是強制的服務,因為它能夠保持SYSVOL文件夾的同步。對於成員服務器來說,這個服務不是必須的,除非運行DFS。
如果你的文件服務器既不是域控制器,也不使用DFS,我建議你禁用FRS服務。這麼做會減少黑客在多個服務器間復制惡意文件的可能性。
另一個需要注意的服務是Print Spooler服務(PSS)。該服務管理所有的本地和網絡打印請求,並在這些請求下控制所有的打印工作。所有的打印操作都離不開這個服務,它也是缺省被啟用的。
不是每個服務器都需要打印功能。除非服務器的角色是打印服務器,你應該禁用這個服務。畢竟,專用文件服務器要打印服務有什麼用呢?通常地,沒有人會在服務器控制台工作,因此應該沒有必要開啟本地或網絡打印。
我相信通常在災難恢復操作過程中,打印錯誤消息或是事件日志都是十分必要的。然而,我依然建議在非打印服務器上簡單的關閉這一服務。
信不信由你,PSS是最危險的Windows組件之一。有不計其數的木馬更換其可執行文件。這類攻擊的動機是因為它是統級的服務,因此擁有很高的特權。因此任何侵入它的木馬能夠獲得這些高級別的特權。為了防止此類攻擊,還是關掉這個服務吧