Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> 阿江的WINDOWS服務器安全設置

阿江的WINDOWS服務器安全設置

日期:2017/2/8 10:28:45      編輯:關於服務器

前言

其實,在服務器的安全設置方面,我雖然有一些經驗,但是還談不上有研究,所以我寫這篇文章的時候心裡很不踏實,總害怕說錯了會誤了別人的事。

本文更側重於防止ASP漏洞攻擊,所以服務器防黑等方面的講解可能略嫌少了點。

基本的服務器安全設置
安裝補丁

安裝好操作系統之後,最好能在托管之前就完成補丁的安裝,配置好網絡後,如果是2000則確定安裝上了SP4,如果是2003,則最好安裝上SP2,然後點擊開始→Windows Update,安裝所有的關鍵更新。
安裝殺毒軟件

雖然殺毒軟件有時候不能解決問題,但是殺毒軟件避免了很多問題。我一直在用諾頓2004,據說2005可以殺木馬,不過我沒試過。還有人用瑞星,瑞星是確定可以殺木馬的。更多的人說卡巴司機好,不過我沒用過。

不要指望殺毒軟件殺掉所有的木馬,因為ASP木馬的特征是可以通過一定手段來避開殺毒軟件的查殺。
設置端口保護和防火牆、刪除默認共享

都是服務器防黑的措施,即使你的服務器上沒有IIS,這些安全措施都最好做上。這是阿江的盲區,大概知道屏蔽端口用本地安全策略,不過這方面的東西網上攻略很多,大家可以擻出來看看,晚些時候我或者會復制一些到我的網站上。
權限設置

阿江感覺這是防止ASP漏洞攻擊的關鍵所在,優秀的權限設置可以將危害減少在一個IIS站點甚至一個虛擬目錄裡。我這裡講一下原理和設置思路,聰明的朋友應該看完這個就能解決問題了。
權限設置的原理

    * WINDOWS用戶,在WINNT系統中大多數時候把權限按用戶(組)來劃分。在【開始→程序→管理工具→計算機管理→本地用戶和組】管理系統用戶和用戶組。
    * NTFS權限設置,請記住分區的時候把所有的硬盤都分為NTFS分區,然後我們可以確定每個分區對每個用戶開放的權限。【文件(夾)上右鍵→屬性→安全】在這裡管理NTFS文件(夾)權限。
    * IIS匿名用戶,每個IIS站點或者虛擬目錄,都可以設置一個匿名訪問用戶(現在暫且把它叫“IIS匿名用戶”),當用戶訪問你的網站的.ASP文件的時候,這個.ASP文件所具有的權限,就是這個“IIS匿名用戶”所具有的權限。

權限設置的思路

    * 要為每個獨立的要保護的個體(比如一個網站或者一個虛擬目錄)創建一個系統用戶,讓這個站點在系統中具有惟一的可以設置權限的身份。
    * 在IIS的【站點屬性或者虛擬目錄屬性→目錄安全性→匿名訪問和驗證控制→編輯→匿名訪問→編輯】填寫剛剛創建的那個用戶名。
    * 設置所有的分區禁止這個用戶訪問,而剛才這個站點的主目錄對應的那個文件夾設置允許這個用戶訪問(要去掉繼承父權限,並且要加上超管組和SYSTEM組)。

這樣設置了之後,這個站點裡的ASP程序就只有當前這個文件夾的權限了,從探針上看,所有的硬盤都是紅叉叉。
我的設置方法

我是先創建一個用戶組,以後所有的站點的用戶都建在這個組裡,然後設置這個組在各個分區沒有權限或者完全拒絕。然後再設置各個IIS用戶在各在的文件夾裡的權限。

因為比較多,所以我很不想寫,其實知道了上面的原理,大多數人都應該懂了,除非不知道怎麼添加系統用戶和組,不知道怎麼設置文件夾權限,不知道IIS站點屬性在那裡。真的有那樣的人,你也不要著急,要沉住氣慢慢來,具體的方法其實自己也能摸索出來的,我就是這樣。當然,如果我有空,我會寫我的具體設置方法,很傲能還會配上圖片。
改名或卸載不安全組件
不安全組件不驚人

我的在阿江探針1.9裡加入了不安全組件檢測功能(其實這是參考7i24的代碼寫的,只是把界面改的友好了一點,檢測方法和他是基本一樣的),這個功能讓很多站長吃驚不小,因為他發現他的服務器支持很多不安全組件。

其實,只要做好了上面的權限設置,那麼FSO、XML、strem都不再是不安全組件了,因為他們都沒有跨出自己的文件夾或者站點的權限。那個歡樂時光更不用怕,有殺毒軟件在還怕什麼時光啊。

最危險的組件是WSH和Shell,因為它可以運行你硬盤裡的EXE等程序,比如它可以運行提升程序來提升SERV-U權限甚至用SERVU來運行更高權限的系統程序。
謹慎決定是否卸載一個組件

組件是為了應用而出現的,而不是為了不安全而出現的,所有的組件都有它的用處,所以在卸載一個組件之前,你必須確認這個組件是你的網站程序不需要的,或者即使去掉也不關大體的。否則,你只能留著這個組件並在你的ASP程序本身上下工夫,防止別人進來,而不是防止別人進來後SHELL。

比如,FSO和XML是非常常用的組件之一,很多程序會用到他們。WSH組件會被一部分主機管理程序用到,也有的打包程序也會用到。
卸載最不安全的組件

最簡單的辦法是直接卸載後刪除相應的程序文件。將下面的代碼保存為一個.BAT文件,( 以下均以 WIN2000 為例,如果使用2003,則系統文件夾應該是 C:\WINDOWS\ )

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就會被卸載了。可能會提示無法刪除文件,不用管它,重啟一下服務器,你會發現這三個都提示“×安全”了。
改名不安全組件

需要注意的是組件的名稱和Clsid都要改,並且要改徹底了。下面以Shell.application為例來介紹方法。

打開注冊表編輯器【開始→運行→regedit回車】,然後【編輯→查找→填寫Shell.application→查找下一個】,用這個方法能找到兩個注冊表項:“{13709620-C279-11CE-A49E-444553540000}”和“Shell.application”。為了確保萬無一失,把這兩個注冊表項導出來,保存為 .reg 文件。

比如我們想做這樣的更改

13709620-C279-11CE-A49E-444553540000 改名為 13709620-C279-11CE-A49E-444553540001
Shell.application 改名為 Shell.application_ajiang

那麼,就把剛才導出的.reg文件裡的內容按上面的對應關系替換掉,然後把修改好的.reg文件導入到注冊表中(雙擊即可),導入了改名後的注冊表項之後,別忘記了刪除原有的那兩個項目。這裡需要注意一點,Clsid中只能是十個數字和ABCDEF六個字母。

下面是我修改後的代碼(兩個文件我合到一起了):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}]
@="Shell Automation Service"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\InProcServer32]
@="C:\\WINNT\\system32\\shell32.dll"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\ProgID]
@="Shell.Application_ajiang.1"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\TypeLib]
@="{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\Version]
@="1.1"

[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\VersionIndependentProgID]
@="Shell.Application_ajiang"

[HKEY_CLASSES_ROOT\Shell.Application_ajiang]
@="Shell Automation Service"

[HKEY_CLASSES_ROOT\Shell.Application_ajiang\CLSID]
@="{13709620-C279-11CE-A49E-444553540001}"

[HKEY_CLASSES_ROOT\Shell.Application_ajiang\CurVer]
@="Shell.Application_ajiang.1"

你可以把這個保存為一個.reg文件運行試一下,但是可別就此了事,因為萬一黑客也看了我的這篇文章,他會試驗我改出來的這個名字的。
防止列出用戶組和系統進程

我在阿江ASP探針1.9中結合7i24的方法利用getobject("WINNT")獲得了系統用戶和系統進程的列表,這個列表可能會被黑客利用,我們應當隱藏起來,方法是:

【開始→程序→管理工具→服務】,找到Workstation,停止它,禁用它。
防止Serv-U權限提升

其實,注銷了Shell組件之後,侵入者運行提升工具的可能性就很小了,但是prel等別的腳本語言也有shell能力,為防萬一,還是設置一下為好。

用Ultraedit打開ServUDaemon.exe查找Ascii:LocalAdministrator,和#l@$ak#.lk;0@P,修改成等長度的其它字符就可以了,ServUAdmin.exe也一樣處理。

另外注意設置Serv-U所在的文件夾的權限,不要讓IIS匿名用戶有讀取的權限,否則人家下走你修改過的文件,照樣可以分析出你的管理員名和密碼。
利用ASP漏洞攻擊的常見方法及防范

一般情況下,黑客總是瞄准論壇等程序,因為這些程序都有上傳功能,他們很容易的就可以上傳ASP木馬,即使設置了權限,木馬也可以控制當前站點的所有文件了。另外,有了木馬就然後用木馬上傳提升工具來獲得更高的權限,我們關閉shell組件的目的很大程度上就是為了防止攻擊者運行提升工具。

如果論壇管理員關閉了上傳功能,則黑客會想辦法獲得超管密碼,比如,如果你用動網論壇並且數據庫忘記了改名,人家就可以直接下載你的數據庫了,然後距離找到論壇管理員密碼就不遠了。

作為管理員,我們首先要檢查我們的ASP程序,做好必要的設置,防止網站被黑客進入。另外就是防止攻擊者使用一個被黑的網站來控制整個服務器,因為如果你的服務器上還為朋友開了站點,你可能無法確定你的朋友會把他上傳的論壇做好安全設置。這就用到了前面所說的那一大堆東西,做了那些權限設置和防提升之後,黑客就算是進入了一個站點,也無法破壞這個網站以外的東西。
後記

也許有安全高手或者破壞高手看了我的文章會嘲笑或者竊喜,但我想我的經驗裡畢竟還是存在很多正確的地方,有千千萬萬的比我知道的更少的人像我剛開始完全不懂的時候那樣在渴求著這樣一篇文章,所以我必須寫,我不管別人怎麼說我,我也不怕後世會有千千萬萬的人對我唾罵,我一個人承擔下來,我也沒有娘子需要交代的……

因為這其實只是拋磚引玉的做法,從別人的笑聲中,我和我的讀者們都可以學到更多有用的東西。

Copyright © Windows教程網 All Rights Reserved