RHCE
文章目录
前言
RHCE-FTP
FTP(Transfer Protocol 文件传输协议)
应用层的文件共享服务,用于在计算机网络上客户端和服务器之间进行文件传输的应用层协议。
包括FTP服务器和FTP客户端两个组成部分,是互联网控制文件实现双向传输
同样ftp是一个程序,不同系统对应的应用程序也不同,但是所遵循的是同一个协议(命令ftp-windows vsftpd-Linux)
可操作任何类型文件不需要进行处理。但是延时长
原理
假设有两台主机
一台主机远程连接的服务器为文件共享服务器
本地主机为客户端
在两台主机正常建立连接的情况下
可以通过本地主机基于ftp协议访问服务器的文件并将文件下载到本地
如果同样服务器允许客户端写入可以将本地文件上传到服务器端。
文件传送和文件访问之间的区别在于:前者由FTP提供,后者由NFS等应用系统提供
用户分类
ftpReal(本地用户)
-
这类用户是指在FTP服务上拥有账号。
-
当这类用户登录FTP服务器的时候,其默认的主目录就是其账号命名的目录。
-
但,这类用户登录后还可以访问到其他目录中去(如,系统主目录)
ftpGuest用户(虚拟用户)
-
在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个账户。
-
这个账户只能访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。
-
这类账户,在vsftpd软件中叫Guest用户
-
拥有这类账户的用户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。
ftpAnonymous(匿名用户)
-
通常说的匿名访问
-
在FTP服务器中没有指定账户
-
但是其仍然可以进行匿名访问某些公开的资源
在组建FTP服务器时,我们需要根据用户的类型,对用户进行归类。
默认,vsftpd服务器会把建立的所有账户都归为Real用户,不符合企业安全需求。(Real用户不仅可以访问自己的主目录还可以访问其他用户目录)
所以,要根据实际情况,修改用户所在的类别
FTP使用方式
端口
1、TCP 21 命令
2、TCP 20 数据
传输方式
ASCII 传输方式:
假定用户正在拷贝的文件包含简单的ASCII码文本
如果在远程机器上运行的不是UNI
当文件传输时ftp通常会自动调整文件的内容
以便把文件解释成另外那台计算机存储文本文件的格式。
在拷贝任何非文本文件之前,用Binary命令告诉ftp逐字拷贝。
二进制传输模式:
二进制传输中,保存文件的位序,以便原始和拷贝的是逐一对应的。即使目的地机器上包含位序列的文件是没意义的。
例:Macintosh以二进制方式传送可执行文件到windows系统,在对方系统上,此文件不能执行。
若在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它)
使用模式
主动模式FTP(PORT)
三次握手后
主动模式下,FTP客户端从任意的非特殊的端口(N>1023)连入到FTP服务器的命令端口–21端口
服务器响应客户端,确认连接建立
客户端在N+1(N+1>=1024)端口监听,并且通过N+1端口发送PORT命令给FTP服务器(PORT命令包含了客户端用什么端口接收数据)
服务器通过自己的TCP20端口连接用户本地指定的数据端口
客户端响应服务器
FTP服务器必须和客户端(高位随机端口)建立一个新的连接用来传送数据
以服务器端防火墙立足点,要支持主动模式FTP需要打开如下交互中使用到的端口:
FTP服务器命令(21)端口接受客户端任意端口(客户端初始连接)
FTP服务器命令(21)端口到客户端端口(>1023)(服务器响应客户端命令)
FTP服务器数据(20)