一、創作背景
??????? 之前有用linux系統搭建過ftp服務器,最近想著用windows系統也順便搭建一個,看網上有第三方服務軟件一鍵部署,記得windows可以不借助第三方軟件就可以搭建,就想順便操作試試,結果老是連接不上,費了點時間,在這里總結下操作的步驟,并記錄下搭建過程遇到的一些問題。
二、環境準備
虛擬機軟件:VMware? Workstation 16 Pro
操作系統:windows 7 企業版
三、操作步驟
(一)啟用IIS及FTP服務
??? ??? 1、開啟windows功能
?????????????? 打開控制面板->程序->啟用或關閉windows功能->勾選:
?????????????? 1) Internet信息服務->展開后勾選FTP服務器、FTP擴展性
?????????????? 2) Web管理工具->IIS管理控制臺
??????????????? 點擊確定等待安裝完成。
????????2、驗證IIS安裝
????????????????安裝完成后,在【開始】菜單->搜索"IIS"->打開Internet信息服務(IIS)管理器
(二)配置用戶賬戶與權限
????????1、創建專用FTP用戶
????????右鍵“計算機” ->管理?->本地用戶和組 ->用戶 ->右鍵新建用戶?-> 設置用戶名及密碼(建議勾選“密碼永不過期”)?
????????2、設置文件夾權限
????????右鍵共享文件夾 ->屬性?->安全 ->添加新建的用戶 ->勾選“讀取”和“寫入”權限?。
?(三)創建FTP站點
????????1、新建站點?
????????? 在IIS管理器中->右鍵“網站”->選擇“添加FTP站點”->輸入站點名稱(如MyFTP)->設置站點目錄的物理路徑。
????????2、配置綁定與SSL
????????1)IP地址:選擇本機IP或“全部未分配”(若需局域網訪問建議綁定具體IP)
????????2)端口:默認21(若端口沖突可改為2121等)
????????3)SSL:選擇“無SSL”或根據需求啟用加密?
????????3、設置身份驗證與權限
????????1)身份驗證:勾選“基本身份驗證”
????????2)授權:選擇“指定用戶”或“所有用戶” -> 設置讀取/寫入權限?。
(四)防火墻與網絡配置
????????1、開放防火墻端口
手工配置防火墻入站規則:
????????1)控制面板?-> 系統和安全 -> Windows防火墻?-> 高級設置?-> 右鍵入站規則?-> 新建規則 -> 允許TCP端口21(或自定義端口)?;
規則類型:端口
協議和端口:TCP、特定本地端口21
操作:允許連接
配置文件:專用、公用
名稱:允許TCP端口21
新添加的入站規則默認啟用
????????2)若使用被動模式,需額外開放TCP端口范圍1024-65535?。
使用FTP服務器自帶防火墻配置:
控制面板?-> 系統和安全 -> Windows防火墻 -> 允許程序或功能通過Windows防火墻 -> 更改設置 -> 勾選FTP服務器(家庭、公用)-> 確定
????????2、局域網/外網訪問測試
????????在宿主機上,打開CMD窗口,執行ftp IP地址 -> 輸入賬號密碼驗證連接
四、問題思考
1、當用宿主機文件資源管理器,目錄框內輸入ftp://IP地址,并且輸入賬號密碼連接,提示FTP文件夾錯誤,但是使用CMD窗口鍵入命令正常連接。
通過查看日志文件發現,這兩種連接方式有區別
通過CMD窗口輸入命令連接ftp服務器采用主動模式,而window資源管理器連接ftp服務器默認采用被動模式,而防火墻沒有配置或啟用被動模式的高位端口的入站規則,所以導致數據傳輸通道建立失敗。
擴展
ftp服務器的主動模式與被動模式
主動模式:
客戶端通過21端口連接服務器,發送PORT命令將自身ip與特定端口告知服務器,服務器主動通過20端口與客戶端特定端口建立數據通道進行數據傳輸。
被動模式:
客戶端向通過21端口連接服務器,發送PASV命令采用被動模式,服務器隨機返回高位端口(1024-65535?)進行監聽,客戶端主動與服務器高位端口建立數據通道進行數據傳輸。
2、手工配置防火墻時只需要添加入站規則,不需要添加出站規則的嘛?
防火墻入站規則嚴格控制,默認阻止所有入站流量,而出站規則寬松,默認允許所有出站流量,與允許通過入站流量相反,配置出站規則是為了阻止數據傳出,例如防止惡意軟件外傳數據、限制訪問某些不信任的危險網站等
3、ftp站點的文件夾目錄安全屬性不配置 ftp_user用戶權限會怎樣?配置的權限分別有什么作用?
默認情況下,通過計算機管理界面創建的新用戶,隸屬用戶組為Users,如果配置的ftp根目錄的安全屬性列表沒有配置的新用戶訪問對象,則按照Users用戶組的權限去執行(Users用戶組默認沒有寫入權限),但是如果安全屬性列表里訪問對象有Authenticated Users經過身份驗證的用戶組(默認有寫入權限),ftp服務器有配置身份驗證,經過身份驗證的用戶可以按照Authenticated Users用戶組的訪問控制權限去操作ftp根目錄文件內容。不同文件路徑下新建文件的安全屬性-可訪問對象用戶組可能不同:
配置ftp站點目錄可訪問對象(用戶和用戶組)的可操作權限,最常用的就是讀取、寫入權限,擁有讀取權限可查看ftp根目錄(站點目錄)的文件內容和下載文件,而擁有寫入權限則可以上傳文件。
五、總結
??????? FTP服務器搭建其實很簡單的,通過反復測試,其實是VMware虛擬機網絡配置的問題,我虛擬機采用的NAT模式,由于都是宿主機與虛擬機測試不涉及外網設備也不需要開啟端口轉發功能。之前一直卡在防火墻配置那塊,手動配置入站規則能正常連接訪問,自動配置的入站規則啟用后,老是連接不上,后面把VM虛擬網絡編輯器打開重置了下網絡配置,重啟虛擬機后又能正常訪問(⊙﹏⊙) 當所有配置都沒有問題的時候,然后一直出現連接ftp服務器超時的時候,大家可以考慮下重置一下虛擬機的網絡。還有就是站點權限編輯的問題,如果文件安全屬性有Authenticated Users,那新建的用戶可以不配讀取寫入權限,沒有這個用戶組的話,USERS組默認也有讀取權限,就是沒有寫入權限,上傳不了文件,對用戶及用戶組權限感興趣的可以去研究一下windows各類用戶組具體的作用及應用場景。