VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。它是一个安全、高速、稳定的FTP服务器。vsftpd有三种模式。匿名模式。用户模式,还有虚拟用户模式。我们分别来配置一下这几种模式。
yum install vsftpd -y #安装
systemctl restart vsftpd #重启
systemctl stop firewalld #关闭防火墙(后面实验成功后再开启)
匿名用户:
默认情况下,vsftpd的匿名用户是打开的,客户端是可以访问的。
客户端访问:OK(输入ftp://ftp服务器IP地址)
默认是没有权限写入的。我们去主配置文件配置写入权限吧。
vim /etc/vsftpd/vsftpd.conf #打开主配置文件,添加如下内容,注意不要与文中重叠
解释:
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匿名路径
getsebool -a | grep ftp#查看所有与ftp相关的SELinux规则
setsebool -P ftpd_full_access=on#设置SELinux服务队ftp服务访问规则策略为允许
注意:(这里可以先不管,暂时关闭命令 setenforce 0 )
systemctl restart vsftpd #重启
客户端测试OK(有读取权限)
匿名用户的默认路径是/var/ftp/pub,我们是可以修改默认路径的
mkdir -p /var/tang/laotang6 #创建匿名路径
vim /etc/vsftpd/vsftpd.conf #打开主配置文件,添加如下命令
anon_root=/var/tang #指明匿名用户的路径为/var/tang
记得修改属主,才有权限写入哦!!
chown ftp /var/tang/laotang6 #修改属主为ftp
chmod o+w /var/tang #给予目录读写权限
客户端测试: OK(有读取权限)
本地用户:
本地用户配置还是比较简单,只要系统存在用户就可以登录,默认本地用户也是开启的。
useradd tang #创建帐号tang
password tang #修改用户tang的密码
vim /etc/vsftpd/vsftpd.conf #打开主配置文件,关闭匿名用户
注意,这里只要把匿名用户no掉就行了,不用一条条注释它们。
systemctl restart vsftpd #重启
客户端测试:OK (有读取权限)
登录成功(路径是用户的家目录例如我的路径是:/home/tang)
本地用户的默认路径是/home/用户名,我们是可以修改默认路径的
mkdir -p /var/laotang/tang #创建本地路径
vim /etc/vsftpd/vsftpd.conf #打开主配置文件,添加如下命令
local_root=/var/laotang6 #指明本地用户的路径为/var/laotang6
chmod o+w /var/laotang6 #给予目录读写权限
客户端测试: OK(有权限写入)
虚拟用户:
虚拟用户相对来说是比较安全的,因为帐号,是虚拟出来的,不存在于本地,
虚拟用户我们来做个实验,让张三(有读写权限),李四(只有读取权限),
分别指向不同的文件目录。
mkdir /etc/ftp #创建目录
cd /etc/ftp
vim/etc/ftp/user.txt #添加如下内容,单行为帐号,双行为密码
将上面创建的帐号密码转化为数据库文件
db_load -T -t hash -f user.txt user.db
vim /etc/pam.d/laotang6 #建立pam配置文件,文件名自定义。进行以下配置
创建本地用户,给虚拟用户映射。
useradd laotang6 #创建帐号laotang6
password laotang6 #修改用户laotang6的密码
vim /etc/vsftpd/vsftpd.conf
注意:修改主配置文件中最下面的pam_service_name=vsftpd 为我们创建的laotang6
解释:
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 #创建张三的权限配置文件(要以虚拟用户名做文件名)
chmod o+w /home/laotang6/zhangsan/zs #给予目录读写权限
vim lisi
systemctl restart vsftpd #重启
客户端测试: OK
张三(有读写权限)
李四(只有读取权限)
systemctl restart firewalld #开启防火墙
允许防火墙
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
以上实验配置完毕。