VSFTP 服务器
文章目录
摘要
终端设备运行过程中产生较多生产日志及数据,经过设备埋点对数据进行初步清洗后进行云端存储。
该过程要求定时执行,进行必要文件存储及备份工作。通过对数据量预估及现有技术环境分析,暂选
择以VSFTPD文件共享服务器的形式,提供对终端提供该项服务。
为什么选择VSFTPD?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v7cvPpdj-1589014485933)(https://s2.ax1x.com/2020/01/20/1iuoqO.jpg)]
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
VSFTPD介绍
VSFTPD 的特点
- 安全性高:针对安全性作了严格的、特殊的处理,比其他早期的FTP服务器软件有了很大进步。
- 稳定性好:VSFTPD的的运行更加稳定,处理并发请求数更多(单机可以支持4000个并发连接)
- 速度更快:在ASCII模式下是同类服务器的2倍
- 配置简单:不需要任何特殊的目录结构,匿名配置更简便
- 支持基于IP的虚拟FTP服务器
- 支持虚拟用户:每个虚拟用户均可得到独立的配置
- 支持PAM认证方式
- 支持带宽限制
- 支持tcp_wrappers
VSFTP 功能简介
- 文件档案传递,通过在服务器和客户端之间建立两条联机信道(命令信道和数据流信道),完成服务器上文件的管理和传输。
- 用户分类管理,VSFTPD 服务器提供如下3种不同不同的类型:
- local_user(linux 登录用户)
- guest(访客也称之虚拟用户)
- Anonymous(匿名用户)
利用三种用户类型可对其分配不同的权限及资源管理。
- 限制或解除用户Home目录(chroot),我们能根据需要将特定的用户限制其工作范围使恶意使用者无法造成更大影响。
- 命令和日志记录,我们通过配置可以很轻松找到日志,从而对FTP服务器运行状态了如指掌。
VSFTPD 工作模式
FTP的传输摄影的是较为可靠的TCP封包协议,在建立连接之前会先进行三次握手。
VSFTPD分为主动(active)模式和被动(Passive)模式,下面分别将对两种模式进行说明。
主动模式
- 建立命令信道通讯,客户端会取一个大于1024的端口号来与FTP服务器的21号端口进行通讯。
- 通知服务端使用active且告知连接端口,并告知服务端应该使用什么方式来连接那个端口。
- FTP服务器主动向客户端通信,FTP 服务器由命令通道了解客户端的需求后,会主动的由 Port20向客户端的 Port Y 联机,
流程图如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QVyHrj9i-1589014485936)(https://s2.ax1x.com/2020/01/20/1iUmOH.png)]
被动模式:
- 建立命令信道,该过程与主动模式一致
- PASV联机请求,客户端发出PASV联机请求,等待服务器回应。
- PASV联机相应,服务端启动数据接口Port pasv并通知客户端可以联机。
- 建立数据信道,客户端取用>1024端口进行连接。
流程图如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iXfRj6Qu-1589014485937)(https://s2.ax1x.com/2020/01/20/1idYZj.png)]
便于理解再来一张时序图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q7yz6zWh-1589014485939)(https://s1.ax1x.com/2020/05/06/YEV37V.png)]
关于防火墙
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8isIanVL-1589014485943)(https://s2.ax1x.com/2020/01/20/1iDUnU.jpg)]
主动模式和被动模式都是以server为主体所定义,主动模式下是以20号端口传输数据的而被动模式下却可以限定使用一定范围的高位端口(设置防火墙刻意放行)进行数据传输。
记住一条就好,端口被使用一定要在防火墙中放开限制:
# 添加放开监控端口 重启生效
$ iptables -I INPUT -p tcp --dport 20 -j ACCEPT
$ iptables -I INPUT -p tcp --dport 21 -j ACCEPT
$ iptables -I INPUT -p tcp --dport [你使用到的端口] -j ACCEPT
如果是测试的话那就将防火墙直接干掉:
#永久性生效,重启后不会复原。
$ chkconfig iptables on #k开启
$ chkconfig iptables off #关闭
# 即时生效,重启后复原
$ service iptables start #开启
$ service iptables stop #关闭
# 查看防火墙状态
$ iptables status
VSFTP 传输模式
- Binary模式:不对数据进行任何处理,适合进行可执行文件、压缩文件、图片等
- ASCII模式:进行文本传输时,自动适应目标操作系统的结束符,如回车符等
Linux的红帽发行版中VSFTP默认采用的是Binary模式,这样能保证绝大多数文件传输后能正常使用
切换方式: 在ftp>提示符下输入ascii即转换到ACSII方式,输入bin,即转换到Binary方式。
FTP安全问题与解决方法
由于FTP是使用明文传输,容易被人利用抓包工具获取并加以利用,所以不能随意假设FTP服务网站。不过,现在也有了较为安全的SFTP,其传输过程使用密文传输相对FTP安全不少。如果必须使用FTP服务器,那么需要注意一下几点:
- 及时更新到FTP最近版本。
- 使用防火墙限定传输通道。
- 使用TCP_Wrappers规范登入网域
- 合理限定用户权限
- 使用Super daemon来管理主机
- 关注用户Home 目录变化。
- 修改默认端口号设置。
VSFTPD安装
本文使用**CentOS7.4 **进行安装,以下命令皆宜CentOS7.4 形式呈现。
Linux 安装软件形式多样,一般可分为三种方式(了解更多点这里):
- RPM工具安装(有网络,无网络皆可)
- YUM工具安装(有网络,最方便)
- 源码编译安装(无网络,被逼无奈)
根据不同情况,可任您喜好选择。本文在有网络情况下编写,自然选择YUM工具安装。
【源码安装方式】
看这里!
【RPM方式安装】
看这里!
【YUM方式安装】
YUM检查及基本操作
先看一下服务器是否已安装YUM工具,若未安装看这里
$ yum version #看到repo版本信息则说明yum已经安装。否则就要自行安装YUM。
Loaded plugins: fastestmirror
Installed: 7/x86_64 424:f34d27c845898c4d19f1694a4eefc99dad4bfe18
Group-Installed: yum 14:d8f19dee73ab77cc7f6b5a45a6be03b9bb442966
version
以下是YUM的基本操作:
$ yum check #检查rpmdb中的问题
$ yum check-update #检查可用的包更新
$ yum clean #移出缓存数据
$ yum deplist #列出一个包的依赖项
$ yum distribution-synchronization #将已安装的包同步到最新可用的版本
$ yum downgrade #降级/版本回退一个包
$ yum erase #从系统中删除一个或多个包
$ yum fs #对主机的文件系统数据起作用,主要用于删除最小主机的文档/语言
$ yum fssnapshot