歡迎您光臨本站 登入註冊首頁

概述

固基於Windows2003平台的WEB伺服器基於Windows平台下IIS運行的網站總給人一種感覺就是脆弱。早期的IIS確實存在很多問題,不過我個人認為自從WindowsServer2003發布后,……

加固基於Windows 2003平台的WEB伺服器

基於Windows平台下IIS運行的網站總給人一種感覺就是脆弱。早期的IIS確實存在很多問題,不過我個人認為自從Windows Server 2003發布后,IIS6及Windows Server 2003新的安全特性、更加完善的管理功能和系統的穩定性都有很大的增強。雖然從Windows Server 2003上可以看到微軟不準備再發展ASP,特別是不再對Access資料庫的完好支持,但是面對它的那些優勢迫使我不得不捨棄Windows 2000 Server。況且我也不需要運行太多的ASP+Access,因為我的程序都是PHP+MySQL(說實話我不喜歡微軟的ASP和ASPNET),而且我確實信賴Windows Server 2003!

  伺服器、網站,看到這些詞大家都會想到什麼,不只是性能更加關注的是它的安全問題。很多人都無法做到非常完美的安全加固,因為大部分的資料都來源網際網路,而網際網路的資料總不是那麼詳盡,畢竟每個伺服器的應用環境及運行程序不同。

  我從事網際網路這個行業只有2年時間,其間遇到了很多問題,我所管理的伺服器部分是開放式(PUBLIC)的,它是向網際網路的用戶敞開的,所以我所面臨的問題就更加的多!安全性首當其要,其次是系統的穩定性,最後才是性能。要知道伺服器上存在很多格式各樣的應用程序,有些程序本身就有缺陷,輕者造成伺服器當機,嚴重的會危及到伺服器的整個數據安全。

  舉個例子,有一台運行著300多個網站的Windows 2000 Server,一段時間裡它經常Down機,發現內存泄漏特別快,幾分鐘時間內存使用立刻飆升到900M甚至高達1.2G,這個時候通過遠程是無法訪問伺服器了,但是伺服器系統本身卻還在運行著。這個問題著實讓我頭疼了很長一段時間,因為如果要排查故障就要從這些網站入手,而網站的數量阻礙了我的解決進度。後來通過Filemon監控文件讀取來縮小排查範圍,之後對可疑網站進行隔離,最終找到故障點並解決。要知道一段小小的代碼就可以讓運行IIS5的 Windows 2000 Server 掛掉!而在Windows Server 2003下,應用程序的級別低中高級變更為了程序池,這樣我們就可以對一個池進行設置對內存和CPU進行保護。它的這一特性讓我減輕了很多的工作量並且系統也穩定了很多。

  另外嚴重的就是安全性的問題了,無論任何文章都有一個宗旨就是盡量在伺服器少開放埠,並開放必要的服務,禁止安裝與伺服器無關的應用程序。在 Windows 2000 Server中,目錄許可權都是Everyone,很多服務都是以SYSTEM許可權來運行的,如Serv-U FTP 這款出色的FTP伺服器平台曾經害苦了不少人,它的溢出漏洞可以使入侵者輕鬆的獲取系統完全控制權,如果做到呢?就是因為Serv-U FTP服務使用SYSTEM許可權來運行,SYSTEM的權利比Administrator的權利可大的多,註冊表SAM項它是可以直接訪問和修改的,這樣入侵者便利用這一特性輕鬆在註冊表中克隆一個超級管理員賬號並獲取對系統的完全控制許可權。

  我的目標:加固WEB伺服器系統,使之提高並完善其穩定性及安全性。

  系統環境:Windows Server 2003 Enterprise Edition With Service Pack 1(以下簡稱W2k3SP1),WEB平台為IIS6,FTP平台為Serv-U FTP Server

  安裝配置操作系統

  安裝操作系統,在安裝前先要先去調整伺服器的BIOS設置,關閉不需要的I/O,這樣節省資源又可以避免一些硬體驅動問題。務必斷開伺服器與網路的連接,在系統沒有完成安全配置前不要將它接入網路。在安裝過程中如果網卡是PNP類型的,那麼應當為其網路屬性只配置允許使用TCP/IP協議,並關閉在 TCP/IP上的NETBIOS,為了提供更安全的保證,應該啟用TCP/IP篩選,並不開放任何TCP埠。完成操作系統的安裝后,首次啟動 W2K3SP1,會彈出安全警告界面,主要是讓你立刻在線升級系統更新補丁,並配置自動更新功能,這個人性化的功能是W2K3SP1所獨有的,在沒有關閉這個警告窗口前,系統是一個安全運行的狀態,這時我們應當儘快完成系統的在線更新。

  修改Administrator和Guest這兩個賬號的密碼使其口令變的複雜,並通過組策略工具為這兩個敏感賬號更名。修改位置在組策略中Computer Configuration-Windows Settings-Security Setting-Local Policies-Security Options下,這樣做可以避免入侵者馬上發動對此賬號的密碼窮舉攻擊。

  伺服器通常都是通過遠程進行管理的,所以我使用系統自帶的組件 「遠程桌面」來對系統進行遠程管理。之所以選擇它,因為它是系統自帶的組件預設安裝只需要去啟用它就可以使用,支持驅動器映射、剪切板映射等應用,並且只要客戶端是WindowsXP PRO都會自帶連接組件非常方便,最主要還有一點它是免費的。當然第三方優秀的軟體也有如:PCAnyWhere,使用它可以解決Remote Desktop無法在本地環境模式下工作的缺點。為了防止入侵者輕易地發現此服務並使用窮舉攻擊手段,可以修改遠程桌面的監聽埠:

  1. 運行 Regedt32 並轉到此項:

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

  注意:上面的註冊表項是一個路徑;它已換行以便於閱讀。

  2. 找到「PortNumber」子項,您會看到值 00000D3D,它是 3389 的十六進位表示形式。使用十六進位數值修改此埠號,並保存新值。

  要更改終端伺服器上某個特定連接的埠,請按照下列步驟操作: 運行 Regedt32 並轉到此項:

  HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\connection

  注意:上面的註冊表項是一個路徑;它已換行以便於閱讀。

  3. 找到「PortNumber」子項,您會看到值 00000D3D,它是 3389 的十六進位表示形式。使用十六進位數值修改此埠號,並保存新值。

  注意:由於在終端伺服器 4.0 版中尚未完全實現備用埠功能,因此只是「在合理的限度內盡量」提供支持,如果出現任何問題,Microsoft 可能要求您將埠重設為 3389。

  原文來源:微軟知識庫KB187623。當然為了達到更加安全的訪問,還可以採用IPSec來保護遠程桌面的連接訪問。

  禁用不必要的服務不但可以降低伺服器的資源佔用減輕負擔,而且可以增強安全性。下面列出了可以禁用的服務:

  Application Experience Lookup Service

  Automatic Updates

  BITS

  Computer Browser

  DHCP Client

  Error Reporting Service

  Help and Support

  Network Location Awareness

  Print Spooler

  Remote Registry

  Secondary Logon

  Server

  Smartcard

  TCP/IP NetBIOS Helper

  Workstation

  Windows Audio

  Windows Time

  Wireless Configuration

  打開伺服器本地計算機策略(gpedit.msc),參考以下選擇和修改對伺服器進行加固:

  1. 設置帳號鎖定閥值為5次無效登錄,鎖定時間為30分鐘;

  2. 從通過網路訪問此計算機中刪除Everyone組;

  3. 在用戶權利指派下,從通過網路訪問此計算機中刪除Power Users和Backup Operators;

  4. 為交互登錄啟動消息文本。

  5. 啟用 不允許匿名訪問SAM帳號和共享;

  6. 啟用 不允許為網路驗證存儲憑據或Passport;

  7. 啟用 在下一次密碼變更時不存儲LANMAN哈希值;

  8. 啟用 清除虛擬內存頁面文件;

  9. 禁止IIS匿名用戶在本地登錄;

  10. 啟用 交互登錄:不顯示上次的用戶名;

  11. 從文件共享中刪除允許匿名登錄的DFS$和COMCFG;

  12. 禁用活動桌面。

  強化TCP協議棧:

  Windows Registry Editor Version 5.00

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

  "SynAttackProtect"=dword:00000001

  "EnablePMTUDiscovery"=dword:00000000

  "NoNameReleaseOnDemand"=dword:00000001

  "EnableDeadGWDetect"=dword:00000000

  "KeepAliveTime"=dword:00300000

  "PerformRouterDiscovery"=dword:00000000

  "TcpMaxConnectResponseRetransmissions"=dword:00000003

  "TcpMaxHalfOpen"=dword:00000100

  "TcpMaxHalfOpenRetried"=dword:00000080

  "TcpMaxPortsExhausted"=dword:00000005

  安裝和配置IIS

  進入Windows組件安裝,找到應用程序伺服器,進入詳細信息,勾選ASP.NET后,IIS必須的組件就會被自動選擇,如果你的伺服器需要運行ASP腳本,那麼還需要進入Internet信息服務(IIS)-萬維網服務下勾選Active Server Pages。完成安裝后,應當在其他邏輯分區上單獨建立一個目錄用來存儲WEB網站程序及數據。

  一台WEB伺服器上都運行著多個網站,他們之間可能互不相干,所以為了起到隔離和提高安全性,需要建立一個匿名WEB用戶組,為每一個站點創建一個匿名訪問賬號,將這些匿名賬號添加到之前建立的匿名WEB用戶組中,並在本地計算機策略中禁止此組有本地登錄許可權。

  最後優化IIS6應用程序池設置:

  1. 禁用預設應用程序池的空閑超時;

  2. 禁用緩存ISAPI擴展;

  3. 將應用程序池標識從NetworlService改為LocalService;

  4. 禁用快速失敗保護;

  5. 將關機時間限制從

[admin via 研發互助社區 ] 加固基於Windows 2003平台的WEB伺服器已經有3245次圍觀

http://cocdig.com/docs/show-post-103.html