过程经过本人安装,证明没问题,可以放心使用。
1.卸载vsftpd软件
1.1首先检查本机上是否安装过vsftpd服务器
rpm -aq vsftpd
1.2如果安装过了,则显示安装的版本信息,如果没安装,则无返回结果。
在卸载之前,先停止vsftpd服务
systemctl stop vsftpd.service
卸载vsftpd软件,下面蓝色部分是vsftpd软件的名称,el7中l是小写的L,不要写成数字1了。
rpm -e vsftp-3.0.2-21.el7.x86_64
1.3输入验证命令,验证vsftpd服务是否已经删除
systemctl stop vsftpd.service
systemctl restart vsftpd.service
如果以上两个命令返回的都是找不到vsftpd服务,则卸载成功。
2.安装vsftpd软件
2.1安装软件有两种方式:
第一种,centos系统中有传过来的vsftpd软件的rpm文件,rpm 软件名.rpm
rpm vsftp-3.0.2-21.el7.x86_64.rpm
第二种,centos系统可以上网,在http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/中有需要的好多软件,找到vsftp软件,rpm -Uvh http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/软件名.rpm,自动从网上下载安装。
rpm -Uvh http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/vsftp-3.0.2-21.el7.x86_64.rpm
2.2启动ftp服务
systemctl start vsftpd.service
2.3防火墙设置,把ftp服务添加到防火墙外->使设置生效->重新启动防火墙
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
systemctl restart firewalld.service
3.vsftpd服务的详细配置
3.1关闭匿名账户
首先进入文件/etc/vsftpd/vsftpd.conf中
vi /etc/vsftpd/vsftpd.conf
按i,进入编辑状态,修改一下三项:
anonymous_enable=NO
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
按ESC键,输入:wq,退出编辑状态,然后重启ftp服务:
systemctl restart vsftpd.service
通过配置重启之后,匿名用户不可以登录了
3.2建立ftp虚拟宿主账户
新建一个不能登录系统的用户,只能用来登录ftp服务
useradd ftpuser -s /sbin/nologin
为ftpuser用户设置密码,输入新密码以及再次验证
passwd ftpuser
3.3查看ftp状态
getsebool -a | grep ftp
显示结果:
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off
将上面红色两项状态设置为on
setsebool -P allow_ftpd_access on
sersebool -P tftp_home_dir on
3.4配置vsftpd.conf:限制用户的目录在主目录上
进入文件 /etc/vsftpd/vsftpd.conf中
vi /etc/vsftpd/vsftpd.conf
这里有两种设置方式:
第一种,凡是加在文件chroot_list中的用户都是不受限制的用户,即可以浏览其主目录的上级目录
chtoot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
第二种,把所有不希望有这种浏览其主目录之上的个目录权限的用户添加到文件chroot_list中(此时,在该文件中的用户一行一个用户名)。
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
本人采用第二种,加入ftpuser,表示只有ftpuser不能访问上级目录,重启vsftpd
systemctl restart vsftpd.service
3.5修改权限(可以不要)
将ftpuser文件夹设置为只能读取不能写入
chmod a-w /home/ftpuser
表示不可执行可读取写入
chmod a-x /home/ftpuser
chmod a+r+w /home/ftpuser
将权限赋值给ftpuser用户(前一个是ftpuser用户,后一个是ftpuser文件)
chown ftpuser ftpuser
4.开启PASV(被动模式)
在/etc/vsftpd/vsftpd.conf文件的最下面加入
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
并且在文件中userlist_enable=YES后面添加
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
进入文件/etc/vsftpd/user_list中,把ftpuser添加进去,表示ftpuser进入ftp服务器不被拒绝
重新启动vsftpd服务,就可以使用了
systemctl restart vsftpd.service