需求:搭建一個ftp,給予一個賬號,僅對一個backup目錄存在權限
注意配置文件裏 #註釋必須頂頭寫,下面這種寫法有問題
local_root=/home/www/backup #虛擬用戶主目錄,用戶和組必須指定爲宿主用戶
1.安裝vstpd
yum install vsftpd -y
2.安裝libdb-utils
安裝Berkeley DB工具,用於生成虛擬用戶認證文件
yum install libdb-utils #Centos7
yum install db4 db4-utils #Centos6
3.創建屬主用戶
所有虛擬用戶都是映射屬主用戶的目錄權限,由於虛擬用戶家目錄需求爲backup,該目錄權限爲www,因此使用www用戶。
4.修改主配置文件(vim /etc/vsftpd/vsftpd.conf)
listen=YES #使用ipv4進行監聽
anonymous_enable=NO #關閉匿名訪問
dirmessage_enable=YES
xferlog_enable=YES #啓動日誌
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_list_enable=YES #限制用戶不能離開特定目錄
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
guest_enable=YES #啓動後,所有非匿名用戶將映射到guest_username進行訪問,並且轉換成一個虛擬用戶
guest_username=www
user_config_dir=/etc/vsftpd/vuser_conf #虛擬用戶配置文件目錄
pam_service_name=vsftpd #pam認證文件名稱
local_enable=YES #啓用本地系統用戶,包括虛擬用戶
connect_from_port_20=NO #關閉ftp-data端口,相當於不使用主動模式
pasv_enable=YES
pasv_min_port=33000
pasv_max_port=34000
直接替換配置文件內容
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
guest_enable=YES
guest_username=www
user_config_dir=/etc/vsftpd/vuser_conf
pam_service_name=vsftpd
local_enable=YES
5.創建chroot文件
touch /etc/vsftpd/chroot_list
6.創建虛擬用戶列表
echo -e "ftpuser\n123456" > /etc/vsftpd/vuser
7.生成虛擬用戶認證文件
db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
8.配置虛擬用戶認證
cp /etc/pam.d/vsftpd{,.bak}
echo -e \
"auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser\n\
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser" > /etc/pam.d/vsftpd
9.配置虛擬用戶配置文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser #文件名與對應FTP虛擬用戶一致
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/www/backup #虛擬用戶主目錄,用戶和組必須指定爲宿主用戶
anon_umask=020
10.配置防火牆和selinux
setsebool -P ftpd_full_access on
iptables -I INPUT -p tcp --dport 21 -j ACCEPT #FTP連接端口
iptables -I INPUT -p tcp --dport 33000:34000 -j ACCEPT #pasv模式下的隨機端口
iptables-save >/etc/sysconfig/iptables #保存防火牆配置
11.重啓vsftpd
service vsftpd restart
12.開機啓動vsftpd
chkconfig vsftpd on