热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FTP/Vsftpd服务的部署及匿名用户访问控制详解

Vsftpd服务的部署及匿名用户访问控制1、什么是ftpFTP(FileTransferProtocol,文件传输协议)是TCPIP协

Vsftpd服务的部署及匿名用户访问控制


1、什么是ftp

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。FTP能操作任何类型的文件而不需要进一步处理,但有着极高的延时,从开始请求到第一次接收需求数据之间的时间较长,并不时地执行一些冗长的登录进程,是互联中最老牌的文件传输协议。


2、vsftpd的安装及启用

在这里,我们使用vsftpd这一软件来对FTP服务进行详细说明。vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的FTP服务器软件,支持很多其他的 FTP 服务器所不支持的特征如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。vsftpd的安装及启用方法如下:

实验步骤:
1)我们将虚拟机westosa作为FTP服务器,在虚拟机westosa中设置网络ip为172.25.254.133,关闭内核加强级防火墙selinux,配置软件仓库源指向文件(这里以真实主机为软件仓库),安装vsftpd软件
在这里插入图片描述
在这里插入图片描述
2)安装完成后启动vsftpd服务,在系统防火墙中永久开启 ftp 访问,刷新防火墙使设定生效,接着我们可以通过以下两种方式进行ftp访问
方法一: 安装lftp(ftp协议文本浏览器)访问ftp—lftp ip
方法二: 在firefox浏览器所在的真实主机中访问ftp—ftp: //ip
在这里插入图片描述
3)此时不能访问ftp的默认共享目录/var/ftp:lftp不能成功访问(列出默认共享目录下资源) / 浏览器网页提示需要认证
在这里插入图片描述
在这里插入图片描述
4)这是因为在默认情况下,通过上述两种方式访问ftp都是以匿名用户的身份进行的,而ftp服务默认不支持匿名用户访问,必须指定安装有ftp服务的主机的本地用户才能访问
在这里插入图片描述
5)因此,我们需要修改vsftp服务的配置文件/etc/vsftpd/vsftpd.conf,启动匿名用户的访问功能anonymous_enable=YES,重启vsftp服务,此时使用上述两种方式可以成功访问ftp的默认共享目录/var/ftp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


3、vsftpd服务的基本信息


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

除上述基本信息之外,在我们访问FTP服务的过程中,系统会提示报错信息,其对应含义如下:


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

4、匿名用户访问控制


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


a)匿名用户登陆控制: anonymous_enable=YES|NO(这项功能已在上文中说明,此处不过多赘述)

b)更改默认发布目录: anon_root=/westosdir
实验步骤:
1)访问ftp(lftp 172.25.254.133)默认共享目录为/var/ftp /,新建目录/westosdir,在该目录下建立文件,修改vsftp服务的配置文件,重启服务,此时访问ftp看到的是/westosdir目录下的文件
在这里插入图片描述
在这里插入图片描述
c)允许匿名用户上传文件: anon_upload_enable=YES|NO
实验步骤:
1)访问ftp(lftp 172.25.254.133),在pub/中put上传文件(不能在默认共享目录/var/ftp本身中进行操作,只能对共享目录中的子目录进行操作),550报错即服务本身拒绝
在这里插入图片描述
2)修改vsftp服务的配置文件,重启服务,再次在pub/中put上传文件,553报错即文件系统权限限制,我们需要修改目录权限
在这里插入图片描述
在这里插入图片描述
3)这里不能更改默认共享目录/var/ftp的权限为777,否则重启服务后无法成功访问 (lftp 172.25.254.133)(ls查看成功才算访问成功),会出现安全警告在这里插入图片描述
4)更改默认共享目录/var/ftp的权限为755、pub/的权限为777,访问ftp在pub/中可以成功put上传文件
在这里插入图片描述
d)允许匿名用户删除重命名:anon_other_write_enable=YES|NO
实验步骤:
1)访问ftp对pub/中的文件进行删除、重命名,删除、重命名文件失败,550报错即服务本身拒绝在这里插入图片描述
2)编写vsftp服务的配置文件,重启服务,可以进行文件的删除、重命名操作
在这里插入图片描述
在这里插入图片描述
e)允许匿名用户建立、删除目录:anon_mkdir_write_enable=YES|NO
实验步骤:
1)访问ftp在pub/中建立目录,目录建立失败,550报错即服务本身拒绝
在这里插入图片描述
2)编写vsftp服务的配置文件,重启服务,访问ftp在pub/中可以建立、删除目录
在这里插入图片描述
在这里插入图片描述
f)允许匿名用户下载文件:anon_world_readable_Only=NO( 匿名用户可以下载不能读的文件)
实验步骤:
1)访问ftp下载pub/中的文件失败,550报错即服务本身拒绝,文件不能读
在这里插入图片描述
2)编写vsftp服务的配置文件,重启服务,访问ftp可以成功下载pub/中的文件(文件会下载至访问ftp前所在的系统位置处)
在这里插入图片描述
在这里插入图片描述
g)匿名用户上传文件权限设定:anon_umask=xxx
实验步骤:
1)访问ftp在pub/中上传文件/etc/passwd,服务默认上传文件的权限为600,编写vsftp服务的配置文件,设定anon_umask=022,重启服务,访问ftp在pub/中上传另一文件/etc/group,可以看到文件group权限为644(777-022-111),权限设定生效
在这里插入图片描述
在这里插入图片描述
h)匿名用户上传文件的用户身份设定:chown_upload=YES chown_username=westos
实验步骤:
1)访问ftp在pub/中上传文件,所上传文件passwd、group的拥有者默认为14(ftp服务用户),更改pub/的拥有组为ftp,更改pub/的权限为775,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件inittab的拥有者为设定的westos
在这里插入图片描述
在这里插入图片描述
2)注意: 文件inittab的拥有者为设定的westos,但其权限为默认权限600,不是我们所设定的644,这是因为当我们设定chown_username之后上传文件权限将不是用anon_umask=xxx参数设定,而是用chown_upload_mode=xxxx来重新设定,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件adjtime的拥有者为设定的westos且权限为644
在这里插入图片描述
在这里插入图片描述
i)登陆用户数量控制:max_clients=x
实验步骤:
1)在三个终端分别访问ftp(即同时有三个匿名用户访问ftp),都可以成功访问,在企业的实际应用中,这显然是不合理的,应该设置一个访问人数上限
在这里插入图片描述
2)编辑vsftp服务的配置文件,设置访问人数上限为2,重启服务,在三个终端分别访问ftp,第三个匿名用户无法访问,FTP服务提示访问人数已达上限
在这里插入图片描述
在这里插入图片描述
j)上传文件速率控制:anon_max_rate=xxxx
实验步骤:
1)首先生成一个1000M大小的文件,访问ftp在pub/中上传该文件,可以看到文件上传速率很大,而在实际应用中,企业作为服务提供方,需要对用户上传速率进行限制
在这里插入图片描述
2)编辑vsftp服务的配置文件,设置最大上传速率为102400(默认单位为KB),重启服务,再次在pub/中上传该文件,可以看到文件上传速率逐渐降低至限定速度之下
在这里插入图片描述
在这里插入图片描述


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Ionic微信开发之环境配置
    在开发微信版的H5页面时,如果需要正常调用微信公众号的开放接口(测试或者发布情况),根据官方要求需要保证网页域名和后端维护的一致。因此,进行真服测试就显得很有必要。WebStorm ... [详细]
  • 使用SFTP密钥进行根目录不受限制的指定(第三部分)
    20190127之前限制ChrootDirectory之后,需要对原有环境改造较多1.之前配置的网站都是直接存在在了varwww2、还没有部署网站的新服务器&#x ... [详细]
  • linux ftp 线程数设置,Linux搭建ftp在windows下这么访问,需要怎么设置【设置vsftp最大连接数和每个ip的最大连接数】...
    文章来源:http:zhidao.baidu.comlink?urlLOfStD1kcxGhI_D5qC7oka3_4QZc1nn1SJwWaSd4onWoVl5Wt ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 在应用系统开发当中,文件的上传和下载是非常普遍的需求。在基于.NET的CS架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest、webclient等),而且多采用异步 ... [详细]
  • 文件上传漏洞利用介绍
    目录文件上传漏洞利用介绍1.绕过js验证2.绕过MIME-TYPE验证3.绕过基于黑名单验证基于文件后缀名验证介绍基于文件后缀名验证方式的分类基于黑名单验证代码分析利 ... [详细]
  • ESP8266–ESP8266WebServer库ESP8266WebServer库的整体结构图函数说明服务器运行管理分类–ESP8266WebServer–建立新的ESP8266 ... [详细]
  • PHP程序员玩转Linux系列 搭建FTP代码开发环境
    PHP程序员玩转Linux系列搭建FTP代码开发环境-PHP程序员玩转Linux系列文章:有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的是让大家 ... [详细]
  • linux搭建FTP
    linux下FTP的搭建及优化[日期:2007-11-04]李磊19840817吴康[字体:大中小]首先安装Linux企业版第一张光盘中的vsftpd- ... [详细]
  • tip8:CentOS8安装ftp服务器
    之前习惯使用OpenSuse,其图形化的安装。现在刚开始使用CentOS,老老实实使用命令吧!1、本地cmd命令ftp链接虚拟机无法链接。查出虚拟机ftp服务是否开启:没有ps-e ... [详细]
  • 文件服务器配置访问权限配置,文件服务器配置访问权限配置
    文件服务器配置访问权限配置内容精选换一换用户需要使用图形化界面管理HDFS中文件时,可以通过Hue完成任务。Hue界面主要用于文件、表等数据的查看与分析, ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
  • javaftp上传,javaftp下载文件
    本文目录一览:1、javaftp上传5G以上大文件,怎么做 ... [详细]
author-avatar
QEWERTGF_978
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有