文章介绍了FTP(文件传输协议)的概念、工作原理、服务程序,以及vsftpd服务程序的安装、配置和认证模式。文章详细描述了FTP协议的基础知识,包括TCP协议、C/S架构、端口使用等,并介绍了FTP的几种工作模式:主动模式和被动模式。此外,还提到了FTP服务程序如wu-ftpd、proftpd、pureftp、vsftpd和ServU,以及图形化客户端工具如filezilla、gftp、gProFTPd、flashfxp和cuteftp。文章还介绍了FTP服务的响应码,并详细描述了vsftpd服务程序的安装、配置文件内容、配置参数和认证模式,包括匿名访问模式、本地用户模式和虚拟用户模式,虚拟用户模式又包括文本文件和MySQL数据库两种实现方式。
FTP是一种基于TCP协议在C/S架构的协议,用于在互联网上进行文件传输,基于20和21端口。TFTP是一种基于UDP的协议,安全性弱于FTP,但效率更高。
FTP有两种工作模式:主动模式和被动模式。主动模式由FTP服务器主动发起连接请求,被动模式则是FTP服务器等待客户端发起连接请求。
FTP服务程序包括wu-ftpd、proftpd、pureftp、vsftpd和ServU,以及图形化客户端工具如filezilla、gftp、gProFTPd、flashfxp和cuteftp。
vsftpd是Linux操作系统上的FTP服务程序,具有开源、免费、高安全性等特点,并支持虚拟用户验证等功能。
vsftpd支持三种认证模式:匿名访问模式、本地用户模式和虚拟用户模式。虚拟用户模式需要单独建立用户数据库文件,提高安全性。
作者:Escape
链接:https://www.escapelife.site/posts/8dc56d36.html
目录
1 文件传输协议
1.1 FTP协议概述
1.2 FTP工作模式
1.3 FTP服务程序
2 vsftpd服务程序
2.1 安装服务
2.2 配置文件
2.3 配置参数
3 vsftpd认证模式
3.1 匿名访问模式
3.2 本地用户模式
3.3 虚拟用户模式(文本文件)
3.4 虚拟用户模式(MySQL数据库)
一 文件传输协议
文件传输协议(FTP)是一种基于TCP协议在客C/S架构的协议,占用20和21端口。
TFTP
简单文件传输协议(TFTP)是一种基于UDP,C/S架构的协议,占用69端口
TFTP的命令功能不如FTP服务强大,甚至不能遍历目录,在安全性方面也弱于FTP服务
因为TFTP不需要客户端的权限认证,也就减少了无谓的系统和网络带宽消耗,效率更高
1.1 FTP 协议概述
一般来讲,人们将计算机联网的首要目的就是获取资料,而文件传输是一种非常重要的获取资料的方式。今天的互联网是由几千万台个人计算机、工作站、服务器、小型机、大型机、巨型机等具有不同型号、不同架构的物理设备共同组成的,而且即便是个人计算机,也可能会装有
Windows
、
Linux
、
UNIX
、
Mac
等不同的操作系统。为了能够在如此复杂多样的设备之间解决问题解决文件传输问题,文件传输协议(FTP)应运而生。
FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器(C/S)模式,默认使用
20
、
21
号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。
FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此FTP服务得到了广大用户的青睐。
命令连接
传输TCP的文件管理类命令给服务端
直到用户退出才关闭连接,否则一直连接
数据连接
数据传输,按需创建及关闭的连接
数据传输可以为文本或二进制格式传输
1.2 FTP 工作模式
FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。FTP协议有下面两种工作模式。
主动模式
:FTP服务器主动向客户端发起连接请求
命令连接:Client:50000 --> Server:21
数据连接:Server:20/tcp --> Client:50000+1
模式缺点:客户端有防火墙,一般会禁止服务的主动连接
被动模式
:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)
命令连接:Client:50000 --> Server:21
数据连接:Client:50000+1 --> Server:随机端口 ==> 通过命令连接得知这个随机端口
模式缺点:服务器端需要修改防火墙规则并开放21和这个随机端口
防火墙一般是用于过滤从外网进入内网的流量,因此有些时候需要将FTP的工作模式设置为主动模式,才可以传输数据。但是因为客户端主机一般都设有防火墙,会禁止服务器的连接请求,所有适当的iptables规则变得越来越重要了。
1.3 FTP 服务程序
由于FTP是一种基于(C/S)
客户端
/
服务器
模式的协议,所有有很多的程序能够提供FTP服务的功能。
服务端程序
wu-ftpd
一个Internet上最流行的FTP守护程序,功能十分强大,可以构建多种类型FTP服务器。
proftpd
一个Unix平台上或是类Unix平台上的FTP服务器开源程序,任何人只要遵守GPL版权声明都可以随意修改源码。proftpd亦开发了有图形用户界面的FTP服务端软体称为gProFTPd,可以提供图形界面的操作。针对Wu-FTP的弱项而开发的,除了改进的安全性,还具备许多Wu-FTP没有的特点,能以Stand-alone、xinetd模式运行等。
pureftp是免费和安全的FTP服务器,它注重效率和易用性。
vsftpd
vsftpd是very secure FTP daemon的缩写,安全性是它的一个最大的特点,可以运行在多种平台之上提供安全的FTP服务。在CentOS等系统以及多个互联网厂商都在使用的FTP服务程序,你值得拥有。
ServU
Serv-U是一种被广泛运用在Windows平台的的FTP服务器软件,可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等优点。
客户端程序
命令行
ftp
lftp, lftpget
wget, curl
因为FTP协议是通过TCP明文传送的,所有为了安全可以使用ftps(SSL), sftp(SSH)工具
图形化
_ filezilla
_ gftp
_ gProFTPd
_ flashfxp * cuteftp
FTP服务的响应码
1xx: 信息
2xx: 成功类的状态码
3xx: 提示需进一步提供补充类信息的状态码
4xx: 客户端错误
5xx: 服务端错误
二 vsftpd 服务程序
vsftpd(非常安全的FTP守护进程)是一款运行在Linux操作系统上的 FTP 服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序具备的特点。
2.1 安装服务
[root@localhost ~]# yum install vsftpd Loaded plugins: langpacks, product-id, subscription-manager ………………省略部分输出信息……………… ================================================================================ Installing: vsftpd x86_64 3.0.2-9.el7 rhel 166 k Transaction Summary ================================================================================ Install 1 Package vsftpd.x86_64 0:3.0.2-9.el7 Complete! [root@linuxprobe ~]# yum install ftp Loaded plugins: langpacks, product-id, subscription-manager ………………省略部分输出信息……………… Install 1 Package ftp.x86_64 0:0.17-66.el7 Complete!
# iptables防火墙管理工具默认禁止了FTP传输协议的端口号 [root@localhost ~]# iptables -F
# 程序的主配置文件为/etc/vsftpd/vsftpd.conf [root@localhost ~]# cat /etc/vsftpd/vsftpd.conf anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
2.2 配置文件
这里主要说的是,CentOS6中的配置文件位置,在CentOS7中有可能不同。
配置文件
主配置文件:/etc/vsftpd/vsftpd.conf
配置文件目录:/etc/vsftpd/*.conf
服务启动脚本:/etc/rc.d/init.d/vsftpd
用户认证配置文件:/etc/pam.d/vsftpd
共享目录
匿名用户(映射为ftp用户)共享资源位置:/var/ftp
系统用户通过ftp访问的资源的位置:用户自己的家目录
虚拟用户通过ftp访问的资源的位置:给虚拟用户指定的映射成为的系统用户的家目录
2.3 配置参数
常用配置参数都为主配置文件,/etc/vsftpd/vsftpd.conf的常用配置。
三 vsftpd 认证模式
vsftpd 作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到 FTP 服务器上。
匿名开放模式
匿名开放模式是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。这种模式一般用来访问不重要的公开文件,在生产环境中尽量不要存放重要文件,不建议在生产环境中如此行事。
本地用户模式
本地用户模式是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来相对简单。但是如果被黑客破解了账户的信息,就可以畅通无阻地登录FTP服务器,从而完全控制整台服务器。
虚拟用户模式
虚拟用户模式是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。
3.1 匿名访问模式
vsftpd 服务程序默认开启了匿名开放模式,我们需要做的就是开放匿名用户的上传、下载文件的权限,以及让匿名用户创建、删除、更名文件的权限。