一、實驗環境:
- 操作系統:阿里云Centos7.4
- 內核版本:3.10.0-693.2.2.el7.x86_64
- vsftpd版本:vsftpd-3.0.2
二、安裝準備:
1.關閉selinux
selinux為Linux提供安全強化同時,也讓Linux服務安裝變得更復雜。未正確的為相關服務配置SELINUX,將導致服務無法正常運行。所以對于初學者來說,建議關閉selinux。
- 查看SLlinux狀態:
/usr/sbin/sestatus -v ##如果SELinux status參數為enabled即為開啟狀態
getenforce ##也可以用這個命令檢查- 1.臨時關閉:
setenforce 0 ##(設置SELinux 成為permissive模式)
##(setenforce 1 設置SELinux 成為enforcing模式)- 2.永久關閉(修改配置文件需要重啟機器):
修改/etc/selinux/config
文件將SELINUX=enforcing改為SELINUX=disabled
重啟服務器即可
三、安裝vsftpd
1.查看服務器是否安裝vsftpd
rpm -qa|grep vsftpd
2.安裝vsftpd服務及ftp客戶端
yum install ftp vsftpd -y
3.備份vsftpd的配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
四、配置虛擬用戶訪問vsftpd服務
1.創建虛擬用戶的密碼文件,奇數行為用戶名,偶數行為密碼:
touch /etc/vsftpd/vir_user.txt
echo -e "bingfeng\nbingfeng" >> /etc/vsftpd/vir_user.txt
echo -e "bf\nbf" >> /etc/vsftpd/vir_user.txt
這里創建了2個用戶bingfeng、bf,bingfeng有讀寫權限,bf只有讀的權限。
2.生成虛擬用戶數據庫:
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.增加一個系統用戶virftp ,所有虛擬用戶都會映射到此用戶后對文件系統進行讀寫操作:
useradd -d /ftproot virftp -s /sbin/nologin
chown -R virftp.virftp /ftproot
6、設置vsftpd主配置文件/etc/vsftpd/vsftpd.conf:
#禁止匿名用戶登錄
anonymous_enable=NO
#允許本地用戶登錄
local_enable=YES
#啟用虛擬賬戶
guest_enable=YES
#把虛擬賬戶映射到系統賬戶virftp
guest_username=virftp
#使用虛擬用戶驗證(PAM驗證)
pam_service_name=vsftpd
#設置存放各虛擬用戶配置文件的目錄(此目錄下與虛擬用戶名相同的文件為他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#啟用chroot時,虛擬用戶根目錄允許寫入
allow_writeable_chroot=YES
7.設置虛擬用戶各自的配置文件:
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
# 允許虛擬用戶創建目錄
anon_mkdir_write_enable=YES
# 允許虛擬用戶bingfeng執行其他操作(如改名、刪除)
anon_other_write_enable=YES
# 上傳文件的掩碼,如022時,上傳目錄權限為755,文件權限為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服務、加入開機啟動項:
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