linux系统工程师----1.Vsftpd服务的部署及优化

前言

一、什么是ftp

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。该协议是互联网中最老牌的文件传输协议。

二、vsftp服务的基本信息

服务名称:vsftpd.service
配置目录:/etc/vsftbd
主配置文件:/etc/vsftpd/vsftpd.conf
默认发布目录:/var/ftp

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

三、实验环境

一台主机westosb,设定IP、关闭内核加强级火墙selinux、配置软件仓库(具体步骤参考第一本书linux操作基础)
步骤如下:

在这里插入图片描述
在这里插入图片描述修改完成后需要重启才能生效。
在这里插入图片描述
在这里插入图片描述

四、vsftpd的安装与启用

安装vsftpd并启服务,在系统防火墙永久开启ftp访问,刷新火墙使其设定生效。
在这里插入图片描述在这里插入图片描述
设定完之后,我们可以通过以下两种方式进行ftp访问:
1.安装lftp(lftp协议文本浏览器)访问ftp-lftp ip
在这里插入图片描述在这里插入图片描述

2.在firefox浏览器访问ftp-ftp://ip
此时不能访问ftp的默认共享目录/var/ftp: lftp不能成功访问(列出默认共享目录下资源)浏览器网页需要认证。
在这里插入图片描述

这是在默认情况下,通过上述两种方式都是以匿名用户身份进行的,而ftp服务默认不支持匿名用户访问,必须指定安装有ftp服务的主机的本地用户才能访问。
在这里插入图片描述

修改vsftp服务的配置文件/etc/vsftp/vsftpd.conf,开启匿名用户访问功能,重启vsftp服务,即可成功访问ftp的默认共享目录/var/ftp
在这里插入图片描述aa
在这里插入图片描述

五、匿名用户的访问

lftp 172.25.254.172       ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 172.25.254.172 -u westos     ##本地用户访问

1.匿名用户登录控制

 anonymous_enable=YES|NO

在这里插入图片描述

2.更改默认发布目录

 anon_root=/westosdir

在这里插入图片描述

3.允许匿名用户上传

 anon_upload_enable=YES|NO

访问ftp,在pub/中put上传文件,不能在默认共享目录/var/ftp本身进行操作,只能对共享目录中的子目录进行操作,550报错(服务本身拒绝)
在这里插入图片描述
修改vsftp服务的配置文件,重启服务,553报错(文件权限限制),修改权限为777,ls查看是否成功访问。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

更改默认共享目录/var/ftp的权限为755,pub/权限为777,访问ftp在pub/中可以成功put 上传文件。
在这里插入图片描述

4.允许匿名用户删除重命名

 anon_other_write_enable=YES|NO

访问ftp对pub/中的文件进行删除重命名,550报错
在这里插入图片描述编写vsftp服务的配置文件,重启服务
在这里插入图片描述在这里插入图片描述

5.允许匿名用户建立、删除目录

anon_mkdir_write_enable=YES|NO

在这里插入图片描述
编写vsftp服务的配置文件,重启服务
在这里插入图片描述
在这里插入图片描述

6.允许匿名用户下载文件

anon_world_readable_only=NO

在这里插入图片描述编写vsftp服务的配置文件,重启服务,文件会下载至访问ftp前所在的系统位置处。
在这里插入图片描述在这里插入图片描述

7.匿名用户上传文件权限设定

 anon_umask=xxx    ##当设定chown_username之后上传文权限将不是用此参数设定

访问ftp在pub/中上传文件/etc/passwd,服务默认上传文件的权限为600,编写vsftp服务的配置文件,设定anon_umask=022,重启服务,访问ftp在pub/中上传另一文件/etc/group,可以看到文件group权限为644(777-022-111),权限设定生效。
在这里插入图片描述在这里插入图片描述

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

chown_upload=YES
chown_username=lee
chown_upload_mode=0644

访问ftp在pub/中上传文件,所上传文件passwd、group的拥有者默认为14(ftp服务用户),更改pub/的拥有组为ftp,更改pub/的权限为775,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件inittab的拥有者为设定的westos
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
文件inittab的拥有者为设定的westos,但其权限为默认权限600,不是我们所设定的644(上一节所设定),这是因为当我们设定chown_username之后上传文件权限将不是用anon_umask=xxx参数设定,而是用chown_upload_mode=xxxx来重新设定,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件adjtime的拥有者为设定的westos且权限为644 。
在这里插入图片描述
在这里插入图片描述

9.登录用户数量控制

 max_clients=x

在这里插入图片描述在这里插入图片描述

10.上传文件速率控制

anon_max_rate=xxxx

首先生成一个1000M大小的文件,访问ftp在pub/中上传该文件,可以看到文件上传速率很大,而在实际应用中,企业作为服务提供方,需要对用户上传速率进行限制。
在这里插入图片描述
编辑vsftp服务的配置文件,设置最大上传速率为102400(默认单位为KB),重启服务,再次在pub/中上传该文件,可以看到文件上传速率逐渐降低至限定速度之下。
在这里插入图片描述在这里插入图片描述

六、本地用户访问控制

1.登陆控制

local_enable=NO|YES

useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee
lftp  192.168.0.10 -u westos

创建普通/本地用户lee,设定普通用户密码,lftp 172.25.254.133 -u 本地用户可以成功以本地用户身份访问ftp
在这里插入图片描述

修改vsftp服务的配置文件,重启服务,此时本地用户不能成功访问ftp,530报错即用户无法通过认证.

在这里插入图片描述在这里插入图片描述

2.家目录控制

 local_root=/software

本地用户访问ftp时,默认访问的是该本地用户的家目录/home/username,新建目录/westosdir,在该目录下建立文件,修改vsftp服务的配置文件,重启服务,本地用户访问ftp时看到的是/westosdir目录下的文件
在这里插入图片描述
在这里插入图片描述

3.写权限控制

write_enable=NO|YES

本地用户访问ftp,在该本地用户的家目录/home/username中put上传文件,550报错即服务本身拒绝,修改vsftp服务的配置文件,重启服务,本地用户再次访问ftp可以进行上传、删除文件等操作

在这里插入图片描述在这里插入图片描述

4.上传文件权限控制

local_umask=077

本地用户访问ftp时,在该本地用户的家目录/home/username中put上传文件/etc/passwd,默认上传权限为644,编写vsftp服务的配置文件,设定local_umask=077,重启服务,访问ftp在pub/中上传另一文件/etc/group,可以看到文件group权限为600(777-077-111),权限设定生效。

在这里插入图片描述在这里插入图片描述

5.用户登陆控制

/etc/vsftpd/ftpusers  ##永久黑
/etc/vsftpd/user_list  ##默认黑
 userlist_deny=NO  #设定/etc/vsftpd/user_list位白名单
                                 #不在名单中的用户不能登陆ftp

编辑永久用户登录黑名单,在其中添加lee用户后,本地用户lee无法访问ftp,530报错即用户无法通过认证

在这里插入图片描述
在这里插入图片描述

编写vsftp服务的配置文件,设定userlist_deny=NO,重启服务,此时用户列表为用户登录白名单,在其中添加westos用户后,只有本地用户westos可以访问ftp,不在名单中的用户不能访问ftp(包括匿名用户)
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

6.锁定用户到自己的家目录中

chmod u-w /home/*
chroot_local_user=YES

本地用户访问ftp,切换到ftp服务器根目录可直接访问,这样不安全,应该将用户锁定到自己的家目录中
在这里插入图片描述
编写vsftp服务的配置文件,重启服务,本地用户访问ftp不成功,500报错即文件系统权限过大。
在这里插入图片描述
在这里插入图片描述我们需要将家目录的写权限去掉,否则无法访问,此时本地用户访问lftp成功后无法切换浏览根,该用户被锁定到自己的家目录中
在这里插入图片描述

7.锁定用户到自己的家目录中的白名单

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

编写vsftp服务的配置文件,设定chroot_local_user=YES,重启,编写锁定名单(/etc/vsftpd/chroot_list),在名单中添加lee,只有名单中的lee用户访问lftp后可以切换浏览根/,不在名单中的westos用户访问lftp后被锁定到自己的家目录中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.锁定用户到自己的家目录中的黑名单

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

编写vsftp服务的配置文件,设定chroot_local_user=NO,重启,编写锁定名单(/etc/vsftpd/chroot_list),在名单中添加用户lee,名单中的lee用户访问lftp后被锁定到自己的家目录中不能切换浏览根/,不在名单中的westos用户访问lftp后可以切换浏览根/
在这里插入图片描述在这里插入图片描述在这里插入图片描述

七、虚拟用户访问控制

#1.建立虚拟用户过程########

1.vim /etc/vsftpd/ftpauth
user1
123
user2
123
user3
123         #建立认证文件模板



2.db_load -T -t hash -f ftp_auth_file ftp_auth_file.db
##加密认证文件 -T 转换 -t   hash -f 指定转换文件 文件名 输出文件

在这里插入图片描述

3.vim /etc/pam.d/ftpauth生成策略文件
account  required  ftp_auth_file  pam_userdb.so  db=/etc/vsftpd/ftp_auth_file

在这里插入图片描述

4.vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##指定认证策略文件
guest_enable=YES   ##指定虚拟用户功能开启
guest_username=ftp  ##指定虚拟用户在ftp服务器上的用户身份

在这里插入图片描述在这里插入图片描述

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

mkdir -p /ftpuserdir/westos{1..3}
touch /ftpuserdir/westos1/westos1file
touch /ftpuserdir/westos2/westos2file
touch /ftpuserdir/westos3/westos3file
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER
user_sub_token=$USER
systemctl restart vsftpd

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

#########3.用户配置独立##############

user_config_dir=/etc/vsftpd/user_config #在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/westos2
anon_upload_enable=YES

设定完成后westos2用户可以上传文件
westos1和westos3不行
在这里插入图片描述在这里插入图片描述在这里插入图片描述编写vsftp服务的配置文件(注释五行;添加独立语句),重启服务,建立与配置文件中对应的目录,在该目录下编写指定用户的独立上传文件(注意文件名要与用户名相同),只有指定用户可以上传。

在这里插入图片描述在这里插入图片描述在这里插入图片描述完成上述设定后只有虚拟用户user1可以上传文件,user2和user3不行,只能在家目录的子目录下,不能直接在家目录下。
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值