一、實驗環(huán)境:
- 操作系統(tǒng):阿里云Centos7.4
- 內(nèi)核版本:3.10.0-693.2.2.el7.x86_64
- vsftpd版本:vsftpd-3.0.2
二、安裝準備:
1.關(guān)閉selinux
selinux為Linux提供安全強化同時,也讓Linux服務(wù)安裝變得更復(fù)雜。未正確的為相關(guān)服務(wù)配置SELINUX,將導(dǎo)致服務(wù)無法正常運行。所以對于初學者來說,建議關(guān)閉selinux。
- 查看SLlinux狀態(tài):
/usr/sbin/sestatus -v ##如果SELinux status參數(shù)為enabled即為開啟狀態(tài)
getenforce ##也可以用這個命令檢查- 1.臨時關(guān)閉:
setenforce 0 ##(設(shè)置SELinux 成為permissive模式)
##(setenforce 1 設(shè)置SELinux 成為enforcing模式)- 2.永久關(guān)閉(修改配置文件需要重啟機器):
修改/etc/selinux/config
文件將SELINUX=enforcing改為SELINUX=disabled
重啟服務(wù)器即可
三、安裝vsftpd
1.查看服務(wù)器是否安裝vsftpd
rpm -qa|grep vsftpd
2.安裝vsftpd服務(wù)及ftp客戶端
yum install ftp vsftpd -y
3.備份vsftpd的配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
四、配置虛擬用戶訪問vsftpd服務(wù)
1.創(chuàng)建虛擬用戶的密碼文件,奇數(shù)行為用戶名,偶數(shù)行為密碼:
touch /etc/vsftpd/vir_user.txt
echo -e "bingfeng\nbingfeng" >> /etc/vsftpd/vir_user.txt
echo -e "bf\nbf" >> /etc/vsftpd/vir_user.txt
這里創(chuàng)建了2個用戶bingfeng、bf,bingfeng有讀寫權(quán)限,bf只有讀的權(quán)限。
2.生成虛擬用戶數(shù)據(jù)庫:
yum -y install libdb-utils
db_load -T -t hash -f /etc/vsftpd/vir_user.txt /etc/vsftpd/vir_user.db
3.配置vsftpd pam驗證文件/etc/pam.d/vsftpd:
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
cat <<END > /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vir_user
account required pam_userdb.so db=/etc/vsftpd/vir_user
END
4.增加一個系統(tǒng)用戶virftp ,所有虛擬用戶都會映射到此用戶后對文件系統(tǒng)進行讀寫操作:
useradd -d /ftproot virftp -s /sbin/nologin
chown -R virftp.virftp /ftproot
6、設(shè)置vsftpd主配置文件/etc/vsftpd/vsftpd.conf:
#禁止匿名用戶登錄
anonymous_enable=NO
#允許本地用戶登錄
local_enable=YES
#啟用虛擬賬戶
guest_enable=YES
#把虛擬賬戶映射到系統(tǒng)賬戶virftp
guest_username=virftp
#使用虛擬用戶驗證(PAM驗證)
pam_service_name=vsftpd
#設(shè)置存放各虛擬用戶配置文件的目錄(此目錄下與虛擬用戶名相同的文件為他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#啟用chroot時,虛擬用戶根目錄允許寫入
allow_writeable_chroot=YES
7.設(shè)置虛擬用戶各自的配置文件:
mkdir /etc/vsftpd/vsftpd_viruser/
#配置文件名同虛擬賬戶名
touch /etc/vsftpd/vsftpd_viruser/bingfeng
touch /etc/vsftpd/vsftpd_viruser/bf
chown -R virftp.virftp /ftproot
8.在虛擬用戶 bingfeng的配置文件中寫入如下配置/etc/vsftpd/vsftpd_viruser/bingfeng
# 允許寫入
write_enable=YES
#允許瀏覽FTP目錄和下載
anon_world_readable_only=NO
# 允許虛擬用戶bingfeng上傳文件
anon_upload_enable=YES
# 允許虛擬用戶創(chuàng)建目錄
anon_mkdir_write_enable=YES
# 允許虛擬用戶bingfeng執(zhí)行其他操作(如改名、刪除)
anon_other_write_enable=YES
# 上傳文件的掩碼,如022時,上傳目錄權(quán)限為755,文件權(quán)限為644
anon_umask=022
# 指定虛擬用戶的虛擬目錄(虛擬用戶登錄后的主目錄)
local_root=/ftproot/
9.在虛擬用戶 bingfeng的配置文件中寫入如下配置/etc/vsftpd/vsftpd_viruser/bf
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_umask=022
local_root=/ftproot/
10.重啟vsftpd服務(wù)、加入開機啟動項:
systemctl restart vsftpd.service
systemctl enable vsftpd.service
11.使用虛擬用戶bingfeng和密碼bingfeng測試
[root@server ~]# ftp
ftp> open 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (127.0.0.1:root): bingfeng
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
參考地址:
http://aiezu.com/article/centos7_yum_vsftpd_install_configure.html