1. 程式人生 > >Web伺服器的日常維護都應該做些什麼

Web伺服器的日常維護都應該做些什麼

Web伺服器的日常維護是網管的一項重要工作,主要工作有:入侵檢測、資料備份、伺服器優化、常見故障處理以及日誌安排等一系統日常維護,伺服器管理工作必須規範嚴謹。

    一、入侵檢測和資料備份

    (一)入侵檢測工作

    作為伺服器的日常管理,入侵檢測是一項非常重要的工作,在平常的檢測過程中,主要包含日常的伺服器安全例行檢查和遭到入侵時的入侵檢查,也就是分為在入侵進行時的安全檢查和在入侵前後的安全檢查。系統的安全性遵循木桶原理,木桶原理指的是:一個木桶由許多塊木板組成,如果組成木桶的這些木板長短不一,那麼這個木桶的最大容量不取決於長的木板,而取決於最短的那塊木板。應用到安全方面也就是說系統的安全性取決於系統中最脆弱的地方,這些地方是日常的安全檢測的重點所在。

    日常的安全檢測

    日常安全檢測主要針對系統的安全性,工作主要按照以下步驟進行:

    1、檢視伺服器狀態:
    開啟程序管理器,檢視伺服器效能,觀察CPU和記憶體使用狀況。檢視是否有CPU和記憶體佔用過高等異常情況。

    2、檢查當前程序情況
    切換“工作管理員”到程序,查詢有無可疑的應用程式或後臺程序在執行。用程序管理器檢視程序時裡面會有一項taskmgr,這個是程序管理器自身的程序。如果正在執行windows更新會有一項wuauclt.exe程序。對於拿不準的程序或者說不知道是伺服器上哪個應用程式開啟的程序,可以在網路上搜索一下該程序名加以確定[程序知識庫:http://www.dofile.com/]。通常的後門如果有程序的話,一般會取一個與系統程序類似的名稱,如svch0st.exe,此時要仔細辨別[通常迷惑手段是變字母o為數字0,變字母l為數字1]

    3、檢查系統帳號
    開啟計算機管理,展開本地使用者和組選項,檢視組選項,檢視administrators組是否新增有新帳號,檢查是否有克隆帳號。

    4、檢視當前埠開放情況
    使用activeport,檢視當前的埠連線情況,尤其是注意與外部連線著的埠情況,看是否有未經允許的埠與外界在通訊。如有,立即關閉該埠並記錄下該埠對應的程式並記錄,將該程式轉移到其他目錄下存放以便後來分析。開啟計算機管理==》軟體環境==》正在執行任務[在此處可以檢視程序管理器中看不到的隱藏程序],檢視當前執行的程式,如果有不明程式,記錄下該程式的位置,開啟工作管理員結束該程序,對於採用了守護程序的後門等程式可嘗試結束程序樹,如仍然無法結束,在登錄檔中搜索該程式名,刪除掉相關鍵值,切換到安全模式下刪除掉相關的程式檔案。

    5、檢查系統服務
    執行services.msc,檢查處於已啟動狀態的服務,檢視是否有新加的未知服務並確定服務的用途。對於不清楚的服務開啟該服務的屬性,檢視該服務所對應的可執行檔案是什麼,如果確定該檔案是系統內的正常使用的檔案,可粗略放過。檢視是否有其他正常開放服務依存在該服務上,如果有,可以粗略的放過。如果無法確定該執行檔案是否是系統內正常檔案並且沒有其他正常開放服務依存在該服務上,可暫時停止掉該服務,然後測試下各種應用是否正常。對於一些後門由於採用了hook系統API技術,新增的服務專案在服務管理器中是無法看到的,這時需要開啟登錄檔中的HKEY_LOCAL_MACHINE—SYSTEM—CurrentControlSet—Services項進行查詢,通過檢視各服務的名稱、對應的執行檔案來確定是否是後門、木馬程式等。

    6、檢視相關日誌
    執行eventvwr.msc,粗略檢查系統中的相關日誌記錄。在檢視時在對應的日誌記錄上點右鍵選“屬性”,在“篩選器”中設定一個日誌篩選器,只選擇錯誤、警告,檢視日誌的來源和具體描述資訊。對於出現的錯誤如能在伺服器常見故障排除中找到解決辦法則依照該辦法處理該問題,如果無解決辦法則記錄下該問題,詳細記錄下事件來源、ID號和具體描述資訊,以便找到問題解決的辦法。

    7、檢查系統檔案
    主要檢查系統盤的exe和dll檔案,建議系統安裝完畢之後用dir *.exe /s >1.txt將C盤所有的exe檔案列表儲存下來,然後每次檢查的時候再用該命令生成一份當時的列表,用fc比較兩個檔案,同樣如此針對dll檔案做相關檢查。需要注意的是打補丁或者安裝軟體後重新生成一次原始列表。檢查相關係統檔案是否被替換或系統中是否被安裝了木馬後門等惡意程式。必要時可執行一次防毒程式對系統盤進行一次掃描處理。

    8、檢查安全策略是否更改
    開啟本地連線的屬性,檢視“常規”中是否只勾選了“TCP/IP協議”,開啟“TCP/IP”協議設定,點“高階”==》“選項”,檢視“IP安全機制”是否是設定的IP策略,檢視“TCP/IP”篩選允許的埠有沒有被更改。開啟“管理工具”=》“本地安全策略”,檢視目前使用的IP安全策略是否發生更改。

    9、檢查目錄許可權
    重點檢視系統目錄和重要的應用程式許可權是否被更改。需要檢視的目錄有c: c:winnt C:winntsystem32 c:winntsystem32/inetsrv

c:winntsystem32/inetsrvdata c:documents and Settings然後再檢查serv-u安裝目錄,檢視這些目錄的許可權是否做過變動。檢查system32

下的一些重要檔案是否更改過許可權,包括:cmd,net,ftp,tftp,cacls等檔案。

    10、檢查啟動項
    主要檢查當前的開機自啟動程式。可以使用AReporter來檢查開機自啟動的程式。

    發現入侵時的應對措施

    對於即時發現的入侵事件,以下情況針對系統已遭受到破壞情況下的處理,系統未遭受到破壞或暫時無法察覺到破壞,先按照上述的檢查步驟檢查一遍後再酌情考慮以下措施。系統遭受到破壞後應立即採取以下措施:
    視情況嚴重決定處理的方式,是通過遠端處理還是通過實地處理。如情況嚴重建議採用實地處理。如採用實地處理,在發現入侵的第一時間通知機房關閉伺服器,待處理人員趕到機房時斷開網線,再進入系統進行檢查。如採用遠端處理,如情況嚴重第一時間停止所有應用服務,更改IP策略為只允許遠端管理埠進行連線然後重新啟動伺服器,重新啟動之後再遠端連線上去進行處理,重啟前先用AReporter檢查開機自啟動的程式。然後再進行安全檢查。
    以下處理措施針對使用者站點被入侵但未危及系統的情況,如果使用者要求加強自己站點的安全性,可按如下方式加固使用者站點的安全:

    站點根目錄只給administrator讀取許可權,許可權繼承下去。
    wwwroot 給web使用者讀取、寫入許可權。高階裡面有刪除子資料夾和檔案許可權
    logfiles給system寫入許可權。
    database給web使用者讀取、寫入許可權。高階裡面沒有刪除子資料夾和檔案許可權

    如需要進一步修改,可針對使用者站點的特性對於普通檔案存放目錄如html、js、圖片資料夾只給讀取許可權,對asp等指令碼檔案給予上表中的許可權。另外檢視該使用者站點對應的安全日誌,找出漏洞原因,協助使用者修補程式漏洞。

    (二)資料備份和資料恢復

    資料備份工作大致如下:
    1、每月備份一次系統資料。

    2、備份系統後的兩週單獨備份一次應用程式資料,主要包括IIS、serv-u、資料庫等資料。

    3、確保備份資料的安全,並分類放置這些資料備份。因基本上採用的都是全備份方法,對於資料的保留週期可以只保留該次備份和上次備份資料兩份即可。

    資料恢復工作:

    1、系統崩潰或遇到其他不可恢復系統正常狀態情況時,先對上次系統備份後發生的一些更改事件如應用程式、安全策略等的設定做好備份,恢復完系統後再恢復這些更改。

    2、應用程式等出錯採用最近一次的備份資料恢復相關內容。

    二、伺服器效能優化

    1、整理系統空間:

    刪除系統備份檔案,刪除驅動備份,刪除不用的輸入法,刪除系統的幫助檔案,解除安裝不常用的元件。最小化C盤檔案。

    2、效能優化:

    刪除多餘的開機自動執行程式;
    減少預讀取,減少進度條等待時間;
    讓系統自動關閉停止響應的程式;
    禁用錯誤報告,但在發生嚴重錯誤時通知;
    關閉自動更新,改為手動更新計算機;
    啟用硬體和DirectX加速;
    禁用關機事件跟蹤;
    禁用配置伺服器嚮導;
    減少開機磁碟掃描等待時間;
    將處理器計劃和記憶體使用都調到應用程式上;
    調整虛擬記憶體;
    記憶體優化;
    修改cpu的二級快取;
    修改磁碟快取。

    IIS效能優化

    1、調整IIS快取記憶體

    HKEY_LOCAL_MACHINE SystemCurrentControlSetServicesInetInfoParametersMemoryCacheSize MemoryCacheSize的範圍是從0道4GB,預設值為3072000(3MB)。一般來說此值最小應設為伺服器記憶體的10%。IIS通過快取記憶體系統控制代碼、目錄列表以及其他常用資料的值來提高系統的效能。這個引數指明瞭分配給快取記憶體的記憶體大小。如果該值為0,那就意味著“不進行任何快取記憶體”。在這種情況下系統的效能可能會降低。如果你的伺服器網路通訊繁忙,並且有足夠的記憶體空間,可以考慮增大該值。必須注意的是修改登錄檔後,需要重新啟動才能使新值生效。

    2、不要關閉系統服務: “Protected Storage”

    3、對訪問流量進行限制

    (1)對站點訪問人數進行限制
    (2)站點頻寬限制。保持HTTP連線。
    (3)程序限制, 輸入CPU的耗用百分比

    4、提高IIS的處理效率

    應用程式設定”處的“應用程式保護”下拉按鈕,從彈出的下拉列表中,選中“低(IIS程序)”選項,IIS伺服器處理程式的效率可以提高20%左右。但此設定會帶來嚴重的安全問題,不值得推薦。

    5、將IIS伺服器設定為獨立的伺服器

    (1)提高硬體配置來優化IIS效能
        硬碟:硬碟空間被NT和IIS服務以如下兩種方式使用:一種是簡單地儲存資料;另一種是作為虛擬記憶體使用。如果使用Ultra2的SCSI硬碟,可以顯著提高IIS的效能
    (2)可以把NT伺服器的頁交換檔案分佈到多個物理磁碟上,注意是多個“物理磁碟”,分佈在多個分割槽上是無效的。另外,不要將頁交換檔案放在與WIndows NT引導區相同的分割槽中
    (3)使用磁碟映象或磁碟帶區集可以提高磁碟的讀取效能
    (4)最好把所有的資料都儲存在一個單獨的分割槽裡。然後定期執行磁碟碎片整理程式以保證在儲存Web伺服器資料的分割槽中沒有碎片。使用NTFS有助於減少碎片。推薦使用Norton的Speeddisk,可以很快的整理NTFS分割槽。

    6、起用HTTP壓縮

    HTTP壓縮是在Web伺服器和瀏覽器間傳輸壓縮文字內容的方法。HTTP壓縮採用通用的壓縮演算法如gzip等壓縮HTML、Javas cript或CSS檔案。可使用pipeboost進行設定。

    7、起用資源回收

    使用IIS5 Recycle定時回收程序資源。

    三、伺服器常見故障排除

    1、ASP“請求的資源正在使用中”的解決辦法:

    該問題一般與防毒軟體有關,在伺服器上安裝個人版防毒軟體所致。出現這種錯誤可以通過解除安裝防毒軟體解決,也可嘗試重新註冊vbs cript.dll和j.dll來解決,在命令列下執行:regsvr32 vb.dll 和regsvr32 j.dll即可。

    2、ASP500錯誤解決辦法:

    首先確定該問題是否是單一站點存在還是所有站點存在,如果是單一站點存在該問題,則是網站程式的問題,可開啟該站點的錯誤提示,把IE的“顯示友好HTTP錯誤”資訊取消,檢視具體錯誤資訊,然後對應修改相關程式。如是所有站點存在該問題,並且HTML頁面沒有出現該問題,相關日誌出現“伺服器無法載入應用程式‘/LM/W3SVC/1/ROOT‘。錯誤是 ‘不支援此介面‘”。那十有八九是伺服器系統中的ASP相關元件出現了問題,重新啟動IIS服務,嘗試是否可以解決該問題,無法解決重新啟動系統嘗試是否可解決該問題,如無法解決可重新修復一下ASP元件:首先刪除com元件中的關於IIS的三個東西,需要先將屬性裡的高階中“禁止刪除”的勾選取消。
    命令列中,輸入“cd winntsystem32inetsrv”字串命令,單擊回車鍵後,再執行“rundll32 wamreg.dll,CreateIISPackage”命令,接著再依次執行“regsvr32 asptxn.dll”命令、“iisreset”命令,最後重新啟動一下計算機作業系統,這樣IIS伺服器就能重新正確響應ASP指令碼頁面了。

    3、IIS出現105錯誤:

    在系統日誌中“伺服器無法註冊管理工具發現資訊。管理工具可能無法看到此伺服器” 來源:w3svc ID:105
    解決辦法:在網路連線中重新安裝netbios協議即可,安裝完成之後取消掉勾選。

    4、MySQL服務無法啟動【錯誤程式碼1067】的解決方法

    啟動MySQL服務時都會在中途報錯!內容為:在 本地計算機 無法啟動MySQL服務 錯誤1067:程序意外中止。
    解決方法:查詢Windows目錄下的my.ini檔案,編輯內容(如果沒有該檔案,則新建一個),至少包含basedir,datadir這兩個基本的配置。
    [mysqld]
    # set basedir to installation path, e.g., c:/mysql
    # 設定為MYSQL的安裝目錄
    basedir=D:/www/WebServer/MySQL
    # set datadir to location of data directory,
    # e.g., c:/mysql/data or d:/mydata/data
    # 設定為MYSQL的資料目錄
    datadir=D:/www/WebServer/MySQL/data
    注意,我在更改系統的temp目錄之後沒有對更改後的目錄給予system使用者的許可權也出現過該問題。

    5、DllHotst程序消耗cpu 100%的問題

    伺服器正常CPU消耗應該在75%以下,而且CPU消耗應該是上下起伏的,出現這種問題的伺服器,CPU會突然一直處100%的水平,而且不會下降。檢視工作管理員,可以發現是DLLHOST.EXE消耗了所有的CPU空閒時間,管理員在這種情況下,只好重新啟動IIS服務,奇怪的是,重新啟動IIS服務後一切正常,但可能過了一段時間後,問題又再次出現了。
    直接原因:
    有一個或多個ACCESS資料庫在多次讀寫過程中損壞, MDAC系統在寫入這個損壞的ACCESS檔案時,ASP執行緒處於BLOCK狀態,結果其他執行緒只能等待,IIS被死鎖了,全部的CPU時間都消耗在DLLHOST中。
    解決辦法:
    把資料庫下載到本地,然後用ACCESS開啟,進行修復操作。再上傳到網站。如果還不行,只有新建一個ACCESS資料庫,再從原來的資料庫中匯入所有表和記錄。然後把新資料庫上傳到伺服器上。

    6、Windows installer出錯:

    在安裝軟體的時候出現“不能訪問windows installer 服務。可能你在安全模式下執行 windows ,或者windows installer 沒有正確的安裝。請和你的支援人員聯絡以獲得幫助” 如果試圖重新安裝InstMsiW.exe,提示:“指定的服務已存在”。
    解決辦法:
    關於installer的錯誤,可能還有其他錯誤提示,可嘗試以下解決辦法:
    首先確認是否是許可權方面的問題,提示資訊會提供相關資訊,如果是許可權問題,給予winnt目錄everyone許可權即可[安裝完把許可權改回來即可]。如果提示的是上述資訊,可以嘗試以下解決方法:執行“msiexec /unregserver”解除安裝Windows Installer服務,如果無法解除安裝可使用

SRVINSTW進行解除安裝,然後下載windows installer的安裝程式[地址:http://www.newhua.com/cfan/200410/instmsiw.exe],用winrar解壓該檔案,在解壓縮出來的資料夾裡面找到msi.inf檔案,右鍵單擊選擇“安裝”,重新啟動系統後執行“msiexec /regserver”重新註冊Windows Installer服務。

    四、伺服器管理

    (一)伺服器日常管理安排

    伺服器管理工作必須規範嚴謹,尤其在不是隻有一位管理員的時候,日常管理工作包括:

    1、伺服器的定時重啟。每臺伺服器保證每週重新啟動一次。重新啟動之後要進行復查,確認伺服器已經啟動了,確認伺服器上的各項服務均恢復正常。對於沒有啟動起來或服務未能及時恢復的情況要採取相應措施。前者可請求託管商的相關工作人員幫忙手工重新啟動,必要時可要求讓連線上顯示器確認是否已啟動起來;後者需要遠端登陸上伺服器進行原因查詢並根據原因嘗試恢復服務。

    2、伺服器的安全、效能檢查,每伺服器至少保證每週登陸兩次粗略檢查兩次。每次檢查的結果要求進行登記在冊。如需要使用一些工具進行檢查,可直接在e:tools中查詢到相關工具。對於臨時需要從網路上找的工具,首先將IE的安全級別調整到高,然後在網路上進行查詢,不要去任何不明站點下載,儘量選擇如華軍、天空等大型網站進行下載,下載後確保當前防毒軟體已升級到最新版本,升級完畢後對下載的軟體進行一次防毒,確認正常後方能使用。對於下載的新工具對以後維護需要使用的話,將該工具儲存到e:tools下,並在該目錄中的readme.txt檔案中做好相應記錄,記錄該工具的名稱,功能,使用方法。並且在該資料夾中的rar資料夾中保留一份該工具的winrar壓縮檔案備份,設定解壓密碼。

    3、伺服器的資料備份工作,每伺服器至少保證每月備份一次系統資料,系統備份採用ghost方式,對於ghost檔案固定存放在e:ghost檔案目錄下,檔名以備份的日期命名,如0824.gho,每伺服器至少保證每兩週備份一次應用程式資料,每伺服器至少保證每月備份一次使用者資料,備份的資料固定存放在e:databak資料夾,針對各種資料再建立對應的子資料夾,如serv-u使用者資料放在該資料夾下的servu資料夾下,iis站點資料存放在該資料夾下的iis資料夾下。

    4、伺服器的監控工作,每天正常工作期間必須保證監視所有伺服器狀態,一旦發現服務停止要及時採取相應措施。對於發現服務停止,首先檢查該伺服器上同類型的服務是否中斷,如所有同類型的服務都已中斷及時登陸伺服器檢視相關原因並針對該原因嘗試重新開啟對應服務。

    5、伺服器的相關日誌操作,每伺服器保證每月對相關日誌進行一次清理,清理前對應的各項日誌如應用程式日誌、安全日誌、系統日誌等都應選擇“儲存日誌”。所有的日誌檔案統一儲存在e:logs下,應用程式日誌儲存在e:logsapp中,系統程式日誌儲存在e:logssys中,安全日誌儲存在e:logssec中。對於另外其他一些應用程式的日誌,也按照這個方式進行處理,如ftp的日誌儲存在e:logsftp中。所有的備份日誌檔案都以備份的日期命名,如20050824.evt。對於不是單檔案形式的日誌,在對應的記錄位置下建立一個以日期命名的資料夾,將這些檔案存放在該資料夾中。

    6、伺服器的補丁修補、應用程式更新工作,對於新出的漏洞補丁,應用程式方面的安全更新一定要在發現的第一時間給每伺服器打上應用程式的補丁。

    7、伺服器的隱患檢查工作,主要包括安全隱患、效能等方面。每伺服器必須保證每月重點的單獨檢查一次。每次的檢查結果必須做好記錄。

    8、不定時的相關工作,每伺服器由於應用軟體更改或其他某原因需要安裝新的應用程式或解除安裝應用程式等操作必須知會所有管理員。

    9、定期的管理密碼更改工作,每伺服器保證至少每兩個月更改一次密碼,對於SQL伺服器由於如果SQL採用混合驗證更改系統管理員密碼會影響資料庫的使用則不予修改。

    相關建議:對每伺服器設立一個伺服器管理記載,管理員每次登陸系統都應該在此中進行詳細的記錄,共需要記錄以下幾項:登入時間,退出時間,登入時伺服器狀態[包含不明程序記錄,埠連線狀態,系統帳號狀態,記憶體/CPU狀態],詳細操作情況記錄[詳細記錄下管理員登陸系統後的每一步操作]。無論是遠端登陸操作還是物理接觸操作都要進行記錄,然後將這些記錄按照各伺服器歸檔,按時間順序整理好文件。

    對於資料備份、伺服器定時重啟等操作建議將伺服器分組,例如分成四組,每月的週六晚備份一組伺服器的資料,每週的某一天定時去重啟一組的伺服器,這樣對於工作的開展比較方便,這些屬於固定性的工作。另外有些工作可以同步進行,如每月一次的資料備份、安全檢查和管理員密碼修改工作,先進行資料備份,然後進行安全檢查,再修改密碼。對於需要的即時操作如伺服器補丁程式的安裝、伺服器不定時的故障維護等工作,這些屬於即時性的工作,但是原則上即時性的工作不能影響固定工作的安排。

    (二)管理員日常注意事項

    在伺服器管理過程中,管理員需要注意以下事項:

    1、對自己的每一次操作應做好詳細記錄,具體見上述建議,以便於後來檢查。

    2、努力提高自身水平,加強學習。