合集 – Linux基础服务(1)
1.FTP服务器06-19
收起
一、FTP服务
什么是FTP协议?
File Transfer Protocol文件传输协议是互联网中使用最广泛的文件传输协议。FTP使用交互式的访问,允许客户指定文件的类型和格式(比如知名是否使用ASCLL码),并允许文件具有存取权限
文件传输协议有基于TCP的FTP和基于UDP的简单文件传输协议TFTP。
FTP的传输模式
针对传输的文件类型不同,FTP可以采用不同的传输模式:
ASCLL模式:传输文本文件时会对文本内容进行编码方式转换,提高传输效率。当传输网络设备配置文件,日志文件时推荐使用该模式。
Binary模式:传输非文本文件,如图片,可执行程序等,以二进制直接传输原始文件。
ftp传输的弊端
1.FTP不具备安全性:普通的FTP没有针对数据传输中或存储时的本地加密,潜在地暴漏了保密信息,通过FTP发送的用户名和密码,也暴露在外。因此,可以通过任意上百个FTP客户端访问FTP服务器
2.FTP缺少足够的管控功能:比如数据审核功能,不能保证发送的数据是否合规,数据流向不可控,存在数据泄露风险。
3.FTP追溯功能弱
4.FTP不可靠:在传输过程中,尤其是传输大规模文件时,容易出现错误传输,文件丢失等
FTP通信接口:
21端口:控制连接
FTP服务端监听21端口等待建立连接,只有身份验证通过,才可顺利建立连接
在FTP连接期间,控制连接始终保持连接状态,在数据连接存在期间,控制连接必须存在,一旦连接断开,数据连接自动关闭
20端口:数据连接
FTP服务端监听20端口来等待数据连接
数据连接依赖于控制连接
FTP工作过程
1.客户端向服务器发送申请建立连接
2.服务器21端口监听到客户端请求,做出响应,建立会话连接
3.客户端程序打开一个控制端口,连接到FTP服务器的21端口
4.需要传输数据时,FTP客户端打开一个数据端口,连接到FTP服务器的21端口,文件传输完毕后断开会话连接,释放窗口
5.当空闲时间超过规定后,FTP会话自动终止
二、客户端程序
Linux:ftp,lftp
lftp默认以匿名用户方式访问,可以批量进行文件传输,而且可以下载目录。
ftp以“用户名+密码”的方式访问
Windows:Xftp,Chrome,Firefox
三、主动模式和被动模式
模式是从服务器角度来看的,FTP服务器主动与客户端建立连接就是主动模式,客户端主动连接服务器就是被动模式。
FTP服务器默认为被动模式,主动模式下可能被客户端防火墙拦截。
主动模式:
由客户端向服务器端的TCP 21号端口发起TCP三次握手,建立控制连接,用户登录认证后客户端通过FTP PORT命令,通知服务器端自身开放端口(大于1024的随机端口),服务器端向客户端的TCP PORT P发起三次握手,建立传输连接,其中服务器端的源端口为20
被动模式
由客户端向服务器端的TCP PORT 21发起TCP三次握手,建立控制连接,用户登录认证后客户端发送PASV命令;服务器端通过ENTER PASV命令告知客户端自身开放端口,由客户端向服务器TCP PORT N发起TCP三次握手,建立传输连接。
四、搭建过程
1.检查服务器环境
关闭防火墙:systemctl stop firewalld;systemctl disable firewalld
关闭selinux:setenforce 0;
设置selinux永久关闭:vim /etc/selinuxconfig 修改SELINUX=disabled
2.安装软件
yum install -y vsftpd
3.开启服务并设置开机自启
systemctl start vsftpd
systemctl enable vsftpd
4.本机访问服务器测试
ftp://本机ip