3.1 Vsftpd服务的部署及优化

本文详细介绍了如何部署和优化Vsftpd服务,包括FTP的基本概念、Vsftpd服务信息、实验环境配置、匿名用户和本地用户的访问控制策略,以及虚拟用户的设置。在匿名用户访问部分,涉及了登陆控制、目录权限、上传下载权限等;在本地用户访问控制中,讲解了用户登陆、目录访问、写权限和登录黑名单的管理。最后探讨了虚拟用户的建立、家目录设定和独立操作。
摘要由CSDN通过智能技术生成

目录

 一、什么是ftp

二、vsftp服务的相关信息

1、基本信息

(1)相关文件及目录

(2)相关报错

三、实验环境的配置

 四、vsftpd的安装与启用

 五、匿名用户的访问

1、匿名用户登陆控制

 2、默认发布目录控制

​ 3、允许匿名用户上传文件

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

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

​ 6、允许匿名用户下载文件

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

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

 9、登陆用户数量控制

 10、上传速率控制

 六、本地用户访问控制

1、本地用户登陆控制

2、更改默认访问目录

3、写权限控制

 4、上传文件权限控制

5、用户登陆控制

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

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

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

 七、虚拟用户访问控制

1、虚拟用户的建立

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

 3、虚拟用户配置的独立操作


 一、什么是ftp

FTP是File Transfer Protocol的英文简称,而中文简称为“文传协议”,用于Internet上的控制文件的双向传输,使用客户/服务器模式,它属于网络传输协议的应用层。

二、vsftp服务的相关信息

1、基本信息

(1)相关文件及目录

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

(2)相关报错

报错含义
550服务程序本身拒绝
553文件系统权限限制
500文件系统权限过大
530认证失败

三、实验环境的配置

全新的虚拟机,进行网络配置,设定ip为172.25.254.105(略)

设置可用的网络仓库指向(略)

编辑selinux的主配置文件 将第一个selinux改为disabled,重启虚拟机(重要)

 四、vsftpd的安装与启用

我们将虚拟机westosa作为FTP服务器,在虚拟机westosa中设置网络ip为172.25.254.105,关闭内核加强级防火墙selinux,配置软件仓库源指向文件(这里以真实主机为软件仓库),安装vsftpd软件

 安装完成后启动vsftpd服务,在系统防火墙中永久开启 ftp 访问,刷新防火墙使设定生效,

 接着我们可以通过以下两种方式进行ftp访问:

(1)安装lftp(ftp协议文本浏览器)访问ftp—lftp ip

(2)在firefox浏览器所在的真实主机中访问ftp—ftp: //ip

 此时不能访问ftp的默认共享目录/var/ftp:lftp不能成功访问(列出默认共享目录下资源) / 浏览器网页提示需要认证

在浏览器中访问ftp://172.25.254.105

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

 编辑vsftp主配置文件/etc/vsftpd/vsftpd.conf,启动匿名用户的访问功能,重启vsftp服务

 此时使用上述两种方式可以成功访问ftp的默认共享目录/var/ftp

 五、匿名用户的访问

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

1、匿名用户登陆控制

登陆控制
anonymous_enable=YES|NO

 2、默认发布目录控制

家目录控制
anon_root=/westosdir

 创建目录/westosdir 编辑主配置文件设定默认家目录为/westosdir,写入anon_root=/westosdir,保存后重启服务,在/wetosdir目录下建立文件,访问ftp服务,可以看到/westosdir目录中的文件,说明服务的家目录已经修改为/westosdir

3、允许匿名用户上传文件

上传控制
anon_upload_enable=YES|NO

 修改vsftp服务的配置文件,重启服务,再次在pub/中put上传文件,553报错即文件系统权限限制,我们需要修改目录权限

 更改默认共享目录/var/ftp的权限为755、pub/的权限为777,访问ftp在pub/中可以成功put上传文件

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

删除重命令控制
anon_other_write_enable=YES|NO

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

目录建立控制
anon_mkdir_write_enable=YES|NO

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

下载控制
anon_world_readable_only=NO    ##匿名用户可以下载不能读的文件

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

匿名用户上传文件权限设定
anon_umask=xxx
anon_umask=022        ##当设定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

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

 9、登陆用户数量控制

登陆数量控制:
max_clients=2

在三个终端分别访问ftp(即同时有三个匿名用户访问ftp),都可以成功访问,在企业的实际应用中,这显然是不合理的,应该设置一个访问人数上限

此时登陆在 已经有两个终端登陆ftp的情况下第三个终端登陆时会显示排队状态,当有登陆中夫人终端退出后,第三个才能登陆

 10、上传速率控制

上传速率控制
anon_max_rate=102400

首先生成一个1000M大小的文件,访问ftp在pub/中上传该文件,可以看到文件上传速率很大,而在实际应用中,企业作为服务提供方,需要对用户上传速率进行限制

 编辑vsftp服务的配置文件,设置最大上传速率为102400(默认单位为KB),重启服务,再次在pub/中上传该文件,可以看到文件上传速率逐渐降低至限定速度之下(速度逐渐下降,到限定速度之下后保持相对稳定)

 六、本地用户访问控制

1、本地用户登陆控制

登陆控制
useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee

lftp    192.168.0.10 -u westos

local_enable=NO|YES

 创建普通/本地用户lee,设定普通用户密码,lftp 172.25.254.105 -u 本地用户 可以成功以本地用户身份访问ftp

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

2、更改默认访问目录

家目录控制
local_root=/westosdir

3、写权限控制

写权限控制
write_enable=NO|YES

 

 4、上传文件权限控制

上传文件权限控制
local_umask=077

 

 

5、用户登陆控制

用户登陆控制
/etc/vsftpd/ftpusers    ##永久黑 在该名单中的用户无法访问ftp
/etc/vsftpd/user_list    ##默认黑  在该名单中的用户无法访问ftp;可以在配置文件中设定userlist_deny=NO,此时该用户列表为用户登录白名单,不在名单中的用户不能访问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、虚拟用户的建立

在vsftpd服务配置目录/etc/vsftpd/下建立认证文件,在其中设置虚拟用户的用户名和密码,加密该认证文件—db_load -T(转换) -t(指定转换类型) hash -f(指定加密文件) 文件名 输出文件

 在/etc/pam.d下生成认证策略文件(注意认证策略文件路径不用写.db后缀,系统会自动添加)

 编写vsftp服务的配置文件,指定认证策略文件,指定虚拟用户功能开启,指定虚拟用户在ftp服务器上的用户身份,重启服务,此时可以通过认证文件中设置的虚拟用户成功访问ftp

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

 虚拟用户访问ftp,默认共享目录为/var/ftp ,我们为每个虚拟用户建立各自的家目录

 编写vsftp服务的配置文件,指定虚拟用户默认访问目录位其对应家目录,从shell中提取登陆的虚拟用户名,重启服务,此时虚拟用户访问ftp后看到的是其家目录中的资源

 3、虚拟用户配置的独立操作

虚拟用户访问ftp后,在其家目录中put上传文件,553报错即文件系统权限限制,我们需要给虚拟用户各自家目录进行权限设置

 权限设置完成后所有虚拟用户都可以进行上传操作

 编写vsftp服务的配置文件(注释五行;添加独立语句),重启服务,建立与配置文件中对应的目录,在该目录下编写指定用户的独立上传文件(注意文件名要与用户名相同),只有指定用户可以上传

 

 

 完成上述设定后只有虚拟用户user1可以上传文件,user2和user3不行(注意上传只能在家目录的子目录下,不能直接在家目录下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值