在 IIS 7 上用於 FTP 的埠號
按照這些說明,我設法在 windows server 2008 (IIS 7) 上為 SSL 配置我的 FTP 伺服器,同時啟用
Require SSL connections
. 但是我無法通過 SSL 連接到 FTP 伺服器。故障排除
伺服器上的已禁用防火牆
-did nmap 到報告以下埠的伺服器:
PORT STATE SERVICE 21/tcp open ftp 53/tcp open domain 88/tcp open kerberos-sec 135/tcp open msrpc 139/tcp open netbios-ssn 389/tcp open ldap 443/tcp open https 445/tcp open microsoft-ds 464/tcp open kpasswd5 593/tcp open http-rpc-epmap 636/tcp open ldapssl 1433/tcp open ms-sql-s 1723/tcp open pptp 3268/tcp open globalcatLDAP 3269/tcp open globalcatLDAPssl 3389/tcp open ms-term-serv 49152/tcp open unknown 49153/tcp open unknown 49154/tcp open unknown 49155/tcp open unknown 49157/tcp open unknown 49158/tcp open unknown 49159/tcp open unknown
-基於我期望看到或打開的 TCP 埠列表。如果我進入 FTP設置,只有一個列表,並且沒有任何其他與 FTP 相關的選項可以添加。如果我嘗試添加 HTTPS
FTPS (990)``SFTP (22)``Bindings...``fto (21)
-
filezilla
作為客戶端嘗試並通過埠 21 進行了以下測試:FTP 模式 ->
Response: 534 Policy requires SSL.
SFTP 模式失敗 -> 客戶端在收到
Response: 220 Microsoft FTP service
FTPS 模式後感到高興 -> 客戶端發送看起來像客戶端的內容,失敗
Response: 451 The parameter is incorrect.
問:我怎樣才能進一步解決這個問題(最終目標是能夠強制安全 FTP 的客戶端)?
其他故障排除
我真的被困在這一點上。我已經嘗試過所有
Filezilla
提供給我的協議(FTPS
,SFTP
,FTPES
):要麼Filezilla
開始談論明文 FTP 並IIS
返回Response: 534 Policy requires SSL
,要麼它嘗試啟動安全連接並且我得到諸如Response: 451 The parameter is incorrect
or之類的響應Response: 431 Failed to setup secure session
。我正在用wireshark 嗅探流量,我可以看到它
filezilla
正在正確使用我設置的埠。我在 IIS 上的 FTP 綁定中添加了幾個埠(例如21
,在每種情況下都正確建立了 TCP 握手)22
,990
無論我嘗試什麼,我都會得到相同的行為。我還查看了 FTP 登錄,
c:\inetpub\logs\LogFiles
我得到的只是無用的消息,例如ControlChannelOpened
,ControlChannelClosed
,AUTH TLS
,AUTH SSL
這無助於理解為什麼事情實際上失敗了。問:如何進一步排除故障(ISS FTP 是否有調試模式)?
你的測試成功了。您設置的實際上是 FTPS 或 FTP-Secure,Filezilla 在您的測試中通過成功的 220 響應注意到了這一點。儘管名稱相似,但 SFTP 是一種完全不同的動物,它通過 SSH(Linux 標準)連接傳輸文件。
埠是不可知的,也就是說,它們並不特別關心您發送的流量是否加密,它們只要求發送方(伺服器)和接收方(客戶端)使用相同的埠的交通。因此,如果您知道您只會通過埠 21 發送流量,請記住伺服器需要 SSL 連接。
如果您不控制客戶端以及允許它們連接的埠,您應該將您的 IIS FTP 埠從預設的 21 更改為行業標準的 990。在 IIS 中更改埠非常簡單,在步驟 4 中您使用的教程,只需將預設埠 21(如下圖所示)更改為 FTPS 埠 990。IIS 控制面板螢幕截圖 http://learn.iis.net/file.axd?i=1612
請記住也將防火牆重置為埠 990,並重新啟動 IIS 伺服器以使更改生效。
更新(現在有 Filezilla 客戶端說明)
我認為我們在找出問題時可能會有點混亂,因此我沒有更改更多設置並可能產生更多問題,而是在我的 Windows 7 筆記型電腦上使用 localhost 創建了一個測試伺服器,並使用 Filezilla 連接到它。因為您向我展示了有關創建 FTP 站點的教程,並且您能夠毫無問題地創建非安全連接,所以我將忽略這一點並專注於 Filezilla 會話,在該會話中問題發生的可能性更大.
首先,我設置了我的預設 FTP 站點,稱為“測試”。請記住,我執行的是 Windows 7,因此即使步驟相同,它們看起來可能與您的伺服器不同。
正如我之前所說,埠並不重要,唯一的要求是伺服器和客戶端使用相同的埠。但是,為了保持慣例,我將繼續使用埠 990。
我告訴 IIS 需要 SSL 連接(預設允許是可以的,但我們想強制客戶端使用 SSL,所以我們明確表示這是我們想要的)。而且,因為我們正在測試,我們將使用預設的 IIS Express 開發證書,如下面的螢幕截圖所示。在現實生活中,您應該從信譽良好的來源獲得 SSL 證書,但如果您不這樣做,您可能能夠連接,但客戶端會發出警告。(披露:我不太熟悉使用 SSL 保護網站,所以我會在向公眾發布您的網站之前確認您的設置)
站點啟動後,請確認您正在使用前綴**ftps://**連接到您的伺服器。這就是 FTP 客戶端知道您需要創建安全連接的方式,也是我不斷重複埠號無關緊要的原因。繼續使用您設置的使用者名和密碼(我使用匿名且無密碼),並在最後插入您的埠號,但如果您使用 FTPS 預設值 990,Filezilla 往往會在你連接。我的日誌顯示在下面的螢幕截圖中。
想到的最後一個問題是:確保伺服器和客戶端之間的時鐘設置正確。它可能會延遲幾個小時,但 SSL 使用時間戳來驗證安全性,並且通常將電腦設置為預設的加利福尼亞時區,並且使用者天真地將時間重置為本地時間而沒有更正時區。這會造成時代的巨大變化,並可能導致奇怪的 SSL 錯誤。
讓我知道您的日誌的外觀,我會看看是否可以從那裡幫助您!