WEB服務器安全設置實戰(zhàn)技巧1
作者:佚名 時間:2012-09-20 分享到:
刪除默認建立的站點的虛擬目錄,停止默認web站點,刪除對應的文件目錄c:inetpub,配置所有站點的公共設置,設置好相關(guān)的連接數(shù)限制,帶寬設置以及性能設置等其他設置。配置應用程序映射,刪除所有不必要的應用程序擴展,只保留asp,php,cgi,pl,aspx應用程序擴展。對于php和 cgi,推薦使用isapi方式解析,用exe解析對安全和性能有所影響。用戶程序調(diào)試設置發(fā)送文本錯誤信息給戶。對于數(shù)據(jù)庫,盡量采用mdb后綴,不需要更改為asp,可在IIS中設置一個mdb的擴展映射,將這個映射使用一個無關(guān)的dll文件如C: WINNTsystem32inetsrvssinc.dll來防止數(shù)據(jù)庫被下載。設置IIS的日志保存目錄,調(diào)整日志記錄信息。設置為發(fā)送文本錯誤信息。修改403錯誤頁面,將其轉(zhuǎn)向到其他頁,可防止一些掃描器的探測。另外為隱藏系統(tǒng)信息,防止telnet到80端口所泄露的系統(tǒng)版本信息可修改IIS 的banner信息,可以使用winhex手工修改或者使用相關(guān)軟件如banneredit修改。
對于用戶站點所在的目錄,在此說明一下,用戶的FTP根目錄下對應三個文件佳,wwwroot,database,logfiles,分別存放站點文件,數(shù)據(jù)庫備份和該站點的日志。如果一旦發(fā)生入侵事件可對該用戶站點所在目錄設置具體的權(quán)限,圖片所在的目錄只給予列目錄的權(quán)限,程序所在目錄如果不需要生成文件(如生成html的程序)不給予寫入權(quán)限。因為是虛擬主機平常對腳本安全沒辦法做到細致入微的地步,更多的只能在方法用戶從腳本提升權(quán)限:
ASP的安全設置:
設置過權(quán)限和服務之后,防范asp木馬還需要做以下工作,在cmd窗口運行以下命令:
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll
即可將WScript.Shell, Shell.application, WScript.Network組件卸載,可有效防止asp木馬通過wscript或shell.application執(zhí)行命令以及使用木馬查看一些系統(tǒng)敏感信息。另法:可取消以上文件的users用戶的權(quán)限,重新啟動IIS即可生效。但不推薦該方法。
另外,對于FSO由于用戶程序需要使用,服務器上可以不注銷掉該組件,這里只提一下FSO的防范,但并不需要在自動開通空間的虛擬商服務器上使用,只適合于手工開通的站點。可以針對需要FSO和不需要FSO的站點設置兩個組,對于需要FSO的用戶組給予c:winntsystem32scrrun.dll 文件的執(zhí)行權(quán)限,不需要的不給權(quán)限。重新啟動服務器即可生效。
對于這樣的設置結(jié)合上面的權(quán)限設置,你會發(fā)現(xiàn)海陽木馬已經(jīng)在這里失去了作用!
PHP的安全設置:
默認安裝的php需要有以下幾個注意的問題:
C:\winnt\php.ini只給予users讀權(quán)限即可。在php.ini里需要做如下設置:
Safe_mode=on
register_globals = Off
allow_url_fopen = Off
display_errors = Off
magic_quotes_gpc = On [默認是on,但需檢查一遍]
open_basedir =web目錄
disable_functions =passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod
默認設置com.allow_dcom = true修改為false[修改前要取消掉前面的;]
MySQL安全設置:
如果服務器上啟用MySQL數(shù)據(jù)庫,MySQL數(shù)據(jù)庫需要注意的安全設置為:
刪除mysql中的所有默認用戶,只保留本地root帳戶,為root用戶加上一個復雜的密碼。賦予普通用戶 updatedeletealertcreatedrop權(quán)限的時候,并限定到特定的數(shù)據(jù)庫,尤其要避免普通客戶擁有對mysql數(shù)據(jù)庫操作的權(quán)限。檢查 mysql.user表,取消不必要用戶的shutdown_priv,relo
ad_priv,process_priv和File_priv權(quán)限,這些權(quán)限可能泄漏更多的服務器信息包括非mysql的其它信息出去。可以為 mysql設置一個啟動用戶,該用戶只對mysql目錄有權(quán)限。設置安裝目錄的data數(shù)據(jù)庫的權(quán)限(此目錄存放了mysql數(shù)據(jù)庫的數(shù)據(jù)信息)。對于 mysql安裝目錄給users加上讀取、列目錄和執(zhí)行權(quán)限。
Serv-u安全問題:
安裝程序盡量采用最新版本,避免采用默認安裝目錄,設置好serv-u目錄所在的權(quán)限,設置一個復雜的管理員密碼。修改serv-u的banner信息,設置被動模式端口范圍(4001—4003)在本地服務器中設置中做好相關(guān)安全設置:包括檢查匿名密碼,禁用反超時調(diào)度,攔截“FTP bounce”攻擊和FXP,對于在30秒內(nèi)連接超過3次的用戶攔截10分鐘。域中的設置為:要求復雜密碼,目錄只使用小寫字母,高級中設置取消允許使用 MDTM命令更改文件的日期。
更改serv-u的啟動用戶:在系統(tǒng)中新建一個用戶,設置一個復雜點的密碼,不屬于任何組。將servu的安裝目錄給予該用戶完全控制權(quán)限。建立一個 FTP根目錄,需要給予這個用戶該目錄完全控制權(quán)限,因為所有的ftp用戶上傳,刪除,更改文件都是繼承了該用戶的權(quán)限,否則無法操作文件。另外需要給該目錄以上的上級目錄給該用戶的讀取權(quán)限,否則會在連接的時候出現(xiàn)530 Not logged in, home directory does not exist.比如在測試的時候ftp根目錄為d:soft,必須給d盤該用戶的讀取權(quán)限,為了安全取消d盤其他文件夾的繼承權(quán)限。而一般的使用默認的 system啟動就沒有這些問題,因為system一般都擁有這些權(quán)限的。
數(shù)據(jù)庫服務器的安全設置
對于專用的MSSQL數(shù)據(jù)庫服務器,按照上文所講的設置TCP/IP篩選和IP策略,對外只開放1433和5631端口。對于MSSQL首先需要為sa設置一個強壯的密碼,使用混合身份驗證,加強數(shù)據(jù)庫日志的記錄,審核數(shù)據(jù)庫登陸事件的“成功和失敗”。刪除一些不需要的和危險的OLE自動存儲過程(會造成企業(yè)管理器中部分功能不能使用),這些過程包括如下:
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注冊表訪問過程,包括有:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue
Xp_regenumvalues Xp_regread Xp_regremovemultistring
Xp_regwrite
去掉其他系統(tǒng)存儲過程,如果認為還有威脅,當然要小心Drop這些過程,可以在測試機器上測試,保證正常的系統(tǒng)能完成工作,這些過程包括:
xp_cmdshell xp_dirtree xp_dropwebtask sp_addsrvrolemember
xp_makewebtask xp_runwebtask xp_subdirs sp_addlogin
sp_addextendedproc
在實例屬性中選擇TCP/IP協(xié)議的屬性。選擇隱藏 SQL Server 實例可防止對1434端口的探測,可修改默認使用的1433端口。除去數(shù)據(jù)庫的guest賬戶把未經(jīng)認可的使用者據(jù)之在外。 例外情況是master和 tempdb 數(shù)據(jù)庫,因為對他們guest帳戶是必需的。另外注意設置好各個數(shù)據(jù)庫用戶的權(quán)限,對于這些用戶只給予所在數(shù)據(jù)庫的一些權(quán)限。在程序中不要用sa用戶去連接任何數(shù)據(jù)庫。網(wǎng)絡上有建議大家使用協(xié)議加密的,千萬不要這么做,否則你只能重裝MSSQL了。
入侵檢測和數(shù)據(jù)備份
入侵檢測工作
作為服務器的日常管理,入侵檢測是一項非常重要的工作,在平常的檢測過程中,主要包含日常的服務器安全例行檢查和遭到入侵時的入侵檢查,也就是分為在入侵進行時的安全檢查和在入侵前后的安全檢查。系統(tǒng)的安全性遵循木桶原理,木桶原理指的是:一個木桶由許多塊木板組成,如果組成木桶的這些木板長短不一,那么這個木桶的最大容量不取決于長的木板,而取決于最短的那塊木板。應用到安全方面也就是說系統(tǒng)的安全性取決于系統(tǒng)中最脆弱的地方,這些地方是日常的安全檢測的重點所在。
日常的安全檢測
日常安全檢測主要針對系統(tǒng)的安全性,工作主要按照以下步驟進行:
1.查看服務器狀態(tài):
打開進程管理器,查看服務器性能,觀察CPU和內(nèi)存使用狀況。查看是否有CPU和內(nèi)存占用過高等異常情況。
2.檢查當前進程情況
切換“任務管理器”到進程,查找有無可疑的應用程序或后臺進程在運行。用進程管理器查看進程時里面會有一項taskmgr,這個是進程管理器自身的進程。如果正在運行windows更新會有一項wuauclt.exe進程。對于拿不準的進程或者說不知道是服務器上哪個應用程序開啟的進程,可以在網(wǎng)絡上搜索一下該進程名加以確定[進程知識庫:http://www.dofile.com/通常的后門如果有進程的話,一般會取一個與系統(tǒng)進程類似的名稱,如svch0st.exe,此時要仔細辨別[通常迷惑手段是變字母o為數(shù)字0,變字母l為數(shù)字1]
3.檢查系統(tǒng)帳號
打開計算機管理,展開本地用戶和組選項,查看組選項,查看administrators組是否添加有新帳號,檢查是否有克隆帳號。
4.查看當前端口開放情況
使用activeport,查看當前的端口連接情況,尤其是注意與外部連接著的端口情況,看是否有未經(jīng)允許的端口與外界在通信。如有,立即關(guān)閉該端口并記錄下該端口對應的程序并記錄,將該程序轉(zhuǎn)移到其他目錄下存放以便后來分析。打開計算機管理==》軟件環(huán)境==》正在運行任務[在此處可以查看進程管理器中看不到的隱藏進程],查看當前運行的程序,如果有不明程序,記錄下該程序的位置,打開任務管理器結(jié)束該進程,對于采用了守護進程的后門等程序可嘗試結(jié)束進程樹,如仍然無法結(jié)束,在注冊表中搜索該程序名,刪除掉相關(guān)鍵值,切換到安全模式下刪除掉相關(guān)的程序文件。
5.檢查系統(tǒng)服務
運行services.msc,檢查處于已啟動狀態(tài)的服務,查看是否有新加的未知服務并確定服務的用途。對于不清楚的服務打開該服務的屬性,查看該服務所對應的可執(zhí)行文件是什么,如果確定該文件是系統(tǒng)內(nèi)的正常使用的文件,可粗略放過。查看是否有其他正常開放服務依存在該服務上,如果有,可以粗略的放過。如果無法確定該執(zhí)行文件是否是系統(tǒng)內(nèi)正常文件并且沒有其他正常開放服務依存在該服務上,可暫時停止掉該服務,然后測試下各種應用是否正常。對于一些后門由于采用了hook系統(tǒng)API技術(shù),添加的服務項目在服務管理器中是無法看到的,這時需要打開注冊表中的 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices項進行查找,通過查看各服務的名稱、對應的執(zhí)行文件來確定是否是后門、木馬程序等。
6.查看相關(guān)日志
運行eventvwr.msc,粗略檢查系統(tǒng)中的相關(guān)日志記錄。在查看時在對應的日志記錄上點右鍵選“屬性”,在“篩選器”中設置一個日志篩選器,只選擇錯誤、警告,查看日志的來源和具體描述信息。對于出現(xiàn)的錯誤如能在服務器常見故障排除中找到解決辦法則依照該辦法處理該問題,如果無解決辦法則記錄下該問題,詳細記錄下事件來源、ID號和具體描述信息,以便找到問題解決的辦法。
7.檢查系統(tǒng)文件
主要檢查系統(tǒng)盤的exe和dll文件,建議系統(tǒng)安裝完畢之后用dir *.exe /s >1.txt將C盤所有的exe文件列表保存下來,然后每次檢查的時候再用該命令生成一份當時的列表,用fc比較兩個文件,同樣如此針對dll文件做相關(guān)檢查。需要注意的是打補丁或者安裝軟件后重新生成一次原始列表。檢查相關(guān)系統(tǒng)文件是否被替換或系統(tǒng)中是否被安裝了木馬后門等惡意程序。必要時可運行一次殺毒程序?qū)ο到y(tǒng)盤進行一次掃描處理。
8.檢查安全策略是否更改
打開本地連接的屬性,查看“常規(guī)”中是否只勾選了“TCP/IP協(xié)議”,打開“TCP/IP”協(xié)議設置,點“高級”==》“選項”,查看“IP安全機制” 是否是設定的IP策略,查看“TCP/IP”篩選允許的端口有沒有被更改。打開“管理工具”=》“本地安全策略”,查看目前使用的IP安全策略是否發(fā)生更改。
9.檢查目錄權(quán)限
重點查看系統(tǒng)目錄和重要的應用程序權(quán)限是否被更改。需要查看的目錄有c:;c:winnt;
C:winntsystem32;c:winntsystem32inetsrv;c:winntsystem32inetsrvdata;c:documents and
Settings;然后再檢查serv-u安裝目錄,查看這些目錄的權(quán)限是否做過變動。檢查system32下的一些重要文件是否更改過權(quán)限,包括:cmd,net,ftp,tftp,cacls等文件。
10.檢查啟動項
主要檢查當前的開機自啟動程序。可以使用AReporter來檢查開機自啟動的程序。
發(fā)現(xiàn)入侵時的應對措施
對于即時發(fā)現(xiàn)的入侵事件,以下情況針對系統(tǒng)已遭受到破壞情況下的處理,系統(tǒng)未遭受到破壞或暫時無法察覺到破壞先按照上述的檢查步驟檢查一遍后再酌情考慮以下措施。系統(tǒng)遭受到破壞后應立即采取以下措施:
視情況嚴重決定處理的方式,是通過遠程處理還是通過實地處理。如情況嚴重建議采用實地處理。如采用實地處理,在發(fā)現(xiàn)入侵的第一時間通知機房關(guān)閉服務器,待處理人員趕到機房時斷開網(wǎng)線,再進入系統(tǒng)進行檢查。如采用遠程處理,如情況嚴重第一時間停止所有應用服務,更改IP策略為只允許遠程管理端口進行連接然后重新啟動服務器,重新啟動之后再遠程連接上去進行處理,重啟前先用AReporter檢查開機自啟動的程序。然后再進行安全檢查。
以下處理措施針對用戶站點被入侵但未危及系統(tǒng)的情況,如果用戶要求加強自己站點的安全性,可按如下方式加固用戶站點的安全:
站點根目錄——只給administrator讀取權(quán)限,權(quán)限繼承下去。
wwwroot ——給web用戶讀取、寫入權(quán)限。高級里面有刪除子文件夾和文件權(quán)限
logfiles——給system寫入權(quán)限。
database——給web用戶讀取、寫入權(quán)限。高級里面沒有刪除子文件夾和文件權(quán)限
如需要進一步修改,可針對用戶站點的特性對于普通文件存放目錄如html、js、圖片文件夾只給讀取權(quán)限,對asp等腳本文件給予上表中的權(quán)限。另外查看該用戶站點對應的安全日志,找出漏洞原因,協(xié)助用戶修補程序漏洞。
數(shù)據(jù)備份和數(shù)據(jù)恢復
數(shù)據(jù)備份工作大致如下:
1. 每月備份一次系統(tǒng)數(shù)據(jù)。
2. 備份系統(tǒng)后的兩周單獨備份一次應用程序數(shù)據(jù),主要包括IIS、serv-u、數(shù)據(jù)庫等數(shù)據(jù)。
3. 確保備份數(shù)據(jù)的安全,并分類放置這些數(shù)據(jù)備份。因基本上采用的都是全備份方法,對于數(shù)據(jù)的保留周期可以只保留該次備份和上次備份數(shù)據(jù)兩份即可。
數(shù)據(jù)恢復工作:
1.系統(tǒng)崩潰或遇到其他不可恢復系統(tǒng)正常狀態(tài)情況時,先對上次系統(tǒng)備份后發(fā)生的一些更改事件如應用程序、安全策略等的設置做好備份,恢復完系統(tǒng)后再恢復這些更改。
2.應用程序等出錯采用最近一次的備份數(shù)據(jù)恢復相關(guān)內(nèi)容。
服務器性能優(yōu)化
1 服務器性能優(yōu)化
系統(tǒng)性能優(yōu)化
整理系統(tǒng)空間:
刪除系統(tǒng)備份文件,刪除驅(qū)動備份,刪除不用的輸入法,刪除系統(tǒng)的幫助文件,卸載不常用的組件。最小化C盤文件。
性能優(yōu)化:
刪除多余的開機自動運行程序;減少預讀取,減少進度條等待時間;讓系統(tǒng)自動關(guān)閉停止響應的程序;禁用錯誤報告,但在發(fā)生嚴重錯誤時通知;關(guān)閉自動更新,改為手動更新計算機;啟用硬件和DirectX加速;禁用關(guān)機事件跟蹤;禁用配置服務器向?qū)В粶p少開機磁盤掃描等待時間;將處理器計劃和內(nèi)存使用都調(diào)到應用程序上;調(diào)整虛擬內(nèi)存;內(nèi)存優(yōu)化;修改cpu的二級緩存;修改磁盤緩存。