VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。它是一个安全、高速、稳定的FTP服务器。vsftpd有三种模式。匿名模式。用户模式,还有虚拟用户模式。我们分别来配置一下这几种模式。


yum install vsftpd -y           #安装

systemctl restart vsftpd        #重启

systemctl stop firewalld        #关闭防火墙(后面实验成功后再开启)




匿名用户:

默认情况下,vsftpd的匿名用户是打开的,客户端是可以访问的。


客户端访问:OK(输入ftp://ftp服务器IP地址)

红帽7(centos 7)配置VSFTP_第1张图片


默认是没有权限写入的。我们去主配置文件配置写入权限吧。

红帽7(centos 7)配置VSFTP_第2张图片


vim /etc/vsftpd/vsftpd.conf   #打开主配置文件,添加如下内容,注意不要与文中重叠


红帽7(centos 7)配置VSFTP_第3张图片


解释:

anonymous_enable=yes#允许匿名访问模式

anon_upload_enable=yes#允许匿名用户上传文件

anon_mkdir_write_enable=yes#允许匿名用户创建目录

anon_other_write_enable=yes#允许匿名用户修改目录名和删除目录

anon_world_readable_only=no#允许匿名用户下载可阅读文件(默认yes,拒绝)


chown ftp /var/ftp/pub                  #修改属主为ftp

ls -ld /var/ftp/pub                     #查看权限/var/ftp/pub默认为ftp匿名路径

wKioL1lHmfHDg5LtAABHj0-FPiQ428.jpg


getsebool -a | grep ftp#查看所有与ftp相关的SELinux规则

setsebool -P ftpd_full_access=on#设置SELinux服务队ftp服务访问规则策略为允许

注意:(这里可以先不管,暂时关闭命令  setenforce 0  )

红帽7(centos 7)配置VSFTP_第4张图片


systemctl restart vsftpd        #重启


客户端测试OK(有读取权限)

红帽7(centos 7)配置VSFTP_第5张图片


匿名用户的默认路径是/var/ftp/pub,我们是可以修改默认路径的

mkdir -p /var/tang/laotang6            #创建匿名路径

vim /etc/vsftpd/vsftpd.conf       #打开主配置文件,添加如下命令

anon_root=/var/tang         #指明匿名用户的路径为/var/tang

红帽7(centos 7)配置VSFTP_第6张图片

记得修改属主,才有权限写入哦!!

chown ftp /var/tang/laotang6                #修改属主为ftp

chmod o+w /var/tang                         #给予目录读写权限


客户端测试: OK(有读取权限)

红帽7(centos 7)配置VSFTP_第7张图片


本地用户:

本地用户配置还是比较简单,只要系统存在用户就可以登录,默认本地用户也是开启的。

useradd tang            #创建帐号tang

password tang           #修改用户tang的密码

红帽7(centos 7)配置VSFTP_第8张图片


vim /etc/vsftpd/vsftpd.conf       #打开主配置文件,关闭匿名用户

红帽7(centos 7)配置VSFTP_第9张图片

注意,这里只要把匿名用户no掉就行了,不用一条条注释它们。


systemctl restart vsftpd        #重启



客户端测试:OK (有读取权限)

红帽7(centos 7)配置VSFTP_第10张图片


登录成功(路径是用户的家目录例如我的路径是:/home/tang)

红帽7(centos 7)配置VSFTP_第11张图片

本地用户的默认路径是/home/用户名,我们是可以修改默认路径的

mkdir -p /var/laotang/tang            #创建本地路径

vim /etc/vsftpd/vsftpd.conf       #打开主配置文件,添加如下命令

local_root=/var/laotang6             #指明本地用户的路径为/var/laotang6

wKioL1lHsPix1wdAAAArVEzn42k097.jpg


chmod o+w /var/laotang6            #给予目录读写权限


客户端测试: OK(有权限写入)

红帽7(centos 7)配置VSFTP_第12张图片



虚拟用户:

虚拟用户相对来说是比较安全的,因为帐号,是虚拟出来的,不存在于本地,

虚拟用户我们来做个实验,让张三(有读写权限),李四(只有读取权限),

分别指向不同的文件目录。


mkdir /etc/ftp              #创建目录

cd /etc/ftp

vim/etc/ftp/user.txt        #添加如下内容,单行为帐号,双行为密码

wKiom1lHtJ-STLPbAAAsafTBjdY523.jpg


将上面创建的帐号密码转化为数据库文件

db_load -T -t hash -f user.txt user.db

wKiom1lHtdeR5EyeAAAyzA9jS6Q260.jpg


vim /etc/pam.d/laotang6        #建立pam配置文件,文件名自定义。进行以下配置

wKiom1lHttGTLBF4AAA9XmyM8sk413.jpg


创建本地用户,给虚拟用户映射。

useradd laotang6            #创建帐号laotang6

password laotang6           #修改用户laotang6的密码


vim /etc/vsftpd/vsftpd.conf

wKioL1lHt_rAPHTRAABFvCiW5Hk434.jpg


注意:修改主配置文件中最下面的pam_service_name=vsftpd 为我们创建的laotang6

红帽7(centos 7)配置VSFTP_第13张图片


解释:

guest_enable=yes                 #开启虚拟用户模式

guest_username=laotang6  #隐射本地用户账号

user_config_dir=/etc/ftp         #创建用户独立的权限配置文件存放目录

chroot_local_user=yes            #将用户限制在主目录

pam_service_name=laotang6        #指定我们前面创建的pam文件



mkdir -p /home/laotang6/zhangsan/zs           #创建张三的共享目录

mkdir -p /home/laotang6/lisi/ls               #创建李四的共享目录


在指定的目录下cd /etc/ftp,以虚拟用户名创建的文件权限配置文件

cd /etc/ftp

vim zhangsan          #创建张三的权限配置文件(要以虚拟用户名做文件名)

红帽7(centos 7)配置VSFTP_第14张图片


chmod o+w /home/laotang6/zhangsan/zs          #给予目录读写权限


vim lisi

wKioL1lHv53x9yuSAAAsksADqfY854.jpg


systemctl restart vsftpd        #重启


客户端测试: OK

 

张三(有读写权限)

红帽7(centos 7)配置VSFTP_第15张图片

红帽7(centos 7)配置VSFTP_第16张图片


李四(只有读取权限)

红帽7(centos 7)配置VSFTP_第17张图片

红帽7(centos 7)配置VSFTP_第18张图片




systemctl restart firewalld        #开启防火墙


允许防火墙

firewall-cmd --permanent --add-service=ftp

firewall-cmd --reload





以上实验配置完毕。