vsftpd是Linux下的一款小巧輕快、安全易用的FTP服務(wù)器軟件。本教程以CentOS 7.2 64位操作系統(tǒng)為例,介紹如何在Linux實(shí)例上安裝并配置vsftpd。
前提條件
使用本教程進(jìn)行操作前,請(qǐng)確保您已經(jīng)注冊(cè)了阿里云賬號(hào)。如還未注冊(cè),請(qǐng)先完成賬號(hào)注冊(cè)。
背景信息
Linux 實(shí)例搭建FTP站點(diǎn)具體步驟如下:
視頻教程
步驟一: 安裝vsftpd
完成以下操作,安裝vsftpd。
遠(yuǎn)程連接Linux實(shí)例。具體操作,請(qǐng)參見使用用戶名密碼驗(yàn)證連接Linux實(shí)例。
-
運(yùn)行以下命令安裝vsftpd。
yum install -y vsftpd -
依次運(yùn)行以下命令進(jìn)入/etc/vsftpd目錄,并查看該目錄下的文件。
cd /etc/vsftpdls說明
- /etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。
- /etc/vsftpd/ftpusers是黑名單文件,此文件中的用戶不允許訪問FTP服務(wù)器。
- /etc/vsftpd/user_list是白名單文件,此文件中的用戶允許訪問FTP服務(wù)器。
-
運(yùn)行以下命令設(shè)置FTP服務(wù)開機(jī)自啟動(dòng)。
systemctl enable vsftpd.service -
運(yùn)行以下命令啟動(dòng)FTP服務(wù)。
systemctl start vsftpd.service -
運(yùn)行以下命令查看FTP服務(wù)監(jiān)聽的端口。
netstat -antup | grep ftp
vsftpd安裝后默認(rèn)開啟了匿名訪問FTP服務(wù)器的功能。使用匿名訪問,您無需輸入用戶名密碼即可登錄FTP服務(wù)器,但沒有權(quán)限修改或上傳文件。
步驟二: 配置vsftpd
本節(jié)介紹以下兩種配置vsftpd的方法,并提供了相關(guān)的參數(shù)說明,您可以根據(jù)具體需要進(jìn)行參考。
- 方法一:配置匿名用戶上傳文件權(quán)限
- 方法二:配置本地用戶登錄
方法一:配置匿名用戶上傳文件權(quán)限
匿名訪問FTP服務(wù)器是一種不安全的訪問模式,任何人無需密碼驗(yàn)證就可以登錄到FTP服務(wù)器,這種模式一般只用來保存不重要的公開文件,不推薦在生產(chǎn)環(huán)境中使用。配置匿名用戶上傳文件的權(quán)限的操作步驟如下:
-
修改配置文件/etc/vsftpd/vsftpd.conf。
- 運(yùn)行
vim /etc/vsftpd/vsftpd.conf命令打開配置文件。 - 按i進(jìn)入編輯模式。
- 將寫權(quán)限修改為
write_enable=YES。 - 將匿名上傳權(quán)限修改為
anon_upload_enable=YES。 - 按Esc退出編輯模式,然后輸入:wq并回車以保存并關(guān)閉文件。
- 運(yùn)行
-
依次運(yùn)行以下命令更改/var/ftp/pub目錄的權(quán)限,為FTP用戶添加寫權(quán)限,并重新加載配置文件。
chmod o+w /var/ftp/pub/systemctl restart vsftpd.service
方法二:配置本地用戶登錄
本地用戶登錄是指用戶使用Linux操作系統(tǒng)的賬號(hào)和密碼登錄FTP服務(wù)器。vsftpd安裝后默認(rèn)只支持匿名訪問FTP服務(wù)器,如果您試圖使用本地用戶登錄服務(wù)器,將會(huì)被vsftpd服務(wù)拒絕。配置本地用戶訪問FTP服務(wù)器的操作步驟如下:
-
運(yùn)行以下命令為FTP服務(wù)創(chuàng)建一個(gè)Linux用戶。本示例中,該用戶名為ftptest。
useradd ftptest -
運(yùn)行以下命令修改ftptest用戶的密碼。
passwd ftptest -
運(yùn)行以下命令創(chuàng)建一個(gè)供FTP服務(wù)使用的文件目錄。
mkdir /var/ftp/test -
運(yùn)行以下命令更改/var/ftp/test目錄的擁有者為ftptest。
chown -R ftptest:ftptest /var/ftp/test -
修改vsftpd.conf配置文件。
運(yùn)行
vim /etc/vsftpd/vsftpd.conf命令打開配置文件。按i進(jìn)入編輯模式。
-
根據(jù)實(shí)際需要,配置FTP服務(wù)器為主動(dòng)模式或被動(dòng)模式。
-
主動(dòng)模式下,客戶端向服務(wù)端發(fā)送數(shù)據(jù)端口的信息,由服務(wù)端主動(dòng)連接客戶端發(fā)送的數(shù)據(jù)端口。配置FTP為主動(dòng)模式的參數(shù)如下:
#禁止匿名登錄FTP服務(wù)器 anonymous_enable=NO #允許本地用戶登錄FTP服務(wù)器 local_enable=YES #設(shè)置本地用戶登錄后所在的目錄 local_root=/var/ftp/test #全部用戶被限制在主目錄 chroot_local_user=YES #啟用例外用戶名單 chroot_list_enable=YES #指定例外用戶列表,這些用戶不被鎖定在主目錄 chroot_list_file=/etc/vsftpd/chroot_list #配置其他參數(shù) 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 -
被動(dòng)模式下,服務(wù)端開啟并發(fā)送數(shù)據(jù)端口的信息給客戶端,由客戶端連接服務(wù)端開啟的數(shù)據(jù)端口,服務(wù)端被動(dòng)接受連接。在被動(dòng)模式下,您需要配置服務(wù)端可以開啟的數(shù)據(jù)端口范圍。配置FTP為被動(dòng)模式的參數(shù)如下:
#禁止匿名登錄FTP服務(wù)器 anonymous_enable=NO #允許本地用戶登錄FTP服務(wù)器 local_enable=YES #設(shè)置本地用戶登錄后所在目錄 local_root=/var/ftp/test #全部用戶被限制在主目錄 chroot_local_user=YES #啟用例外用戶名單 chroot_list_enable=YES #指定例外用戶列表,這些用戶不被鎖定在主目錄 chroot_list_file=/etc/vsftpd/chroot_list #開啟被動(dòng)模式 pasv_enable=YES #FTP服務(wù)器公網(wǎng)IP pasv_address=<FTP服務(wù)器公網(wǎng)IP> #設(shè)置被動(dòng)模式下,建立數(shù)據(jù)傳輸可使用port范圍的最小值 pasv_min_port=port number #設(shè)置被動(dòng)模式下,建立數(shù)據(jù)傳輸可使用port范圍的最大值 pasv_max_port=port number #配置其他參數(shù) 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說明 建議您把端口范圍設(shè)在比較高的一段范圍內(nèi),例如50000-50010,有助于提高訪問FTP服務(wù)器的安全性。
-
按Esc退出編輯模式,然后輸入:wq并回車以保存并關(guān)閉文件。
-
創(chuàng)建chroot_list文件,并在文件中寫入例外用戶名單。
- 運(yùn)行
vim /etc/vsftpd/chroot_list命令創(chuàng)建chroot_list文件。 - 按i進(jìn)入編輯模式。
- 輸入例外用戶名單。此名單中的用戶不會(huì)被鎖定在主目錄,可以訪問其他目錄。
- 按Esc退出編輯模式,然后輸入:wq并回車以保存并關(guān)閉文件。
說明 如果沒有例外用戶也必須要有chroot_list文件,內(nèi)容可為空。
- 運(yùn)行
-
運(yùn)行以下命令重啟vsftpd服務(wù)。
systemctl restart vsftpd.service
配置文件vsftpd.conf參數(shù)說明
運(yùn)行命令cat /etc/vsftpd/vsftpd.conf可以查看配置文件內(nèi)容。
-
用戶登錄控制參數(shù)說明如下表所示。
<caption></caption>
參數(shù) 說明 anonymous_enable=YES 接受匿名用戶 no_anon_password=YES 匿名用戶login時(shí)不詢問口令 anon_root=(none) 匿名用戶主目錄 local_enable=YES 接受本地用戶 local_root=(none) 本地用戶主目錄 -
用戶權(quán)限控制參數(shù)說明如下表所示。
<caption>
</caption>參數(shù) 說明 write_enable=YES 可以上傳(全局控制) local_umask=022 本地用戶上傳文件的umask file_open_mode=0666 上傳文件的權(quán)限配合umask使用 anon_upload_enable=NO 匿名用戶可以上傳 anon_mkdir_write_enable=NO 匿名用戶可以建目錄 anon_other_write_enable=NO 匿名用戶修改刪除 chown_username=lightwiter 匿名上傳文件所屬用戶名
步驟三: 設(shè)置安全組
搭建好FTP站點(diǎn)后,您需要在實(shí)例安全組的入方向添加放行下列FTP端口的規(guī)則。
- FTP為主動(dòng)模式時(shí):端口21。
- FTP為被動(dòng)模式時(shí):端口21,以及配置文件/etc/vsftpd/vsftpd.conf中參數(shù)pasv_min_port和pasv_max_port之間的所有端口。
添加安全組規(guī)則的具體步驟,請(qǐng)參見添加安全組規(guī)則。
步驟四: 客戶端測(cè)試
您可以通過FTP客戶端或?yàn)g覽器訪問FTP服務(wù)器進(jìn)行測(cè)試。本教程以windows自帶的IE(Internet Explorer)瀏覽器為例,分別為您介紹FTP服務(wù)器配置為主動(dòng)模式或被動(dòng)模式時(shí)的訪問步驟。
- FTP服務(wù)器為主動(dòng)模式
- 打開客戶端的IE瀏覽器。
- 將瀏覽器設(shè)置為主動(dòng)訪問模式。選擇設(shè)置 >Internet 選項(xiàng) > 高級(jí)。選中啟用 FTP 文件夾視圖,取消勾選使用被動(dòng) FTP。
- 在地址欄中輸入
ftp://<FTP服務(wù)器IP地址>:FTP端口,例如:ftp://39.10.0.28:21。 - 在彈出的對(duì)話框中,輸入用戶名和密碼,即可對(duì)FTP文件進(jìn)行相應(yīng)權(quán)限的操作。
- FTP服務(wù)器為被動(dòng)模式
- 打開客戶端的IE瀏覽器。
- 將瀏覽器設(shè)置為被動(dòng)訪問模式。選擇設(shè)置 > Internet 選項(xiàng) > 高級(jí)。選中啟用FTP文件夾視圖和使用被動(dòng)FTP。
- 在地址欄中輸入
ftp://<FTP服務(wù)器IP地址>:FTP端口,例如:ftp://39.10.0.28:21。 - 在彈出的對(duì)話框中,輸入用戶名和密碼,即可對(duì)FTP文件進(jìn)行相應(yīng)權(quán)限的操作。
摘自:https://help.aliyun.com/document_detail/92048.html?spm=a2c4g.11186623.6.1122.36627bfesFpCEY




