linux中vsftpd服务的部署及优化

实验检测的环境

服务端(server)主机

主机名:ftp_server
ip地址:192.1.168.102/24
selinux关闭,开启火墙,并且加入了ftp服务
安装vsftpd 服务

客户端(client)主机

主机名:ftp_client
ip地址:172.25.254.3/24
selinux关闭 ,开启火墙
安装了 lftp ( ftp 协议文本浏览器)
在这里插入图片描述
在这里插入图片描述

ftp介绍以及优缺点

ftp : file transfer proto         #文件传输协议
优点:对文本传输速率高,安全性高
缺点:在传送图片的时候,传输效果不是很理想

lftp安装

dnf install lftp.x86_64            #下载安装lftp功能
在这里插入图片描述
网页访问ftp服务器
在这里插入图片描述

lftp ip地址                 #通过命令的方式访问服务器
在这里插入图片描述

vsftpd服务的基本信息(server端)

  • 服务名称: vsftpd.service

  • 配置目录: /etc/vsftpd

  • 主配置文件: /etc/vsftpd/vsftpd.conf

  • 默认发布目录: /var/ftp

  • 报错信息:
    550 程序本身拒绝
    553 文件系统权限限制
    500 权限过大
    530 认证失败

vsftpd服务对用户的访问控制

客户端:lftp 192.168.1.102 是以匿名用户的方式访问服务端

服务端对匿名用户访问控制:

登陆控制;

anonymous_enable=YES|NO         #允许用户是否可以登陆,YES代表允许登陆,NO代表不允许登陆
在这里插入图片描述

对用户访问的目录控制

系统默认发布:/var/ftp
anon_root=绝对路径              #匿名用户访问的目录是该路径下的内容
在这里插入图片描述
没有这个设定的话默认发布发布/var/ftp/

上传控制

anon_upload_enable=YES|NO           #匿名用户是否有上传功能,YES代表有,NO代表没有(默认为NO)
在这里插入图片描述

目录建立控制

anon_mkdir_write_enable=YES|NO         #匿名用户是否有可以建立目录的功能 ,YES代表可以建立目录,NO代表不可以建立(默认为NO)
在这里插入图片描述

匿名用户上传文件的权限控制

anon_umask=022                 #匿名用户上传目录和文件的权限设置(默认077)
在这里插入图片描述

删除和重命名控制

anon_other_write_enable=YES|NO         #匿名用户是否可以有删除文件或者重命名名字的 能力,YES代表有,NO代表没有。(默认为NO)
在这里插入图片描述

下载控制

anon_world_readable_only=NO|YES           #NO代表匿名用户可以下载不能读的文件,YES代表匿名用户可以下载可以读的文件(默认为YES)
注:对于文件的可读性,虽然在客户端使用lftp 登陆服务端的时,用的是ftp的用户身份,但是如果该文件自身对其他人并没有可读的权限,那么在下载控制为YES的情况下,客户端是不能查看和下载该文件的,如果下载控制为NO的情况下,该客户端是可以查看和下载该文件的。

在这里插入图片描述

匿名用户上传文件的用户身份设定

chown_uploads=YES |NO                    #开启匿名用户上传文件身份设定的这个功能(默认为NO)
chown_username=yxy                   #设定用户上传身份为westos(该身份必须是服务端存在的身份)
chown_upload_mode=0644                 #设定上传文件的权限,默认是(0600 )
在这里插入图片描述

登陆数量控制:

max_clients=2                      #允许同时访问该服务端的只能有2个(默认为2000)
在这里插入图片描述

上传速率控制

anon_max_rate=1024                   #允许匿名用户上传的最大速率最大是1024KB/s (默认为0,指没有限制有多快就是多快)
在这里插入图片描述

服务端对本地用户访问控制:

vsftpd服务对本地用户的访问控制
客户端:lftp 192.168.1.102 -u 本地用户名         #是以本地用户的方式访问服务端

  • 登陆控制
    local_enable=YES|NO                 #是否允许客户端以本地用户的方式登陆服务端(默认是NO)

  • 家目录控制
    local_root=绝对路径                 #所有用户都将访问该目录(默认是访问/home/用户名下的目录)

  • 写权限控制
    write_enable=YES|NO                #对该目录的所有权限是否打开(默认是NO)

  • 上传文件权限控制
    local_umask=022                     #保留的权限(默认077)

  • 用户登陆控制
    /etc/vsftpd/ftpusers ##永久黑
    /etc/vsftpd/user_list ##默认黑
    当userlist_deny=NO时,/etc/vsftpd/user_list 就变成白名单了,除了名单上的用户,其他默认用户就不能登陆访问了

  • 锁定用户到自己的家目录中的白名单(该/etc/vsftpd/chroot_list名单上的用户可以访问服务端的 / 目录下的内容)
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    在这里插入图片描述
    在这里插入图片描述

  • 锁定用户到自己的家目录中的黑名单(该/etc/vsftpd/chroot_list名单上的用户不可以访问服务端的 / 目录下的内容)
    chroot_local_user=NO 默认是NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list

vsftpd服务对虚拟用户的访问控制

建立虚拟用户的过程(服务端)

  • 在系统的任何位置都可以建立虚拟用户认证模板,一般vsftd的虚拟用户建立在/etc/vsftbd/下的user_auth
    在这里插入图片描述

  • db_load -T -t hash -f user_auth user_auth.db        #给该文件加密 -t hash 指用hash加密

  • 在/etc/pam.d建立虚拟用户认证策略文件
    在这里插入图片描述

  • 编辑 /etc/vsftpd/vsftpd.conf 的用户认证策略
    在这里插入图片描述

  • 重启服务并且在客户端验证

虚拟用户家目录的独立设定

  • 系统默认虚拟用户和匿名用户的默认发布目录时/var/ftp/下,给不同虚拟用户的创建独立家目录的方法。

mkdir -p /westos/westossnji1/westossnji1pub
mkdir -p /westos/westossnji2/westossnji2pub
mkdir -p /westos/westossnji3/westossnji3pub

  • 在/etc/vsftpd/vsftpd.conf 指定匿名用户的家目录
    在这里插入图片描述
  • 重启服务,客户端测试

用户配置独立

  • 修改/etc/vsftp/vsftpd.conf
    user_config_dir=/etc/vsftpd/user_config        #在此目录中与用户名称相同的文件为用户配置

  • mkdir user_config            #不会自动生存该目录,需要自己建立

  • vim /etc/vsftpd/user_config/westossnji1     #为westossnji1这个用户添加配置
    在这里插入图片描述

  • 配置虚拟用户的家名录,虚拟用户对该目录时可读写的

  • 重启服务,并且在客户端测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值