如何在 Ubuntu 20.04LTS 上使用 TLS 安裝 ProFTPD


通過 FTP(文件傳輸協議)傳輸文件可能是將文件上傳到服務器的最常見方式之一。 ProFTPD 是一種流行且多功能的 FTP 服務器,可作為支持 TLS (SSL) 以實現安全連接的開源軟件。

默認情況下,密碼和數據以明文形式傳輸,因此 FTP 是一種不安全的協議。正如我們在本指南中所做的那樣,您可以使用 TLS 加密所有通信並使 FTP 更加安全。

本文介紹如何在 Ubuntu Server 20.04LTS 上使用 TLS 配置 proftpd。

先決條件

  1. Ubuntu 服務器 20.0464 位
  2. sudo / root 權限

在本教程中做什麼

  1. 安裝 ProFTPD 和 TLS。
  2. 設置 ProFTPD。
  3. 添加 FTP 用戶。
  4. 使用 ProFTPD 設置 TLS。
  5. 測試。

安裝 Proftpd 和 OpenSSL

Proftpd 和 OpenSSL 在 Ubuntu 存儲庫中可用,可以使用 apt 命令安裝。

sudo apt-get install -y proftpd openssl

ProFTPD 安裝如下。安裝過程不會提示您輸入。

接下來,確保 proFTPD 已安裝並啟動。運行以下命令。

sudo proftpd --version

檢查安裝的 ProFTPD 版本。然後檢查服務狀態並使用 systemctl 命令運行查詢。

sudo systemctl status proftpd

ProFTPD服務狀態

ProFTPD 設置

安裝 ProFTPD 後,您需要調整配置以成為功能齊全且安全的服務器。 ProFTPD配置文件位於/etc/proftpd/目錄——編輯文件proftpd.conf。

sudo nano /etc/proftpd/proftpd.conf

[サーバー名]在該行中,將值替換為主機名或域。

ServerName                      "My FTP-Server"

取消註釋 DefaultRoot 行,為所有用戶啟用 jail。

DefaultRoot   		~

然後使用 systemctl 命令重新啟動 ProFTPD,如下所示:

sudo systemctl restart proftpd

添加 FTP 用戶

有兩種類型的 FTP 用戶可用:匿名 FTP 用戶和“普通”FTP 用戶。

  1. 匿名 FTP: 任何沒有用戶帳號和密碼的人都可以訪問 FTP 服務器。這不應該在公共服務器上使用,但它可以是您的家庭服務器或公司 LAN 上的一個選項。
  2. FTP用戶: 只有擁有用戶帳號和密碼的人才能訪問 FTP 服務器。

在創建 FTP 服務器用戶之前,在 /etc/shells 文件中添加 /bin/false。

sudo echo "/bin/false" >> /etc/shells

然後創建一個具有特定主目錄的用戶,禁用 shell 訪問並允許 FTP 服務器。

sudo useradd -m -s /bin/false tom
sudo passwd tom

上面的命令創建了一個名為 tom 的新用戶,其主目錄為 /home/tom/,但對 /bin/false 沒有 shell 訪問權限。

添加 FTP 用戶

接下來,配置 ProFTPD 以便用戶 tom 可以訪問 FTP 服務器。

sudo nano /etc/proftpd/conf.d/tom.conf

添加此配置文件以允許用戶 tom 登錄並從服務器上傳/下載文件。

<Directory /home/tom>
  Umask 022 022
  AllowOverwrite off
  <Limit LOGIN>
    AllowUser tom
    DenyALL
  </Limit>
  <Limit ALL>
    Order Allow,Deny
    AllowUser tom
    Deny ALL
  </Limit>
  <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
    AllowUser tom
    Deny ALL
  </Limit>
</Directory>

該文件如下所示:

每個用戶配置文件的 ProFTPD

保存文件並退出 nano。然後重新啟動 ProFTPD。

sudo systemctl restart proftpd

您可以在此階段使用 FTP,但在下一步使用 TLS 會更安全。

使用 proftpd 配置 TLS

要使用 TLS,您需要創建 SSL 證書。 使用 OpenSSL 命令生成 SSL 證書。

sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365

上述命令會在/etc/ssl/certs/目錄下生成證書文件proftpd.crt,在/etc/ssl/private/目錄下生成證書密鑰文件proftpd.key。

生成 SSL 證書

然後將證書文件權限更改為 600。

sudo chmod 600 /etc/ssl/certs/proftpd.crt
sudo chmod 600 /etc/ssl/private/proftpd.key

現在回到/etc/proftpd目錄,設置ProFTPD使用生成的SSL證書。

nano /etc/proftpd/proftpd.conf

取消註釋 TLS 行。

Include /etc/proftpd/tls.conf

保存 tls.conf 文件並退出。

然後編輯 TLS 配置文件以啟用安全身份驗證。

nano /etc/proftpd/tls.conf

取消註釋所有這些行。

TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23

TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired

TLSVerifyClient                         off

TLSRequired                             on

保存並退出。最後一步是重新啟動 ProFTPD 服務器。

sudo systemctl restart proftpd

測試 ProFTPD

要測試配置,請嘗試使用 FileZilla 等軟件連接到 FTP 服務器(我 FileZilla 在此處輸入服務器 IP、用戶名、密碼和端口)。

Server IP : 192.168.0.100
username : tom
Password ******
Port : 21

下一個,[クイック接続]點擊。

FileZilla 快速連接

[OK]單擊以檢查自簽名 SSL 證書。

接受自簽名 SSL 證書

您可以看到您使用 TLS / SSL 證書登錄到 FTP 服務器。

關聯

  • ProFTPD 軟件項目。 協會



Source link