Serv-U默認是以System組的身份運行的,對本機有完全操作的權限。所以如果攻擊者利用Serv-U程序的漏洞而獲得了可執行shell,那么他將可以操作系統里任何一個目錄。
Liunx系統和Unix系統比Windows安全的一個重要原因在于:Linux和Unix的系統服務不使用root權限,而是使用權限比較低的另外一個單獨用戶,比如web服務使用了nobody這個用戶。
為了提升Serv-U的安全級,我們為Serv-U創建一個獨立的用戶,并且讓Serv-U用這個用戶的身份來運行。這樣即使Serv-U由于出現了漏洞而被進攻,也只能影響到有限的數據,不能影響到系統關鍵文件。
首先建立一個用戶,名稱可以任意定義,比如叫做ftpuser。進入開始 -> 控制面板 -> 管理工具 -> 計算機管理,找到用戶一項,點擊右鍵選擇添加。打開一個記事本,隨便敲擊一段密碼,越復雜越好,16位以上為佳。把這段密碼復制下來,貼到創建新用戶的對話框里邊去。
下邊修改磁盤權限,首先修改Serv-U的安裝目錄。點擊右鍵,選擇屬性。切換到安全標簽??梢钥吹疆斍澳夸浀臋嘞奘侵挥泄芾韱T和系統用戶能夠操作。點擊添加,在用戶名那里輸入ftpuser,即剛才新建的那個用戶。然后點擊確定。將ftpuser的權限設置為“讀取及運行”、“列出文件夾目錄”、“讀取”。進入目錄,找到ServUAdmin.ini文件,點擊右鍵,選擇屬性。點擊安全的標簽,可以看到當前的文件權限,和剛才設置的目錄權限是一致的。我們給他添加“修改”和“寫入”的許可權限。在“D:\Serv-U”目錄下找到ServUDaemon.ini這個文件,也給他添加“修改”和“寫入”的許可權限。
接下來給站點目錄添加Serv-U的讀寫權限。給你開設的所有站點分別給予ftpuser權限,并將其權限設置為除了完全操作之外的所有權限。
現在對C盤設置權限。為了不讓Serv-U的運行用戶ftpuser讀寫cmd.exe等文件,我們需要給其添加禁止寫入的權限。找到C:\WINNT\system32\cmd.exe,點擊右鍵選擇屬性,進入安全,然后添加禁止任何操作的權限。通理,給C:\WINNT\explorer.exe也設置禁止操作的權限。
另外,還需要在“本地安全設置”,設置禁止ftpuser用戶本地登陸。進入控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 用戶權利指派 -> 拒絕本地登陸。
設置都完成后,我們把Serv-U的啟動身份切換到ftpuser。進入控制面板 -> 管理工具 -> 計算機管理,找到Serv-U的服務。雙擊它,打開“登陸”對話框。當前默認為“本地系統帳戶”。修改為ftpuser用戶,并且把剛才設置的復雜密碼填寫進去 。 點擊確定,并且重新啟動服務。
經過如此設置,ftpuser運行者將只能讀寫規定的站點目錄,對其他目錄沒有寫入權限。而其本身是非system身份的普通用戶,降低了他對系統的潛在危險。