会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助。
今天给大家带来ftp文件传输服务的详解以及相关服务搭建
** FTP(File Transfer Protocol,文件传输协议)**是典型的C/S结构的应用层协议,需要由服务器端软件、客户端软件两个部分共同实现文件传输功能。关于FTP服务器,可以从以下几个方面进行了解。
一,FTP连接及传输模式
1.ftp连接模式
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。20端口用于建立数据连接,并传输文件数据;21端口用于建立控制连接,并传输FTP控制命令。根据FTP服务器在建立数据连接过程中的主、被动关系,FTP数据连接分为主动模式和被动模式,两者的含义及主要区别如下。
主动模式:服务器主动发起数据连接。首先由客户端向服务器端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来连接我;于是服务器从20端口向客户端的该端口发送请求并建立数据连接。 被动模式:服务器被动等待数据连接。如果客户机所在网络的防火墙禁止主动模式连接,通常会使用被动模式。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,你过来连接我”于是客户端向服务器的该端口(非20)发送请求并建立数据连接。
2.ftp传输模式
客户端与服务器建立数据连接以后,就可以根据从控制连接中发送的FTP命令上传或下载文件了。在传输文件时,根据是否进行字符转换,分为文本模式和二进制模式。
文本模式:又称为ASCI(American Standard Code for Information Interchange,美国信息交换标准码)模式,这种模式在传输文件时使用ASCI标准字符序列,一般只用于纯文本文件的传输。
二进制模式:又称为Binary模式,这种模式不会转换文件中的字符序列,更适合传输程序、图片等非纯文本字符的文件。使用二进制模式比文本模式更有效率,大多数FTP客户端工具可以根据文件类型自动选择文件传输模式,无须用户手工指定。
二,FTP用户的类型
匿名用户:使用FTP客户端软件访问服务器时,通常要用到一类特殊的用户账号,其用户名为tp或anonymous,提供任意密码(包括空密码)都可以通过服务器的验证,这样的用户称为匿名用户,匿名用户一般用于提供公共文件的下载,如提供一些免费软件、学习资料下载的站点。 本地用户:除了不需要密码验证的匿名用户以外,FTP服务器还可以直接使用本机的系统用户账号来进行验证,这些用户通常被称为“本地用户”。在CentOS系统中,匿名用户也有对应的本地系统用户账号“ftp”,但对于vsftpd服务来说,本地用户指的是除了匿名用户以外的其他系统用户。
虚拟用户:有些FTP服务器软件还可以维护一份独立的用户数据库文件,而不是直接使用系统用户账号。这些位于独立数据库文件中的FTP用户账号,通常被称为虚拟用户。通过使用虚拟用户,将FTP账户与Linux系统账户的关联性降至最低,从而为系统提供更好的安全性。
三.常见服务器类型的种类
在Windows操作系统中,常见的FTP服务器软件包括FileZilla Sener、Serv-U等,而在Linux操作系统中,vsftpd是目前在Linux/UNX领域应用十分广泛的一款FTP服务软件,本课程将以vsftpd进行讲解。
Vsftpd 服务的名称来源于“Very Secure FTPDaemon”,该软件针对安全特性方面做了大量的设计。除了安全性以外,vsftpd在速度和稳定性方面的表现也相当突出。根据ftp.redhat.com服务器反映的数据,vsftpd可以支持15000个用户并发连接。
四.FTP客户端工具的类型
最简单的FTP客户端工具莫过于ftp命令程序了。Windows操作系统和Linux操作系统都默认自带ftp命令程序,可以连接到FTP服务器进行交互式的上传、下载通信。除此以外,还有大量的图形化FTP客户端工具。Windows中较常用的包括CuteFTP、FlashFXP LeapFTP、Filezilla等,在图形化的客户端程序中,用户通过鼠标和菜单即可访问、管理FTP资源,而不需要掌握FTP交互命令,从而使用户的操作更加简单、易于使用。还有一些下载工具软件,如FlashGet、Wget等,包括大多数网页浏览器程序,都支持通过FTP协议下载文件,但因不具备FTP上传等管理功能,所以通常不称为FTP客户端工具。
五.vsftpd的配置文件
本章将以CentOS系统中RPM(RPM Package Manager,RPM软件包管理器)方式安装的
vsftpd-3.0.2-21.el7.×86_64.rpm软件包为例来学习FTP服务器的构建过程。vsftpd的官方网站位于
http://vsftpd.beasts.org/.若希望获取最新的源码安装版本,用户可以从该站点中下载。通过RPM方式安装的vsftpd软件包,将自动添加名为vsftpd的系统服务,因此启动、停止vsftpd服务变得非常方便。构建vsftpd服务的关键在于熟悉相关的配置文件。vsftpd服务的配置文件位于/etc/vsftpd/目录下,包括用户列表文件(ftpusers、user_list)和主配置文件(vsftpd.conf)等。下面主要介绍这两类配置文件。
1.用户列表文件ftpusers和user_list
在ftpusers、user_list文件中,各自记录了若干个FTP用户的账号名称,两个列表文件都用于FTP登录控制,但是控制方式存在一些差别。
ftpusers文件:此文件中列出的用户将禁止登录vsftpd 服务器,不管该用户是否在user_list文件中出现。该文件默认包括root、bin、daemon等用于系统运行的特殊用户。
user_list文件:此文件中包含的用户可能被禁止登录,也可能被允许登录,具体取决于主配置文件vsftpd.conf 中的设置。当存在“userlist_enable=YES”的配置项时,user_list列表文件方可生效;若指定“userlist_deny=YES",则仅禁止此列表中的用户登录;若指定“userlist_deny=NO",则仅允许列表中的用户登录。
ftpusers文件相当于黑名单,为vsftpd 服务器提供了一份禁止登录的用户列表;而user_list文件提供了一份可以灵活控制的用户列表。二者相互结合,为FTP账号的登录控制提供了便捷的途径。
2.主配置文件vsftpd.conf
在vsftpd的主配置文件中,配置行采用“配置项=参数”的格式。
vsftpd.conf文件中常见的配置项及含义说明
上述表中列出的都是搭建vsftpd服务器时常用到的配置项,理解并掌握这些配置项的含义,将更有利于快速部署和优化vsftpd服务器。在本章后面的内容中,将通过具体的配置实例来展现其中常见的配置项部分。关于vsftpd.conf文件中的更多配置项,可以执行“man vsftpd.conf”命令查阅相关帮助。
六,实验案例
1)安装vsftp服务
2)启动服务并设置为开机自启
3)测试
用户访问及文件权限控制。
1.配置允许支持虚拟用户访问ftp
1)创建存储虚拟账户的账号和密码文件
2)生成验证数据库
3)创建虚拟账户需要映射到的系统账户
这里需要修改/ftproot目录的权限方便后续测试
4)配置pam验证
5)配置主配置文件
6)创建虚拟用户的权限目录
7)创建虚拟用户的权限文件
2.开放匿名访问,任何用户均可下载服务器/var/ftp/pub/目录中的软件资料。
在/var/ftp/pub创建测试文件:
测试匿名用户下载:
3.用户bob可以对服务器的/var/ftp/pub/目录进行上传、删除等操作。
1)配置bob用户权限文件
2)设置/var/ftp/pub目录的权限为757
3)重启服务
4)测试bob登录
上传
删除
4.用户tom可以下载服务器/ftproot/目录中的市场活动、销售方案等资料。
测试(在排除权限的情况下,虚拟用户,匿名用户,本地用户是自带下载功能的,所以可以直接开始测试):
1)创建测试文件
2)tom登录
3)下载
删除(不能删除情况为对):
5.用户alice可以对服务器/ftproot/目录进行上传、删除等操作。
1)配置alice虚拟用户的主配置文件
2)重启服务
3)alice登录
4)上传
删除
6.所有通过FTP上传的文件,均去除非属主位的写权限(即将权限掩码设为022)。
1)打开主配置文件配置
故事很短,道理很长,学无止境,不忘初心,砥砺前行
今天的杂谈就到这里,不一定对每个人有用,但是对有需要的人会有帮助,做不到人民币,人人喜欢
不是每场相遇都有结局,但是每场相遇都有意义
微信搜索 “徐阿马杂谈” 关注公众号,把你们想知道的,想提的意见发给我,我会采纳!期待你的关注!