
我目前正在嘗試在 ubuntu 16.04 伺服器上設定 VSFTPD,並且我想使用 FTPS(理想情況下我會使用 SFTP,但不幸的是我受到舊系統的限制)
我已經成功地使用預設配置進行了設置,並且沒有使用 TLS,並且我可以通過 filezilla 正常連接。積極的結果。
我的 vsftpd.conf 檔案中的憑證詳細資訊如下:
rsa_cert_file=/path/to/fullchain.pem
rsa_private_key_file=/path/to/privkey.pem
allow_anon_ssl=NO
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
但是我無法再連接 filezilla 控制台中顯示的以下內容:
Status: Verifying certificate...
Status: TLS connection established.
Status: Server does not support non-ASCII characters.
Status: Logged in
Status: Retrieving directory listing...
Status: Server sent passive reply with unroutable address. Using server address instead.
Command: LIST
Error: Connection timed out after 20 seconds of inactivity
Error: Failed to retrieve directory listing
這是我第一次配置 VSFTPD,所以我一直在網路上學習一些教學。他們還涉及 UFW,我已經打開了端口,如圖所示。
我還嘗試將以下行添加到我的 vsftpd.conf 檔案中
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
我看過其他帖子提到 pasv_address 選項
所以我嘗試使用伺服器的外部 IP 將其添加到我的配置中 - 請注意它託管在 Google Compute Engine 上,我還更新了 Compute 中的防火牆規則以允許教程中指定的相同連接埠等。但這也行不通。
我只能假設這與連接埠/防火牆或其他 TLS 選項有關,但我完全被難住了。我想我有谷歌雲端網路防火牆然後 ufw 並沒有幫助(儘管禁用 ufw 沒有效果)
我的 ufw 規則如下:
20/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
990/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
如果有人想了解更多信息,我遵循的教程在這裡:配置 ftp 訪問
vsftpd.log 中似乎沒有任何日誌表明存在問題,但在 filezilla 中開啟詳細日誌記錄會顯示以下內容:
綁定資料連線來源IP到控制連線來源IP 192.168.1.100
我認為這可能是一個問題,因為它看起來像本地 IP。雖然我很困惑如何解決這個問題,特別是因為我的 vsftpd.conf 檔案中也有以下內容:
pasv_address=(外部 GOOGLE 運算 IP)
我的 Google Cloud 防火牆規則是:
IP ranges: 0.0.0.0/0
tcp:20-21
Allow
1000
default
pass-ports
sftp
IP ranges: 0.0.0.0/0
tcp:40000-50000
(這些最終將被鎖定 IP,但即使進行了所有測試,我也無法使其正常工作)
而且在我的 vsftpd.conf 檔案中,我相信我添加了這些連接埠作為要透過以下方式使用的連接埠:
port_enable=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=41000
更新
我現在可以使用 lftp 和以下參數從盒子本身連接到此
設定 ftp:ssl-force true
我透過網域名稱而不是 IP 進行連接,因為憑證會對應到網域,因此它無法與 IP 一起使用。
然後我可以透過命令列建立新目錄等。但是,如果我嘗試這樣做ls
,ls at 0 [Making data connection...]
它就會掛在那裡。我還透過外部 FTP 用戶端(例如 filezilla)收到錯誤。這只是在LIST
命令中超時
Command: LIST
Error: The data connection could not be established: ETIMEDOUT - Connection attempt timed out
Response: 425 Failed to establish connection.
Error: Failed to retrieve directory listing
Error: GnuTLS error -15: An unexpected TLS packet was received.
Status: Disconnected from server: ECONNABORTED - Connection aborted
我認為可能相關的唯一其他資訊是該網域是由 NGINX 轉發到節點應用程式的連接埠。但我認為這只應該對連接埠 80 和 443 執行此操作,因此不應影響連接埠 21。
有人有什麼想法嗎?