IIS7上配置FTP7使用IIS管理憑據方式進行驗證

像教授發表於2017-11-26
  在 Windows Server 2008 R2 釋出後,gOxiA 就開始著手於相關的測試和評估。IIS 是重點測試和評估之一!而今天與大家分享的是如何在  IIS7 上配置 FTP7 使用 IIS管理憑據 方式進行身份驗證。提到 MSFTP 服務,恐怕知道的人多,但是真正使用的人少!特別是 IDC 環境下多數會選擇 Serv-U FTP Server,gOxiA 從 Windows Server 2008 開始就不再使用 Serv-U,原因很簡單!Serv-U 不是免費的,此次 Serv-U 預設存在安全隱患。況且開放 FTP 也是為了方便自己維護網站,下載上傳資料用!所以用系統自身的軟體不是更好!維護也相對容易很多!但是,使用過 MSFTP 的朋友知道從  FTP7 開始,微軟才為 MSFTP 設計提供了對非 Windows 身份驗證功能的支援,也就是說如果我們要訪問 MSFTP 則不必再在系統裡新增使用者帳號,而可以使用 IIS 來統一管理單獨的憑據!現在我們再也不用擔心,使用 MSFTP 會存在使用者帳號安全隱患的問題。
        這是一篇 Step by Step,所以其中涉及到的相關原理及知識內容不作過多介紹!我們將通過 IIS7 提供的 IisManagerAuth 身份驗證模組來實現 IIS管理憑據的 FTP 帳號。具體步驟如下:
        在開始配置之前,我們需要修改相關目錄的目錄安全許可權,這一步驟是必須的,否則在登入 FTP 的時候會出現錯誤。如下圖所示,我們會看到由於許可權不足導致無法讀取配置檔案的錯誤提示。而無許可權讀取的檔案是位於 inetsrv\config 下的 redirection.config 檔案。經過 gOxiA 的測試發現即使為該檔案新增了相應的許可權但仍提示登入失敗,最終要配置 config 目錄許可權,賦予 Network Service(FTP7 程式的預設帳戶)有讀取許可權後才能正常登入。
        為了簡單的演示目錄許可權的設定過程,gOxiA 參考了 IIS.net 中相關文章的命令列,其中涉及到的 cacls 可以直接執行就可以得到引數幫助。要執行的命令列如下:
cacls c:\windows\system32\inetsrv\config /G “Network Service”:R /E
        配置了 config 目錄許可權後,請確保 “Network Service”對該目錄下的 administration.config 和 redirection.config 檔案有讀取許可權,否則請執行如下命令列:
cacls c:\windows\system32\inetsrv\config\administration.config /G “Network Service”:R /E
cacls c:\windows\system32\inetsrv\config\redirection.config /G “Network Service”:R /E
 
        之後建立一個 FTP 的預設目錄,注意請新增“Network Service”有完全控制的許可權。
        下面,我們開始配置 IIS7,建立一個 FTP 站點,為其啟用 IisManagerAuth,並建立一個 IIS管理憑據的帳戶,使其具備 FTP 相應的訪問許可權。
        在開始之前請確認已經安裝了 IIS7 的 管理服務元件,否則請進入伺服器管理,單擊新增角色服務,選中 IIS7 的管理服務元件,進行安裝。
 
 
        預設可以使用 C:\Inetpub\Ftproot 作為 FTP 主目錄,當然也可以根據自己的需要建立或選擇一個目錄,但是需要注意,請賦予“Network Service”有完全控制許可權。
        下來我們配置 IIS7 啟用 IIS管理器憑據,在啟用之後才能使用 IisManagerAuth。為此,開啟 IIS管理器,雙擊“管理服務”,選中“Windows 憑據或 IIS 管理器憑據”,最後單擊右邊操作列表下的“應用”。
 
        之後使用“IIS管理器使用者”建立一個 IIS 所管理的使用者帳號。為此,雙擊“IIS 管理器使用者”,單擊“新增使用者”,在彈出的窗體中輸入使用者名稱和密碼。
 
 

 
        上述操作一旦完成,就可以開始建立一個 FTP 站點,首先選中 IIS 管理器左邊的導航窗體中的“網站”,之後單擊滑鼠右鍵,左鍵單擊“新增 FTP 站點…”。
 
        “站點資訊”中輸入 FTP 站點名稱,如:Default FTP Site。並選擇預設的內容目錄,本例中 gOxiA 使用的是 C:\inetpub\ftproot,單擊“下一步”。
 
        在“繫結和 SSL 設定”中,根據需要啟用虛擬主機名,注意:FTP“虛擬主機名”可能不被一些客戶端所支援。此外請將 SSL 預設的配置“需要”更改為“允許”,否則如果不配置 SSL 證書並使用 SSL FTP 登入方式將導致客戶端連線失敗。
 
        在“身份驗證和授權資訊”配置中,更具需要選擇身份驗證方式,並指定一個使用者和許可權。如果你只允許 IIS管理器使用者能夠訪問該 FTP 站點,那麼這一步可以不配置,直接單擊“完成”。方便大家的學習,本例中允許系統使用者中的 Administrator 對該 FTP 有讀取和寫入的許可權。
 
        現在以 Windows 身份驗證方式的 FTP 站點已經建立好了,下面我們可以使用 Administrator 來登入 FTP。
 
        經過測試,建立的 FTP 站點已經正常執行,下面我們將要為該 FTP 站點新增之前建立的 IIS管理器使用者 — goxia 有相應的訪問許可權。
        首先,選中“Default FTP Site”,在內容窗體中雙擊“FTP 身份驗證”,進入“FTP 身份驗證”設定後單擊右邊操作中的“自定義提供程式…”,在彈出窗體中勾選“IisManagerAuth”。
 
 
 
        啟用了 IisMangerAuth 後,開啟“FTP 授權規則”,新增指定的使用者 — goxia,並賦予有相應的訪問許可權。
 
 
 
        最後我們來使用 goxia 這個 IIS 管理器使用者登入 FTP 進行測試。
 
        如果首次登入失敗,提示無法驗證使用者和密碼,則需要開啟該 FTP 站點的“IIS 管理器許可權”設定,新增 goxia 這個帳號。之後測試登入成功後再將其帳號從中刪除即可。查詢 IIS.net 的相關指引文件,發現預設是要執行這步配置的,但是 gOxiA 認為這一步是配置使用者是否具有該 FTP 的遠端管理許可權的,一旦配置並啟用 IIS 的遠端管理服務,那麼該帳號具備的許可權可能會造成安全隱患。目前 gOxiA 也未完全理解。希望有網友指點一二!
 
 



本文轉自 蘇繁 51CTO部落格,原文連結:http://blog.51cto.com/goxia/224756,如需轉載請自行聯絡原作者


相關文章