FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20用于进行数据传输,端口21用于接受客户端发出的相关FTP命令与参数。FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此得到了广大用户的青睐。

使用Vsftpd服务传输文件_服务程序

 

 

 

主动模式:FTP服务器主动向客户端发起连接请求。

被动模式:FTP服务器等待客户端发起连接请求(默认工作模式)

  由于FTP、HTTP、Telnet等协议的数据都是经过明文进行传输,因此从设计的原理上就是不可靠的,但人们又需要解决文件传输的需求,因此便有了vsftpd服务程序。vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。在不影响使用的前提下,能够让管理者自行决定是公开匿名、本地用户还是虚拟用户的验证方式,这样即便被骇客拿到了我们的账号密码,也不见得能登陆的了服务器。

  在配置妥当软件仓库之后,就可以安装vsftpd服务程序了,yum与dnf命令都可以,优先选择用dnf命令方式。 

   #dnf install vsftpd

vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)

 vsftpd服务程序常用的参数以及作用

 

参数 作用
listen=[YES|NO] 是否以独立运行的方式监听服务
listen_address=IP地址 设置要监听的IP地址
listen_port=21 设置FTP服务的监听端口
download_enable=[YES|NO] 是否允许下载文件
userlist_enable=[YES|NO]
userlist_deny=[YES|NO]
设置用户列表为“允许”还是“禁止”操作
max_clients=0 最大客户端连接数,0为不限制
max_per_ip=0 同一IP地址的最大连接数,0为不限制
anonymous_enable=[YES|NO] 是否允许匿名用户访问
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件
anon_umask=022 匿名用户上传文件的umask值
anon_root=/var/ftp 匿名用户的FTP根目录
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO] 是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0 匿名用户的最大传输速率(字节/秒),0为不限制
local_enable=[YES|NO] 是否允许本地用户登录FTP
local_umask=022 本地用户上传文件的umask值
local_root=/var/ftp 本地用户的FTP根目录
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,以确保安全
local_max_rate=0 本地用户最大传输速率(字节/秒),0为不限制

vsftpd作为更加安全的文件传输协议服务程序,允许用户以三种认证模式登录到FTP服务器上。

匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。

本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。但是如果被骇客破解了账户的信息,就可以畅通无阻地登录FTP服务器,从而完全控制整台服务器。

虚拟用户模式:更安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使骇客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。

其中虚拟用户模式会用到PAM模块:

PAM可插拔认证模块是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。

通俗来讲,PAM是一组安全机制的模块,系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行任何修改。PAM采取了分层设计的思想,包含应用程序层、应用接口层、鉴别模块层

使用Vsftpd服务传输文件_虚拟用户_02

 

 

  • 书本笔记

使用Vsftpd服务传输文件_虚拟用户_03

 

 使用Vsftpd服务传输文件_服务程序_04