是 Linux 下的一款小巧輕快、安全易用的 FTP 伺服器軟體。本教程以
CentOS 7.264位作業系統為例,說明
如何在 Linux 執行個體上安裝并配置 vsftpd。
步驟一: 安裝 vsftpd
- 遠端連接配接 并登入到 Linux 執行個體。
- 運作指令
安裝 vsftpd。出現下圖表示安裝成功。 http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705512598_zh-CN.pngyum install -y vsftpd
- 運作以下指令進入
目錄,并檢視該目錄下的檔案。/etc/vsftpd
http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705612599_zh-CN.png 說明cd /etc/vsftpd ls
-
是 vsftpd 的核心配置檔案。/etc/vsftpd/vsftpd.conf
-
是黑名單檔案,此檔案裡的使用者不允許通路 FTP 伺服器。/etc/vsftpd/ftpusers
-
是白名單檔案,此檔案裡的使用者允許通路 FTP 伺服器。/etc/vsftpd/user_list
-
- 運作以下指令設定FTP服務開機自啟動。
systemctl enable vsftpd.service
- 運作以下指令啟動 FTP 服務。
systemctl start vsftpd.service
- 運作以下指令檢視 FTP 服務監聽的端口。
http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705612600_zh-CN.pngnetstat -antup | grep ftp
步驟二: 配置 vsftpd
vsftpd 安裝後預設開啟了匿名通路 FTP 伺服器的功能。使用匿名通路,您無需輸入使用者名密碼即可登入 FTP 伺服器,但沒有權限修改或上傳檔案。
本教程介紹了以下兩種配置 vsftpd 的方法,并提供了相關的參數說明,您可以根據具體需要進行參考。
- 配置匿名使用者上傳檔案權限
- 配置本地使用者登入
匿名通路FTP伺服器是一種不安全的通路模式,任何人無需密碼驗證就可以登入到FTP伺服器,這種模式一般隻用來儲存不重要的公開檔案,不推薦在生産環境中使用。如果您需要配置匿名使用者上傳檔案的權限,可以參考以下步驟配置:
- 修改
/etc/vsftpd/vsftpd.conf
- 運作
vim /etc/vsftpd/vsftpd.conf
- 按i 鍵進入編輯模式。
- 将寫權限修改為
write_enable=YES
- 将匿名上傳權限修改為
anon_upload_enable=YES
- 按Esc鍵退出編輯模式,然後輸入
儲存并退出檔案。 http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705612602_zh-CN.png:wq
- 運作
- 運作以下指令更改
目錄的權限,為 FTP 使用者添加寫權限,并重新加載配置檔案。/var/ftp/pub
http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705612603_zh-CN.pngchmod o+w /var/ftp/pub/ systemctl restart vsftpd.service
本地使用者登入是指使用者使用 Linux 作業系統的賬号和密碼登入 FTP 伺服器。
vsftpd 安裝後預設隻支援匿名通路 FTP 伺服器,如果您試圖使用 Linux 作業系統中的賬号登入伺服器,将會被 vsftpd 服務拒絕。您可以參考以下步驟配置 vsftpd 服務,以使用Linux賬号和密碼通路FTP伺服器。
- 運作以下指令為FTP服務建立一個Linux使用者。本示例中,該使用者名為ftptest。
useradd ftptest
- 運作以下指令修改ftptest 使用者的密碼。
passwd ftptest
- 建立一個供FTP服務使用的檔案目錄。
mkdir /var/ftp/test
- 更改/var/ftp/test目錄的擁有者為ftptest。
chown -R ftptest:ftptest /var/ftp/test
- 輸入指令
打開vsftpd.conf配置檔案并按鍵i進入編輯模式。vim /etc/vsftpd/vsftpd.conf
-
修改vsftpd.conf配置檔案。
FTP伺服器可以配置為主動模式或被動模式。
- 主動模式下,用戶端向服務端發送資料端口的資訊,由服務端主動連接配接用戶端發送的資料端口。配置FTP為主動模式的參數如下:
#禁止匿名登入FTP伺服器 anonymous_enable=NO
允許本地使用者登入FTP伺服器
local_enable=YES
設定本地使用者登入後所在的目錄
local_root=/var/ftp/test
全部使用者被限制在主目錄
chroot_local_user=YES
啟用例外使用者名單
chroot_list_enable=YES
指定例外使用者清單,這些使用者不被鎖定在主目錄
chroot_list_file=/etc/vsftpd/chroot_list
配置其他參數
allow_writeable_chroot=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
- 被動模式下,服務端開啟并發送資料端口的資訊給用戶端,由用戶端連接配接服務端開啟的資料端口,服務端被動接受連接配接。在被動模式下,您需要配置服務端可以開啟的資料端口範圍。配置FTP為被動模式的參數如下:
#禁止匿名登入FTP伺服器 anonymous_enable=NO
允許本地使用者登入FTP伺服器
local_enable=YES
設定本地使用者登入後所在目錄
local_root=/var/ftp/test
全部使用者被限制在主目錄
chroot_local_user=YES
啟用例外使用者名單
chroot_list_enable=YES
指定例外使用者清單,這些使用者不被鎖定在主目錄
chroot_list_file=/etc/vsftpd/chroot_list
開啟被動模式
pasv_enable=YES
FTP伺服器公網IP
pasv_address=<FTP伺服器公網IP>
設定被動模式下,建立資料傳輸可使用port範圍的最小值
pasv_min_port=port number
設定被動模式下,建立資料傳輸可使用port範圍的最大值
pasv_max_port=port number
配置其他參數
local_umask=022 dirmessage_enable=YES xferlog_enable=YES xferlog_std_format=YES tcp_wrappers=YES allow_writeable_chroot=YES listen=YES listen_ipv6=NO pam_service_name=vsftpd userlist_enable=YES
<blockquote> <p><strong>說明</strong> 建議您把端口範圍設在比較高的一段範圍内,比如50000-50010,有助于提高通路FTP伺服器的安全性。</p> </blockquote> </li></ul></li><li>按Esc鍵退出編輯模式,然後按鍵<code>:wq</code>儲存并退出檔案。</li><li>運作<code>vim /etc/vsftpd/chroot_list</code>指令建立chroot_list檔案,并寫入不受隻可以通路其主目錄限制的例外使用者名單。
說明 如果沒有例外使用者也必須要有 chroot_list檔案,内容可為空。
- 按鍵Esc退出編輯模式,然後按鍵
:wq
- 運作以下指令重新開機vsftpd服務。
systemctl restart vsftpd.service
- 主動模式下,用戶端向服務端發送資料端口的資訊,由服務端主動連接配接用戶端發送的資料端口。配置FTP為主動模式的參數如下:
cat /etc/vsftpd/vsftpd.conf
檢視配置檔案内容。
使用者登入控制:
參數 | |
---|---|
anonymous_enable=YES | 接受匿名使用者 |
no_anon_password=YES | 匿名使用者login時不詢問密碼 |
anon_root=(none) | 匿名使用者主目錄 |
local_enable=YES | 接受本地使用者 |
local_root=(none) | 本地使用者主目錄 |
使用者權限控制:
write_enable=YES | 可以上傳(全局控制) |
local_umask=022 | 本地使用者上傳檔案的umask |
file_open_mode=0666 | 上傳檔案的權限配合umask使用 |
anon_upload_enable=NO | 匿名使用者可以上傳 |
anon_mkdir_write_enable=NO | 匿名使用者可以建目錄 |
anon_other_write_enable=NO | 匿名使用者修改删除 |
chown_username=lightwiter | 匿名上傳檔案所屬使用者名 |
步驟三: 設定安全組
搭建好 FTP 站點後,您需要在執行個體安全組的入方向添加放行下列 FTP 端口的規則。
- FTP 為主動模式時:端口21。
- FTP 為被動模式時:端口21,以及配置檔案/etc/vsftpd/vsftpd.conf中參數pasv_min_port和pasv_max_port之間的所有端口。
添加安全組規則的具體步驟,請參見
添加安全組規則步驟四: 用戶端測試
您可以通過 FTP 用戶端或浏覽器通路 FTP 伺服器進行測試。本教程以windows自帶的IE(Internet Explorer)浏覽器為例,分别為您介紹 FTP 伺服器配置為主動模式或被動模式時的通路步驟。
FTP伺服器為主動模式- 打開用戶端的 IE 浏覽器。
- 将浏覽器設定為主動通路模式。選擇 設定 > Internet 選項 > 進階 。勾選 啟用 FTP 檔案夾視圖,取消勾選 使用被動 FTP。
- 在位址欄中輸入
,例如:ftp://<FTP伺服器IP位址>:FTP端口
ftp://39.10.0.28:21
- 在彈出的對話框中,輸入使用者名和密碼,即可對 FTP 檔案進行相應權限的操作。
- 将浏覽器設定為被動通路模式。選擇 設定 > Internet 選項 > 進階 。勾選 啟用 FTP 檔案夾視圖,勾選 使用被動 FTP。
-
ftp://<FTP伺服器IP位址>:FTP端口
ftp://39.10.0.28:21
說明 使用浏覽器通路 FTP 伺服器出錯時,建議您清除浏覽器緩存後再嘗試。 雲伺服器ECS位址:阿裡雲·雲小站