1. 检查vsftpd是否已安装
rpm -qa|grep vsftpd yum list|grep vsftpd #使用yum列出
2. 若没有安装vsftpd,则使用yum来安装
yum install vsftpd
3. 启动vsftpd服务,终端输入
/etc/init.d/vsftpd start service vsftpd start #使用service启动
4. 设置vsftpd随系统启动,终端输入
chkconfig vsftpd on
5. 配置vsftpd,vsftpd默认允许匿名用户登录,匿名用户主目录在/var/ftp,首先禁止匿名用户登录,使用vi修改/etc/vsftpd/vsftpd.conf文件:
# Allow anonymous FTP? (Beware - allowed by default if you comment this out). #anonymous_enable=YES anonymous_enable=NO
6. vsftpd默认允许用户离开自己的主目录,为了安全需要关闭此选项,编辑/etc/vsftpd/vsftpd.conf文件:
# You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). chroot_local_user=YES #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd/chroot_list
反注释chroot_local_user=YES这行就可以将所有用户锁定在自己的主目录里,如果注释这行,就需要使用chroot_list_enable=YES和chroot_list_file=/etc/vsftpd/chroot_list来指定用户的主目录(新建/etc/vsftpd/chroot_list文件)
7. 添加本地用户,用于登录vsftpd,终端输入:
useradd -g ftp -d /var/ftp/test -s /sbin/nologin test #-g选项将用户添加到ftp组,-d选项指定用户主目录,-s选项指定用户登录shell,这里为了安全禁止test用户登录
修改test用户密码:
passwd test #修改密码
8. 重新启动vsftpd服务
service vsftpd restart
到这里就可以使用test用户登录ftp了,test用户的所有文件存放在/var/ftp/test下
需要注意:
1. selinux是否启用
添加本地用户后登录ftp提示下列错误:
500 OOPS: cannot change directory:/var/ftp/test 500 OOPS: child died
解决方法:终端输入下列命令禁止selinux对vsftpd的限制,完成后重启vsftpd服务
setsebool -P ftpd_disable_trans 1 service vsftpd restart
另一种方法就是禁用selinux。
2. vsftpd用户分类
vsftpd用户类型分为三种:匿名用户,本地用户和虚拟用户。