FTP 是文件傳輸協議的縮寫,是一種流行的協議,用於在 FTP 服務器之間傳輸文件。 但是,它充滿了安全風險,因為它以純文本形式發送數據和敏感信息,例如用戶名和密碼。 VSFTPD (Very Secure FTP Daemon) 是一個快速、安全和穩定的 FTP 服務器,它使用加密來保護與服務器交換的數據。
在本教程中,我們將學習如何 安裝 vsftpd FTP 服務器 在 Debian 11.
第 1 步:在 Debian 11 上安裝 vsftpd
首先,打開終端並更新 Debian 服務器上的軟件包列表。
$ sudo apt update
vsftpd 軟件包託管在官方 Debian 存儲庫中。 因此,請使用 APT 包管理器,如圖所示。
$ sudo apt install vsftpd
該命令安裝 vsftpd 以及其他依賴項。 安裝後,vsftpd 會自動啟動。 您可以通過運行以下命令來確認這一點:
$ sudo systemctl status vsftpd
從輸出中,您可以看到 vsftpd 正在按預期運行。
如果 vsftpd 服務沒有在您的情況下運行,您可以按照指示啟動它。
$ sudo systemctl start vsftpd
然後啟用該服務以在啟動時啟動。
$ sudo systemctl enable vsftpd
第 2 步:創建唯一的 FTP 用戶
接下來,我們將創建一個唯一的 FTP 用戶帳戶,用於登錄 FTP 服務器。 只需使用 adduser
命令後跟用戶名並相應地響應提示。
$ sudo adduser ftpuser

步驟 3:將 FTP 用戶添加到允許登錄用戶列表中
繼續我們將 FTP 用戶添加到 vsftpd.userlist
文件。 此文件中指定的本地用戶被授予訪問 FTP 服務器的權限。
所以,執行命令:
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

完美的。 現在讓我們繼續並配置 vsftpd。
第四步:創建FTP用戶目錄
接下來,為 FTP 用戶創建一個 FTP 目錄並分配適當的目錄權限和所有權。
$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir
第五步:配置vsftpd
在我們可以登錄並開始與服務器交互之前,需要一些額外的步驟。 繼續並編輯主配置文件 – /etc/vsftpd.conf
.
$ sudo vim /etc/vsftpd.conf
您需要確保設置了幾個設置。
讓我們先從 FTP訪問. 默認情況下,匿名用戶被授予訪問權限。 但出於安全目的,這不是我們想要的。 因此,我們將禁止匿名用戶登錄,只授予本地用戶訪問權限。
anonymous_enable=NO
local_enable=YES
接下來,您需要允許本地用戶上傳文件並獲得對其主目錄的訪問權,以及按照指示對文件進行更改。
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
此外,您可以通過僅指定包含在文件中的用戶來限制可以訪問和上傳文件的本地用戶 vsftpd.userlist
文件。
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
為了提供到服務器的安全 FTP 連接,我們需要使用 SSL 證書對服務器進行加密。 我們將生成一個自簽名 SSL 證書來加密服務器。 為此,請運行命令。
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
再次返回默認配置文件,粘貼這些行以指定生成的 SSL 證書的路徑並啟用 SSL。
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
總之,您的配置文件應包含以下幾行:
聽=否
listen_ipv6=是
匿名_啟用=否
local_enable=是
寫啟用=是
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=是
connect_from_port_20=是
chroot_local_user=是
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=是
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=否
要使更改生效,請重新啟動服務器。
$ sudo systemctl restart vsftpd
只是為了確保一切正常,您可以驗證其運行狀態。
$ sudo systemctl status vsftpd
第五步:訪問vsftpd服務器
我們現在完成了配置。 最後一點是登錄。如果您啟用了防火牆,請允許端口 20 和 21。
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
然後重新加載防火牆以應用更改。
$ sudo ufw reload
最後,抓起你的FileZilla等FTP客戶端,詳細填寫如下:
主持人: sftp://server-IP
用戶名: 用戶
密碼: ftpuser 的密碼
填寫詳細信息後,單擊“QuickConnect”按鈕。

成功列出目錄後,您現在可以開始通過 SSL 安全地傳輸文件。

在命令行上,只需運行以下命令:
$ sftp ftpuser@server-IP
在提示繼續時輸入“是”並向 FTP 用戶提供密碼以登錄。

結論
這是我們學習如何在 Debian 11 上安裝 vsftpd FTP 服務器的教程。我們進一步創建了用戶,配置了服務器,並從 FTP 客戶端和命令行登錄。