VSFTPD TLS 與顯式模式

VSFTPD TLS 與顯式模式

我目前正在嘗試在 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 一起使用。

然後我可以透過命令列建立新目錄等。但是,如果我嘗試這樣做lsls 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。

有人有什麼想法嗎?

相關內容