Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> 服務器FSO設置教程!防ASP木馬

服務器FSO設置教程!防ASP木馬

日期:2017/2/8 10:35:32      編輯:關於服務器

現在絕大多數的虛擬主機都禁用了 ASP 的標准組件:FileSystemObject,因為這個組件為 ASP 提供了強大的文件系統訪問能力,可以對服務器硬盤上的任何文件進行讀、寫、復制、刪除、改名等操作(當然,這是指在使用默認設置的 Windows NT / 2000 下才能做到)。但是禁止此組件後,引起的後果就是所有利用這個組件的 ASP 將無法運行,無法滿足客戶的需求。
  如何既允許 FileSystemObject 組件,又不影響服務器的安全性(即:不同虛擬主機用戶之間不能使用該組件讀寫別人的文件)呢?這裡介紹本人在實驗中獲得的一種方法,下文以 Windows 2000 Server 為例來說明。
  在服務器上打開資源管理器,用鼠標右鍵點擊各個硬盤分區或卷的盤符,在彈出菜單中選擇“屬性”,選擇“安全”選項卡,此時就可以看到有哪些帳號可以訪問這個分區(卷)及訪問權限。默認安裝後,出現的是“Everyone”具有完全控制的權限。點“添加”,將“Administrators”、“Backup Operators”、“Power Users”、“Users”等幾個組添加進去,並給予“完全控制”或相應的權限,注意,不要給“Guests”組、“IUSR_機器名”這幾個帳號任何權限。然後將“Everyone”組從列表中刪除,這樣,就只有授權的組和用戶才能訪問此硬盤分區了,而 ASP 執行時,是以“IUSR_機器名”的身份訪問硬盤的,這裡沒給該用戶帳號權限,ASP 也就不能讀寫硬盤上的文件了。
  下面要做的就是給每個虛擬主機用戶設置一個單獨的用戶帳號,然後再給每個帳號分配一個允許其完全控制的目錄。
  如下圖所示,打開“計算機管理”→“本地用戶和組”→“用戶”,在右欄中點擊鼠標右鍵,在彈出的菜單中選擇“新用戶”: 

在彈出的“新用戶”對話框中根據實際需要輸入“用戶名”、“全名”、“描述”、“密碼”、“確認密碼”,並將“用戶下次登錄時須更改密碼”前的對號去掉,選中“用戶不能更改密碼”和“密碼永不過期”。本例是給第一虛擬主機的用戶建立一個匿名訪問 Internet 信息服務的內置帳號“IUSR_VHOST1”,即:所有客戶端使用 http://***.***.***x/ 訪問此虛擬主機時,都是以這個身份來訪問的。輸入完成後點“創建”即可。可以根據實際需要,創建多個用戶,創建完畢後點“關閉”:

現在新建立的用戶已經出現在帳號列表中了,在列表中雙擊該帳號,以便進一步進行設置:


在彈出的“IUSR_VHOST1”(即剛才創建的新帳號)屬性對話框中點“隸屬於”選項卡:

剛建立的帳號默認是屬於“Users”組,選中該組,點“刪除”:

現在出現的是如下圖所示,此時再點“添加”:

在彈出的“選擇 組”對話框中找到“Guests”,點“添加”,此組就會出現在下方的文本框中,然後點“確定”:

出現的就是如下圖所示的內容,點“確定”關閉此對話框:

打開“Internet 信息服務”,開始對虛擬主機進行設置,本例中的以對“第一虛擬主機”設置為例進行說明,右擊該主機名,在彈出的菜單中選擇“屬性”:

彈出一個“第一虛擬主機 屬性”的對話框,從對話框中可以看到該虛擬主機用戶的使用的是“F:\VHOST1”這個文件夾:

暫時先不管剛才的“第一虛擬主機 屬性”對話框,切換到“資源管理器”,找到“F:\VHOST1”(原文是單只修改這一個目錄,我覺得還是把整個盤符的everyone權限去了,增加administrators組,比較好)這個文件夾,右擊,選“屬性”→“安全”選項卡,此時可以看到該文件夾的默認安全設置是“Everyone”完全控制(視不同情況顯示的內容不完全一樣),首先將最將下的“允許將來自父系的可繼承權限傳播給該對象”前面的對號去掉:

將如圖中所示的“Administrator”(原文寫的是administrator 但我覺得還是應該是administrators組,比較好)及在前面所創建的新帳號“IUSR_VHOST1”添加進來,將給予完全控制的權限,還可以根據實際需要添加其他組或用戶,但一定不要將“Guests”組、“IUSR_機器名”這些匿名訪問的帳號添加上去!

再切換到前面打開的“第一虛擬主機 屬性”的對話框,打開“目錄安全性”選項卡,點匿名訪問和驗證控制的“編輯”:

在彈出的“驗證方法”對方框(如下圖所示),點“編輯”:

彈出了“匿名用戶帳號”,默認的就是“IUSR_機器名”,點“浏覽”:


在“選擇 用戶”對話框中找到前面創建的新帳號“IUSR_VHOST1”,雙擊:

此時匿名用戶名就改過來了,在密碼框中輸入前面創建時,為該帳號設置的密碼:

再確定一遍密碼:

OK,完成了,點確定關閉這些對話框。
  經此設置後,“第一虛擬主機”的用戶,使用 ASP 的 FileSystemObject 組件也只能訪問自己的目錄:F:\VHOST1 下的內容,當試圖訪問其他內容時,會出現諸如“沒有權限”、“硬盤未准備好”、“500 服務器內部錯誤”等出錯提示了。
  另:如果該用戶需要讀取硬盤的分區容量及硬盤的序列號,那這樣的設置將使其無法讀取。如果要允許其讀取這些和整個分區有關的內容,請右鍵點擊該硬盤的分區(卷),選擇“屬性”→“安全”,將這個用戶的帳號添加到列表中,並至少給予“讀取”權限。由於該卷下的子目錄都已經設置為“禁止將來自父系的可繼承權限傳播給該對象”,所以不會影響下面的子目錄的權限設置。


有不懂的可以與本站交流!!

Copyright © Windows教程網 All Rights Reserved