一、检测是否有安装vsffpd
netstat -tunlp
没有安装先安装
1.安装 vsftpd
执行以下命令,安装 vsftpd。
yum install vsftpd -y
2.启动服务
执行以下命令,启动服务。
systemctl start vsftpd
3.执行以下命令,确认服务是否启动。
netstat -tunlp
如果看到有21端口,则说明成功。
4.执行下面的命令,将 vsftpd 设置为开机启动
chkconfig vsftpd on
参考:https://www.baidu.com/link?url=0_4K9emHx66XSAVhtxPrY94six6wJyqaB_XH_p0RiUBxESoUbfcdoGbHSTjcv490&wd=&eqid=f22b6158002a7d89000000066390023d
二、用户登录一直提示验证失败
1、用户登录一直提示验证失败
在/etc/vsftpd下创建三个配置文件,如下:
ftpusers # 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户。
user_list # 指定的用户是否可以访问ftp服务器
vsftpd.conf # 主配置文件
通过vsftpd.conf文件中的userlist_deny的配置来决定配置中的用户是否可以访问,userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 这三个配置允许文件中的用户访问FTP。
注:vsftpd虽然共享linux的用户,但是做了更加精细化二次安全防护,避免常见的脆弱性安全问题,所以如果希望让root用户访问,需要在ftpusers中注释掉root。
2、如果上面注解掉root还是无法使用root用户登录,就修改config个文件
userlist_enable :是否启用userlist文件的控制作用,可用值YES/NO
userlist_deny : 可用值YES/NO
/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list,这两个文件里面存放的都是linux本地的用户。
2.1 首先在ftpusers中出现的用户都不允许登录ftp服务器
2.2 然后配置控制
情况1,userlist_enable=NO:
此时不管userlist_deny项为何值都是无所谓的,因为此时userlist_deny根本不会生效,user_list中的可用用户(user_list里面的所有用户除去ftpusers中的用户之后剩余的)运行登录ftp服务器。如果你新建个用户,不在user_list和ftpusers也可以登录ftp服务器。
情况2,userlist_enable=YES:
(1)、userlist_deny=YES :user_list相当于一张黑名单,也就是说所有出现在名单中的用户都会被拒绝登入
(2)、userlist_deny=NO:user_list相当于一张白名单,也就是说只有出现在名单中的用户才会被准许登入,user_list之外的用户都被拒绝登入
总结:修改vsftp.conf的配置:
anonymous_enable=NO
userlist_enable=YES
userlist_deny=NO
配置说明:
- anonymous_enable=true #启用匿名用户登录,默认启用
- anon_world_readable_only=true #允许匿名用户下载,默认启用
- local_enable=true,默认false,这个默认值感觉不合适
- write_enable=true
- # 下面三个配置主要用于控制细粒度的访问权限
- chroot_list_enable=NO #设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。 YES为启用 NO禁用,默认禁用
- chroot_local_user=YES #是否将所有用户限制在主目录下,也就是切换到和主目录平级的其他目录或者干脆不相关目录,如上文说的切换到/etc目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到根目录之外的)
- chroot_list_file=/etc/vsftpd/chroot_list #设置是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!
重启vsftpd服务 就可以连接
service vsftpd restart
三、登录成功后提示无法打开文件
点击设置 , 去掉 “使用被动模式” 的勾选
由于该文件夹权限当前用户权限不足,导致xftp无法打开
利用shell登录该服务器后,为该文件夹执行chmod 777 文件夹名字,再用xftp即可打开
参考
xftp 提示无法显示远程文件夹 - 走看看
ftp服务器配置文件vsftpd.conf以及正确安全配置
centos下ftp服务器搭建