安装相关依赖包

yum -y install gcc gcc-c++ db4-utils pam-devel tcp_wrappers tcp_wrappers-devel openssl-devel

tar xf vsftpd-3.0.3.tar.gz
cd vsftpd-3.0.3
#编辑源码文件,将所有的lib换成lib64
vim vsf_findlibs.sh

make && make install

生成用户密码文件,文件格式为一行用户名一行密码

db_load -T -t hash -f /etc/vsftpd/auth.txt /etc/vsftpd/auth.db

#编辑pam文件
vim /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/auth
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/auth

修改配置文件

vim /etc/vaftpd/vsftpd.conf

#禁止匿名用户
anonymous_enable=NO
local_enable=YES
write_enable=YES
#不启动锁定用户名单,所有的用户都将被锁定不允许访问上级目录,只允许访问其主目录
chroot_local_user=YES
chroot_list_enable=NO
#启动log
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/etc/vsftpd/vsftpd.log
#开启虚拟用户
guest_enable=YES
#FTP虚拟用户对应的系统用户
guest_username=vsftpd
#PAM认证文件/etc/pam.d/vsftpd
pam_service_name=vsftpd
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
#必须开启,否则虚拟用户不能访问对应的家目录
allow_writeable_chroot=YES

编辑虚拟用户配置文件(文件名与用户名一致)

vim vconf/test

#只允许上传下载,不允许删除
write_enable=YES
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RNFR,RNTO,SIZE,STOR,TYPE,USER,REST,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,FEAT
file_open_mode=0444
#带宽限制2M每秒
local_max_rate=2100000
id vsftpd
id: vsftpd:无此用户
 groupadd vsftpd
mkdir -p /data/vsftpd/pub
useradd -g vsftpd -d /data/vsftpd -s /sbin/nologin vsftpd
id vsftpd
uid=504(vsftpd) gid=504(vsftpd) 组=504(vsftpd)

chown -R vsftpd:vsftpd /data/vsftpd
chmod a-w /data/vsftpd
chmod 777 /data/vsftpd/pub

所有配置文件都必须赋予root用户权限

chown -R root:root /etc/vsftpd/vconf/*

虚拟用户权限控制配置

1、只能上传。不能下载、删除、重命名。
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYS
2、只能下载。不能上传、删除、重命名。
write_enable=NO
3、只能上传、删除、重命名。不能下载。
download_enable=NO
4、只能下载、删除、重命名。不能上传。
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
暂无评论