FTP服务
文章目录
引言:
ftp是一种文件传输协议,ftp的提出使位解决在恶劣网络环境下文件的传输,比如文件传输中断怎么办,文件传输怎么办,文件传输加密是否安全等等问题,ftp协议都可以传输的很好
一、FTP协议概述
1.FTP的概念
FTP(File Transger Protocol,文件传输协议)是典型的C/S架构的应用层协议,需要有服务端软件、客户端软件两个部分共同实现文件传输功能,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证,tcp协议:20、21端口
21端口:用于传输指令
22端口:用于传输数据
FTP是一种文件传输协议,它支持两种模式,一种方式Standard(也就是Active,主动方式)一种是Passive(也就是PASV被动方式)
Standard模式FTP的客户端PORT命令到FTPserver,Passive模式FTP的客户端发送PASV命令到FTP Server
2.Standard模式(主动模式)
FTP客户端首先FTP Server的TCP
21端口建立连接,通过这个通道发送命令,客户端接收数据的时候在这个通道上发送PORT命令,PORT命令包含了客户端用什么端口接收数据,在传送数据的时候,服务端通过自己的TCP20端口发送数据,FTP server必须和客户端建立一个新的连接用来传送数据
3.Passive模式(被动模式)
在建立控制通道的时候和Standard类似,当客户端通过这个通道发送PASV命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接
补充:C/s:客户端和服务端
20端口:用于传输数据
21端口:用于传输指令(远程连接)
二、FTP的作用和工作原理
1.FTP的作用和模式以及通信方式
FTP的作用:Internet上用来传送文件的协议
VSFTP全称(very secure FTP)
VSFTP模式:C/S模式
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
2.FTP工作原理与流程
FTP:数据连接分为两种模式:
主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接
FTP会话包含了两个通道,控制通道和数据传输通道,FTP的工作有两种模式,一种是主动模式以FTP Server为参照,服务器主动连接客户端传输;被动模式是等待客户的连接
主动模式的工作原理:FTP客户端连接到FTP服务器的21号端口,发送用户名和密码,客户端随机开放一个端口(1024以上),发送PORT命令到FTP服务器,告知服务器客户端采用主动模式并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20号端口和客户端开放的端口连接,发送数据,如原理如所示(无论是主动还是被动模式,首先的控制通道都是先建立起来,只是在数据传输模式上的区别)
PASV被动模式:PASV是Passive的缩写,FTP客户端连接到FTP服务器所监听的21号端口,发送用户名和密码,发送PASV命令道FTP服务器,服务器在本地随机开放一个端口(1024以上),然后把开放的端口告知客户端,而后客户端再连接道服务器开放的端口进行数据传输,如下面的原理图所示
注:以上的说明主动和被动是相对于FTP Server端而判断,如果server去来连接client开放的端口,说明是主动的,反之client去连接server开放的端口,则是被动
补充:
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
windows:Serv-U、FTP server、filezilla、server
linux:ProFTPD Very Secure FTP(vsftp)工作环境中都用这个FTP服务
TFTP 端口69 简单的FTP
SFTP ssh加密协议内的 加密文件传输
三、搭建和配置FTP服务
1.安装vsftpd软件(先关闭防火墙,临时关闭增强型安全功能)
2.开启ftp服务,查看状态
3.备份配置文件:
查看配置文件,备份
2、FTP匿名登录案例
1.修改配置文件
2.赋权
访问测试:移动一个文件到pub目录下
到win10系统ftp连接测试
案例:设置用户模式登陆
1.修改主配置文件
vim /etc/vsftpd/vsftpd.conf
local_enable=YES 启用本地用户访问
anonymous_enable=NO 关闭匿名用户访问权限
write_enable=YES 开放服务器的写权限(如果需要上传文件必须开启)
local_umask=077 反掩码,设置仅宿主目录用户拥有被上传的文件的权限
chroot_local_user=YES 将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES 允许被限制的用户目录下有写权限
#anon_mkdir_write_enable=YES 注释
#anon_other_write_enable=YES 注释
修改匿名用户、本地用户登陆的默认根目录
anon_root=/var/www/html anon_root 针对匿名用户
local_root=/var/www/html local_root 准对系统用户
最下面增加两行
userlist_enable=YES 启用user_list用户列表文件
userlist_deny=NO 设置白名单,仅允许user_list用户列表文件用户访问;默认为YES,
为黑名单,禁用
2.重启服务
systemctl restart vsftpd 重启服务
chown -R boss:root /usr/local/html 授予目录最高权限
3.赋予权限
测试,用户被禁锢无法切换到其他目录
将boss用户加入黑名单
总结
通过上述实验,了解到FTP的goon工作原理,分别采用什么样的方式进行文件传输和连接;ftp的两个端口及作用,根据两个简单的案例,在生产中同样适用,指定哪个用户在什么目录下可以进行什么工作,为各个用户添加到黑白名单。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nKxlFXFt-1650301011272)(C:\Users\Hanxu\AppData\Roaming\Typora\typora-user-images\image-20220415094306405.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qr6u4zqz-1650301011274)(C:\Users\Hanxu\AppData\Roaming\Typora\typora-user-images\image-20220415094638785.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rp4Uzrdk-1650301011274)(C:\Users\Hanxu\AppData\Roaming\Typora\typora-user-images\image-20220415095828148.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wWgZhikg-1650301011275)(C:\Users\Hanxu\AppData\Roaming\Typora\typora-user-images\image-20220415102027088.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MRHUwny3-1650301011276)(C:\Users\Hanxu\AppData\Roaming\Typora\typora-user-images\image-20220415104334892.png)]
[外链图片转存中…(img-nKxlFXFt-1650301011272)]
[外链图片转存中…(img-qr6u4zqz-1650301011274)]
[外链图片转存中…(img-Rp4Uzrdk-1650301011274)]
[外链图片转存中…(img-wWgZhikg-1650301011275)]
[外链图片转存中…(img-MRHUwny3-1650301011276)]