精解——安全配置 Windows 2000伺服器

來源:互聯網
上載者:User
window|安全|伺服器  目前,WIN2000 SERVER是比較流行的伺服器作業系統之一,但是要想安全的配置微軟的這個作業系統,卻不是一件容易的事。本文試圖對win2000 SERVER的安全配置進行初步的探討。  
  一、定製自己的WIN2000 SERVER:   
  1.版本的選擇:Win2000有各種語言的版本,對於我們來說,可以選擇英文版或簡體中文版,我強烈建議:在語言不成為障礙的情況下,請一定使用英文版。要知道,微軟的產品是以Bug & Patch而著稱的,中文版的Bug遠遠多於英文版,而補丁一般還會遲至少半個月(也就是說一般微軟公布了漏洞後你的機子還會有半個月處於無保護狀況)   
  2.組件的定製:  
  Win2000在預設情況下會安裝一些常用的組件,但是正是這個預設安裝是極度危險的(米特尼科說過,他可以進入任何一台預設安裝的伺服器,我雖然不敢這麼說,不過如果你的主機是Win2000 SERVER的預設安裝,我可以告訴你,你死定了)   
  你應該確切的知道你需要哪些服務,而且僅僅安裝你確實需要的服務,根據安全原則,最少的服務+最小的許可權=最大的安全。   
  典型的WEB伺服器需要的最小工具選擇是:只安裝IIS的Com Files,IIS Snap-In,WWW Server組件。如果你確實需要安裝其他組件,請謹慎,特別是:Indexing Service, FrontPage 2000 Server Extensions, Internet Service Manager (HTML)這幾個危險服務。   
  3.管理應用程式的選擇:   
  選擇一個好的遠端管理軟體是非常重要的事,這不僅僅是安全方面的要求,也是應用方面的需要。 
  Win2000的Terminal Service是基於RDP(遠端桌面通訊協定)的遠端控制軟體,他的速度快,操作方便,比較適合用來進行常規操作。   
  但是,Terminal Service也有其不足之處,由於它使用的是虛擬桌面,再加上微軟編程的不嚴謹,當你使用Terminal Service進行安裝軟體或重起伺服器等與真實案頭互動的操作時,往往會出現哭笑不得的現象,例如:使用Terminal Service重起微軟的證明伺服器(Compaq, IBM等)可能會直接關機。 
  所以,為了安全起見,我建議你再配備一個遠端控制軟體作為輔助,和Terminal Service互補,象PcAnyWhere就是一個不錯的選擇。   
  二、正確安裝WIN2000 SERVER:   
  1.分區和邏輯盤的分配,有一些朋友為了省事,將硬碟僅僅分為一個邏輯盤,所有的軟體都裝在C驅上,這是很不好的,建議最少建立兩個分區,一個系統磁碟分割,一個應用程式分區,這是因為,微軟的IIS經常會有泄漏源碼/溢出的漏洞,如果把系統和IIS放在同一個磁碟機會導致系統檔案的泄漏甚至入侵者遠程擷取ADMIN。   
  推薦的安全配置是建立三個邏輯磁碟機,第一個大於2G,用來裝系統和重要的記錄檔,第二個放IIS,第三個放FTP,這樣無論IIS或FTP出了安全性漏洞都不會直接影響到系統目錄和系統檔案。   
  要知道,IIS和FTP是對外服務的,比較容易出問題。而把IIS和FTP分開主要是為了防止入侵者上傳程式並從IIS中運行。(這個可能會導致程式開發人員和編輯的苦惱,管他呢,反正你是管理員)   
  2.安裝順序的選擇:   
  不要覺得:順序有什麼重要?只要安裝好了,怎麼裝都可以的。   
  錯!win2000在安裝中有幾個順序是一定要注意的:   
  首先,何時接入網路:Win2000在安裝時有一個漏洞,在你輸入Administrator密碼後,系統就建立了ADMIN$的共用,但是並沒有用你剛剛輸入的密碼來保護它,這種情況一直持續到你再次啟動後,在此期間,任何人都可以通過ADMIN$進入你的機器;同時,只要安裝一完成,各種服務就會自動運行,而這時的伺服器是滿身漏洞,非常容易進入的,因此,在完整安裝並配置好win2000 SERVER之前,一定不要把主機接入網路。   
  其次,補丁的安裝:補丁的安裝應該在所有應用程式安裝完之後,因為補丁程式往往要替換/修改某些系統檔案,如果先安裝補丁再安裝應用程式有可能導致補丁不能起到應有的效果,例如:IIS的HotFix就要求每次更改IIS的配置都需要安裝 
  三、安全配置WIN2000 SERVER:   
  即使正確的安裝了WIN2000 SERVER,系統還是有很多的漏洞,還需要進一步進行細緻地配置。   
  1.連接埠:   
  連接埠是電腦和外部網路相連的邏輯介面,也是電腦的第一道屏障,連接埠配置正確與否直接影響到主機的安全,一般來說,僅開啟你需要使用的連接埠會比較安全,配置的方法是在網卡屬性-TCP/IP-進階-選項-TCP/IP篩選中啟用TCP/IP篩選,不過對於win2000的連接埠過濾來說,有一個不好的特性:只能規定開哪些連接埠,不能規定關閉哪些連接埠,這樣對於需要開大量連接埠的使用者就比較痛苦。   
  2.IIS:   
  IIS是微軟的組件中漏洞最多的一個,平均兩三個月就要出一個漏洞,而微軟的IIS預設安裝又實在不敢恭維,所以IIS的配置是我們的重點,現在大家跟著我一起來:    
  首先,把C盤那個什麼Inetpub目錄徹底刪掉,在D盤建一個Inetpub(要是你不放心用預設目錄名也可以改一個名字,但是自己要記得)在IIS管理器中將主目錄指向D:\Inetpub;   
  其次,那個IIS安裝時預設的什麼scripts等虛擬目錄一概刪除(罪惡之源呀,忘了http://www.target.com/scripts/..%c1%1c../winnt/system32/cmd.exe了?我們雖然已經把Inetpub從系統硬碟挪出來了,但是還是小心為上),如果你需要什麼許可權的目錄可以自己慢慢建,需要什麼許可權開什麼。(特別注意寫入權限和執行程式的許可權,沒有絕對的必要千萬不要給)   
  3: 應用程式配置:   
  在IIS管理器中刪除必須之外的任何無用映射,必須指的是ASP, ASA和其他你確實需要用到的檔案類型,例如你用到stml等(使用server side include),實際上90%的主機有了上面兩個映射就夠了,其餘的映射幾乎每個都有一個淒慘的故事:htw, htr, idq, ida……想知道這些故事?去查以前的漏洞列表吧。   
  什嗎?找不到在哪裡刪?   
  在IIS管理器中右擊主機->屬性->WWW服務 編輯->主目錄 配置->應用程式對應,然後就開始一個個刪吧(裡面沒有全選的,嘿嘿)。接著在剛剛那個視窗的應用程式調試書籤內將指令碼錯誤訊息改為發送文本(除非你想ASP出錯的時候使用者知道你的程式/網路/資料庫結構)錯誤文本寫什嗎?隨便你喜歡,自己看著辦。點擊確定退出時別忘了讓虛擬網站繼承你設定的屬性。   
  為了對付日益增多的cgi漏洞掃描器,還有一個小技巧可以參考,在IIS中將HTTP404 Object Not Found出錯頁面通過URL重新導向到一個定製HTM檔案,可以讓目前絕大多數CGI漏洞掃描器失靈。其實原因很簡單,大多數CGI掃描器在編寫時為了方便,都是通過查看返回頁面的HTTP代碼來判斷漏洞是否存在的,例如,著名的IDQ漏洞一般都是通過取1.idq來檢驗,如果返回HTTP200,就認為是有這個漏洞,反之如果返回HTTP404就認為沒有,如果你通過URL將HTTP404出錯資訊重新導向到HTTP404.htm檔案,那麼所有的掃描無論存不存在漏洞都會返回HTTP200,90%的CGI掃描器會認為你什麼漏洞都有,結果反而掩蓋了你真正的漏洞,讓入侵者茫然無處下手(武俠小說中常說全身漏洞反而無懈可擊,難道說的就是這個境界?)不過從個人角度來說,我還是認為紮紮實實做好安全設定比這樣的小技巧重要的多。   
  最後,為了保險起見,你可以使用IIS的備份功能,將剛剛的設定全部備份下來,這樣就可以隨時恢複IIS的安全配置。還有,如果你怕IIS負荷過高導致伺服器滿負荷死機,也可以在效能中開啟CPU限制,例如將IIS的最大CPU使用率限制在70%。    
  4.帳號安全:   
  Win2000的帳號安全是另一個重點,首先,Win2000的預設安裝允許任何使用者通過空使用者得到系統所有帳號/共用列表,這個本來是為了方便區域網路使用者共用檔案的,但是一個遠端使用者也可以得到你的使用者列表並使用暴力法破解使用者密碼。很多朋友都知道可以通過更改註冊表Local_Machine ystem\CurrentControlSet\Control\LSA-RestrictAnonymous = 1來禁止139空串連, 
  實際上win2000的本地安全性原則(如果是網域服務器就是在網域服務器安全和域安全性原則中)就有這樣的選項RestrictAnonymous(匿名串連的額外限制),這個選項有三個值:   
  0:None. Rely on default permissions(無,取決於預設的許可權)   
  1:Do not allow enumeration of SAM accounts and shares(不允許枚舉SAM帳號和共用)  
  2:No access without explicit anonymous permissions(沒有顯式匿名許可權就不允許訪問)   
  0這個值是系統預設的,什麼限制都沒有,遠端使用者可以知道你機器上所有的帳號、組資訊、共用目錄、網路傳輸 NetServerTransportEnum等等,對伺服器來說這樣的設定非常危險。   
  1 這個值是只允許非NULL使用者存取SAM帳號資訊和共用資訊。   
  2 這個值是在win2000中才支援的,需要注意的是,如果你一旦使用了這個值,你的共用估計就全部完蛋了,所以我推薦你還是設為1比較好。 好了,入侵者現在沒有辦法拿到我們的使用者列表,我們的賬戶安全了……   
  慢著,至少還有一個賬戶是可以跑密碼的,這就是系統內建的administrator,怎麼辦?我改改改,在電腦管理->使用者帳號中右擊administrator然後改名,改成什麼隨便你,只要能記得就行了。 
  不對不對,我都已經改了使用者名稱了,怎麼還是有人跑我管理員的密碼?幸好我的密碼夠長,但是這也不是辦法呀?嗯,那肯定是在本地或者Terminal Service的登入介面看到的,好吧,我們再來把HKEY_LOCAL_MACHINE OFTWARE\Microsoft\ WindowsNT\CurrentVersion\winlogon項中的Don’t Display Last User Name串資料改成1,這樣系統不會自動顯示上次的登入使用者名稱。   
  將伺服器註冊表HKEY_LOCAL_ MACHINE OFTWARE\Microsoft\ WindowsNT\CurrentVersion\Winlogon項中的Don‘t Display Last User Name串資料修改為1,隱藏上次登陸控制台的使用者名稱。   
  5.安全日誌:   
  我遇到過這樣的情況,一台主機被別人入侵了,系統管理員請我去追查兇手,我登入進去一看:安全日誌是空的,倒,請記住:Win2000的預設安裝是不開任何安全性稽核的!那麼請你到本地安全性原則->稽核原則中開啟相應的審核,推薦的審核是:   
  賬戶管理 成功 失敗   
  登入事件 成功 失敗   
  對象訪問 失敗   
  策略更改 成功 失敗  
  特權使用 失敗   
  系統事件 成功 失敗   
  目錄服務訪問 失敗   
  賬戶登入事件 成功 失敗   
  審核項目少的缺點是萬一你想看發現沒有記錄那就一點都沒轍;審核項目太多不僅會佔用系統資源而且會導致你根本沒空去看,這樣就失去了審核的意義。    
  與之相關的是:   
  在賬戶策略->密碼原則中設定:   
  密碼複雜性要求 啟用   
  密碼長度最小值 6位   
  強制密碼曆史 5次   
  最長存留期 30天   
  在賬戶策略->賬戶鎖定策略中設定:   
  賬戶鎖定 3次錯誤登入  
  鎖定時間 20分鐘   
  複位鎖定計數 20分鐘    
  同樣,Terminal Service的安全日誌預設也是不開的,我們可以在Terminal Service Configration(遠程服務配置)-許可權-進階中配置安全性稽核,一般來說只要記錄登入、登出事件就可以了。    
  6.目錄和檔案許可權:    
   為了控制好伺服器上使用者的許可權,同時也為了預防以後可能的入侵和溢出,我們還必須非常小心地設定目錄和檔案的存取權限,NT的存取權限分為:讀取、寫入、讀取及執行、修改、列目錄、完全控制。在預設的情況下,大多數的檔案夾對所有使用者(Everyone這個組)是完全敞開的(Full Control),你需要根據應用的需要進行許可權重設。   
  在進行許可權控制時,請記住以下幾個原則:   
  1>限是累計的:如果一個使用者同時屬於兩個組,那麼他就有了這兩個組所允許的所有許可權;   
  2>拒絕的許可權要比允許的許可權高(拒絕策略會先執行)如果一個使用者屬於一個被拒絕訪問某個資源的組,那麼不管其他的使用權限設定給他開放了多少許可權,他也一定不能訪問這個資源。所以請非常小心地使用拒絕,任何一個不當的拒絕都有可能造成系統無法正常運行;   
  3>檔案許可權比檔案夾許可權高(這個不用解釋了吧?)   
  4>利用使用者組來進行許可權控制是一個成熟的系統管理員必須具有的優良習慣之一;   
  5>僅給使用者真正需要的許可權,許可權的最小化原則是安全的重要保障;    
  7:預防DoS:   
  在註冊表HKLM YSTEM\CurrentControlSet ervices\Tcpip\Parameters中更改以下值可以協助你防禦一定強度的DoS攻擊   
  SynAttackProtect REG_DWORD 2   
  EnablePMTUDiscovery REG_DWORD 0   
  NoNameReleaseOnDemand REG_DWORD 1   
  EnableDeadGWDetect REG_DWORD 0   
  KeepAliveTime REG_DWORD 300,000   
  PerformRouterDiscovery REG_DWORD 0   
  EnableICMPRedirects REG_DWORD 0    
  ICMP攻擊:ICMP的風暴攻擊和片段攻擊也是NT主機比較頭疼的攻擊方法,其實應付的方法也很簡單,win2000內建一個Routing & Remote Access工具,這個工具初具路由器的雛形(微軟真是的,什麼都要做?聽說最近又要做防火牆了)在這個工具中,我們可以輕易的定義輸入輸出包過濾器,例如,設定輸入ICMP代碼255丟棄就表示丟棄所有的外來ICMP報文。 
  四、需要注意的一些事:   
  實際上,安全和應用在很多時候是矛盾的,因此,你需要在其中找到平衡點,畢竟伺服器是給使用者用而不是做OPEN HACK的,如果安全原則妨礙了系統應用,那麼這個安全原則也不是一個好的原則。網路安全是一項系統工程,它不僅有空間的跨度,還有時間的跨度。很多朋友(包括部分系統管理員)認為進行了安全配置的主機就是安全的,其實這其中有個誤區:我們只能說一台主機在一定的情況一定的時間上是安全的,隨著網路結構的變化、新的漏洞的發現,管理員/使用者的操作,主機的安全狀況是隨時隨地變化著的,只有讓安全意識和安全制度貫穿整個過程才能做到真正的安全。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.