Linux 使用vsftpd服务传输文件

文件传输协议

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

 

 

FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。FTP协议有下面两种工作模式。

 

 

在学习防火墙服务配置时曾经讲过,防火墙一般是用于过滤从外网进入内网的流量,因此有些时候需要将FTP的工作模式设置为主动模式,才可以传输数据。

vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。

在配置妥当Yum软件仓库之后,就可以安装vsftpd服务程序了。

例1:安装vsftpd,因为iptables防火墙管理工具默认禁止了FTP传输协议的端口号,清空iptables防火墙的默认策略并永久生效,以避免被这些默认策略影响vsftpd服务的配置。

 

 

 

 

 

 

 

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

 

 

Vsftpd服务程序

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

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

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

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

ftp是Linux系统中以命令行界面的方式来管理FTP传输服务的客户端工具。

** 匿名访问模式**

在vsftpd服务程序中,匿名开放模式是最不安全的一种认证模式。任何人都可以无需密码验证而直接登录到FTP服务器。这种模式一般用来访问不重要的公开文件(在生产环境中尽量不要存放重要文件)。当然,如果采用防火墙管理工具(如Tcp_wrappers服务程序)将vsftpd服务程序允许访问的主机范围设置为企业内网,也可以提供基本的安全性。

vsftpd服务程序默认开启了匿名开放模式,我们需要做的就是开放匿名用户的上传、下载文件的权限,以及让匿名用户创建、删除、更名文件的权限。需要注意的是,针对匿名用户放开这些权限会带来潜在危险,目前只是为了在Linux系统中练习配置vsftpd服务程序而放开了这些权限,不建议在生产环境中如此行事。

下表罗列了可以向匿名用户开放的权限参数以及作用。

 

 

 例2:在例1基础上,配置vsftpd服务允许用户以匿名开放模式登录到FTP服务器。

 

 

本地用户模式

相较于匿名开放模式,本地用户模式要更安全,而且配置起来也很简单。
针对本地用户模式的权限参数以及作用如表所示。

 

 

 

在vsftpd服务程序的主配置文件中正确填写参数,然后保存并退出。还需要重启vsftpd服务程序,让新的配置参数生效。

userlist_enable参数决定是否启用名单文件user_list,而userlist_deny参数决定名单文件user_list是作为白名单(参数值为NO,允许访问)还是黑名单(参数值为YES,拒绝访问)。

除此之外,还有一个名单文件ftpusers,它不受任何配置项的影响,它永远生效,是一个黑名单!即只要在ftpusers文件中的用户,是无论如何都不允许访问的。

例3:在例1基础上,配置vsftpd服务允许用户以本地用户模式登录到FTP服务器。

 

 

虚拟用户模式

虚拟用户模式是这三种模式中最安全的一种认证模式,因为安全性较之于前面两种模式有了提升,所以配置流程也会稍微复杂一些。

PAM(可插拔认证模块)是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。要想把PAM功能和作用完全讲透,至少要一个章节的篇幅才可以(对该主题感兴趣的读者敬请关注本书的进阶篇,里面会详细讲解PAM)。

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

 

 利用PAM文件进行认证时使用的参数以及作用:

 

 例4:在例1基础上,配置vsftpd服务允许用户以虚拟用户模式登录到FTP服务器。

 

 

 测试结果:

 

 TFTP简单文件传输协议

简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议。顾名思义,它提供不复杂、开销不大的文件传输服务(可将其当作FTP协议的简化版本)。

TFTP的命令功能不如FTP服务强大,甚至不能遍历目录,在安全性方面也弱于FTP服务。而且,由于TFTP在传输文件时采用的是UDP协议,占用的端口号为69,因此文件的传输过程也不像FTP协议那样可靠。但是,因为TFTP不需要客户端的权限认证,也就减少了无谓的系统和网络带宽消耗,因此在传输琐碎(trivial)不大的文件时,效率更高。

 

在RHEL 7系统中,TFTP服务是使用xinetd服务程序来管理的。xinetd服务可以用来管理多种轻量级的网络服务,而且具有强大的日志功能。

tftp命令中可用的参数以及作用:

 

 例5:配置TFTP服务

 

 

posted @ 2020-11-09 20:30  背背背背起了行囊  阅读(275)  评论(0编辑  收藏  举报