一、基本安装
1.安装服务
yum -y install vsftpd //centos Redhat
apt-get install vsftpd //debian ubuntu
2.开启服务
service vsftpd status //查看状态,默认是关闭的
service vsftpd start
3.开机随操作系统启动
chkconfig vsftpd on
4.添加账号
useradd -d /data/www/wwwroot -s /sbin/nologin vsftp
passwd vsftp //设置密码
chown -R vsftp.vsftp /data/www/wwwroot //设置指向目录
其中,/demo指的是指向目录,vsftp是要添加的用户名,也可以使用usermod设置已有用户。
二、基本设置
1.打开配置文件
vi /etc/vsftpd/vsftpd.conf
2.参照如下设置
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
anonymous_enable=NO //禁止匿名访问
local_enable=YES
write_enable=YES
3.修改shell配置
vi /etc/shells //如果该文件里没有/usr/sbin/nologin或者/sbin/nologin(具体看当前系统配置)则追加进去
4.重启服务
service vsftpd start //修改配置之后要重启服务
三、vsftp无法连接
service iptables stop //关闭防火墙
或者修改配置文件
vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_conntrack_ftp"
并添加规则
iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
service iptables save
service iptables restart
四、限制用户不能访问上级目录
修改vsftp的配置文件vsftpd.conf
vi etc/vsftpd/vsftpd.conf
修改下面的配置:
chroot_local_user=YES
chroot_list_enable=YES //这行可以没有, 也可以有
chroot_list_file=/etc/vsftpd/chroot_list
那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户,即可以浏览其主目录的上级目录。
如果不希望指定的用户浏览其主目录上级目录中的内容,可以如下设置,然后在文件vsftpd/chroot_list中去掉或不添加该用户即可。
chroot_local_user=NO
chroot_list_enable=YES //这行必须要有, 否则文件vsftpd/chroot_list不会起作用
chroot_list_file=/etc/vsftpd/chroot_list
五、无法上传文件、创建文件/文件夹,或无法看到子目录
这是由于selinux的机制,可以执行如下命令查看
getsebool -a|grep ftp
使用如下命令重置权限
setsebool allow_ftpd_full_access=1
六、用户无法验证问题
当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误。从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
方法1:修改配置文件vi /etc/vsftpd/vsftpd.conf,添加allow_writeable_chroot=YES
方法2:用命令chmod a-w /home/user去除用户主目录的写权限
sudo chown -R root:root /home/ftp
cd /home/ftp
sudo mkdir FTPFILES
sudo chown -R vsftpuser:vsftpuser FTPFILES