Windows

在 IIS 7 上用於 FTP 的埠號

  • March 14, 2020

按照這些說明,我設法在 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 相關的選項可以添加。如果我嘗試添加 HTTPSFTPS (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 incorrector之類的響應Response: 431 Failed to setup secure session

我正在用wireshark 嗅探流量,我可以看到它filezilla正在正確使用我設置的埠。我在 IIS 上的 FTP 綁定中添加了幾個埠(例如21,在每種情況下都正確建立了 TCP 握手) 22990無論我嘗試什麼,我都會得到相同的行為。

我還查看了 FTP 登錄,c:\inetpub\logs\LogFiles我得到的只是無用的消息,例如 ControlChannelOpened, ControlChannelClosed, AUTH TLSAUTH 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,因此即使步驟相同,它們看起來可能與您的伺服器不同。 IIS管理畫面

正如我之前所說,埠並不重要,唯一的要求是伺服器和客戶端使用相同的埠。但是,為了保持慣例,我將繼續使用埠 990。

我告訴 IIS 需要 SSL 連接(預設允許是可以的,但我們想強制客戶端使用 SSL,所以我們明確表示這是我們想要的)。而且,因為我們正在測試,我們將使用預設的 IIS Express 開發證書,如下面的螢幕截圖所示。在現實生活中,您應該從信譽良好的來源獲得 SSL 證書,但如果您不這樣做,您可能能夠連接,但客戶端會發出警告。(披露:我不太熟悉使用 SSL 保護網站,所以我會在向公眾發布您的網站之前確認您的設置) SSL 設置螢幕

站點啟動後,請確認您正在使用前綴**ftps://**連接到您的伺服器。這就是 FTP 客戶端知道您需要創建安全連接的方式,也是我不斷重複埠號無關緊要的原因。繼續使用您設置的使用者名和密碼(我使用匿名且無密碼),並在最後插入您的埠號,但如果您使用 FTPS 預設值 990,Filezilla 往往會在你連接。我的日誌顯示在下面的螢幕截圖中。 Filezilla 日誌螢幕

想到的最後一個問題是:確保伺服器和客戶端之間的時鐘設置正確。它可能會延遲幾個小時,但 SSL 使用時間戳來驗證安全性,並且通常將電腦設置為預設的加利福尼亞時區,並且使用者天真地將時間重置為本地時間而沒有更正時區。這會造成時代的巨大變化,並可能導致奇怪的 SSL 錯誤。

讓我知道您的日誌的外觀,我會看看是否可以從那裡幫助您!

引用自:https://serverfault.com/questions/357960