這 F和 噸轉移 磷rotocol (FTP) 仍然是一種廣泛使用的技術,用於通過計算機網絡移動文件。 它以輕便、易於設置和使用而著稱。 FTP 作為一種不安全的協議而聲名狼藉,因為它以純文本形式傳輸密碼和數據。 但是,像 ProFTPD 這樣的現代 FTP 服務器支持基於 TLS 的 FTP,因此使用 TLS/SSL 對連接進行加密。 在本教程中,我將向您展示如何配置 ProFTPD,以便使用 TLS 加密連接。
ProFTPd 是一個開源 FTP 服務器應用程序,它允許您在 Linux 機器上設置自己的 FTP 服務器,如果它們是專用服務器或云實例,則更是如此。 我們將使用 Focal Fossa 存儲庫在 Ubuntu 20.04 機器上安裝最新版本的 ProFTPD,但它也應該適用於大多數基於 Debian 的發行版。 我們還設置了 TLS 來保護 FTP 連接。
先決條件
- 一個全新的服務器實例,安裝了 Ubuntu 20.04 (Focal Fossa)。
- 用於安裝/配置應用程序的 Sudo/root 權限。
更新您的系統
在安裝任何軟件包或軟件之前更新您的系統總是一個好主意,尤其是當它來自外部存儲庫時。 為此,我們將使用“apt-get”實用程序:
sudo apt-get 更新 -y
sudo apt-get 升級 -y
如果有任何內核更新來應用更改,請重新啟動服務器
sudo 馬上重啟
安裝 ProFTPD 服務器
現在您的系統是最新的,我們可以繼續安裝 ProFTPD。
默認情況下,ProFTPD 在 Focal Fossa 存儲庫上可用,您可以使用以下命令安裝:
sudo apt-get install proftpd -y
安裝完成後,就可以啟動proftpd服務並使其在開機時自動啟動。
sudo systemctl 啟動 proftpd
sudo systemctl 啟用 proftpd
現在服務正在運行,我們可以使用以下方法檢查其狀態:
sudo systemctl 狀態 proftpd
您可以看到綠色的活動(正在運行),因此可以安全地得出 proftpd 守護程序按預期工作的結論。
ProFTPD 的默認配置文件位於 /etc/proftpd/proftpd.conf 目錄中。
您可以通過運行來查看配置文件的內容:
sudo 納米 /etc/proftpd/proftpd.conf
該配置被分解為多個指令部分。 讓我們來看看這些指令。
DefaultRoot 指令告訴 FTP 服務器默認在哪裡提供文件。 DefaultRoot 的值可以是絕對路徑或相對路徑。 當 DefaultRoot 指令設置為 ~(波浪號字符)時,用戶將被限制在他們的主目錄中。 您可以將路徑更改為另一個文件夾 example:
DefaultRoot /home/Linux/Docs
您可以使用各種指令將每個用戶設置到特定目錄。 為了 example:
DefaultRoot /home/linux A DefaultRoot / B
這些行表示用戶 A 將登錄到 /home/linux 目錄,而用戶 B 將登錄到整個系統。
ServerName 指令用於定義 FTP 服務器的名稱。 該指令可用於日誌和通知,因此您應該將其設置為對您有意義的描述性名稱。
服務器名稱“Vitux”
Port 指令定義 FTP 服務器將在其上偵聽連接的端口號。 該指令的默認值為 21。
創建 ProFTPD 用戶
出於安全原因,您應該創建一個具有受限權限的虛擬用戶帳戶,該帳戶只能訪問其主目錄。 當您允許用戶在您的 FTP 服務器上上傳或下載文件時,這是一個很好的做法。
已安裝的 ProFTPD 版本不附帶預創建的用戶和開箱即用的配置選項。 為此,我們需要添加一個新用戶。
讓我們創建一個 FTP 用戶 linuxways,文件夾 /home/linuxways 作為主文件夾。
sudo 用戶添加 -m linuxways
為新用戶創建一個新密碼。
sudo 密碼 linuxways
現在您可以使用用戶“linuxways”來測試 FTP 連接。 打開您首選的 FTP 客戶端(FileZilla、CoreFTP 或任何其他客戶端),填寫 IP 地址、用戶名、密碼和端口等詳細信息,然後單擊 快速連接.
如您所見,我們現在可以使用新創建的用戶訪問 FTP。 ProFTPd 服務器正在按預期運行和工作。
如果您想添加更多用戶,只需使用您想要的用戶名使用 useradd 命令創建它們。 如果需要,您還可以向 FTP 用戶授予 root 權限。
為 ProFTPD 配置 TLS
為了保護 FTP 連接,您可以使用 TLS。 在本節中,我們將使用來自的 TLS 證書配置 ProFTPD Let’s Encrypt (免費的 SSL 提供商)並在配置文件中激活新創建的證書。
一、安裝OpenSSL
sudo apt-get install openssl -y
現在我們已經安裝了 OpenSSL,讓我們生成一個 SSL 證書。
sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
讓我們快速看看這裡發生了什麼。 我們正在創建將創建 SSL 證書的目錄 (/etc/ssl),生成證書請求並授予它一年(365 天)的有效期。 我們還指定了私鑰文件和證書文件。 您必須回答一些關於您的組織的問題,如下所示。 只需輸入答案並點擊 Enter
上面的命令將創建兩個文件:proftpd.key 和 proftpd.crt,我們需要配置 ProFTPD。
將密鑰文件的權限和權限改為600。
sudo chmod 600 /etc/ssl/private/proftpd.key
sudo chmod 600 /etc/ssl/certs/proftpd.crt
現在我們需要編輯位於 /etc/proftpd/proftpd.conf 的主配置文件,並添加一些關於我們新創建的證書文件的信息。
sudo 納米 /etc/proftpd/proftpd.conf
通過刪除行開頭的“#”來取消對 SSL 和 TLS 部分的註釋,以便您可以通過 SSL 使用 FTP。
Save 和 close 文件。 現在讓我們配置 tls.conf 文件
sudo 納米 /etc/proftpd/tls.conf
通過刪除每行開頭的“#”來查找並取消註釋以下行。
Save 和 close 文件。 不要忘記重新啟動服務。
sudo systemctl 重啟 proftpd
如果您想檢查是否一切正常,請使用 FTP 客戶端並在啟用 SSL 的情況下連接到您的服務器。 您應該會收到來自 FTP 客戶端的 TLS 警告
從 FTP 客戶端收到 TLS 警告是很常見的。 在您允許或 行 警告,應該建立 SSL 連接,您可以繼續像往常一樣使用 FTP 客戶端。
結論
在本教程中,我們在 Ubuntu 20.04 服務器上安裝了 ProFTPD,為 FTP 連接創建了一個用戶並測試了其功能。 我們還配置了 TLS 以保護 FTP 連接免遭竊聽或篡改傳輸中的數據。 如果您需要有關 ProFTPD 配置選項的更多信息,請務必檢查它們 官方文件.