【计算机网络课程设计】内网穿透、搭建FTP服务器(局域网和广域网)以及对于花生壳发送X11包得一些推测


FTP概述

文件传输协议(File Transfer Protocol)是Internet文件传送的基础,用于在网络上进行文件传输的一套标准协议,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。它工作在 OSI 模型的第七层, TCP 模型的第四层,即应用层,使用TCP传输保证客户端和服务器之间的连接是可靠的,为数据传输提供可靠保障。
FTP是一种基于客户端/服务器模式的协议,默认使用20、21号端口,其中20端口用于进行数据传输,21端口接受客户端发出的FTP命令和参数。FTP服务器具有容易搭建、方便管理的特点,FTP客户端工具支持文件的多点下载及断点续传技术。FTP能操作任何类型的文件而不需要进一步处理,但有着极高的延时,从开始请求到第一次接收需求数据之间的时间较长,并不时地执行一些冗长的登录进程。
FTP进行文件传输的基本工作流程分为四个阶段:建立连接阶段、身份验证阶段、命令交互阶段、断开连接阶段。如图:
在这里插入图片描述


一、FTP工作模式及传输模式

FTP有两种工作模式,一种方式叫做Standard(也就是PORT方式,主动方式),一种是Passive(也就是PASV,被动方式)。Standard模式FTP的客户端发送PORT命令到FTP服务器。Passive模式FTP的客户端发送PASV命令到FTP服务器。Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式无关。FTP的传输有两种方式:ASCll传输模式和二进制数据传输模式。

FTP工作模式

1、主动模式

主动模式是指服务器主动连接客户端的数据端口。在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。主动模式优点:服务端配置简单,服务器只开放21端口,利于服务器安全管理。缺点:若客户端开启防火墙,那么服务器对客户端端口发起的连接可能会失败。
在这里插入图片描述

2、被动模式

为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。被动模式在第1步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令“PASV”。然后在第2步中,服务器返回命令"PORT N(N为端口号)",告诉客户端(服务器)用哪个端口侦听数据连接。在第3步中,客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接。最后服务器在第4 步中给客户端的数据端口返回一个"ACK"响应。被动方式的FTP解决了客户端的许多问题,但同时给服务器端带来了更多的问题。最大的问题是需要允许从任意远程终端到服务器高位端口的连接。客户端有的支持被动模式,有的不支持被动模式,必须考虑如何能支持这些客户端,以及为他们提供解决办法。被动模式优点:对客户端网络环境没有要求。缺点:服务器配置管理稍显复杂,服务器需要开放随机高位端口以便客户端可以连接,不利于安全。
在这里插入图片描述

FTP传输模式

1、ASCLL传输模式

假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的是不同的操作系统,当文件传输时FTP通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)

2、二进制数据传输模式

在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。

二、FTP服务器搭建

1、搭建工具

此次使用的工具室Serv_U,内网穿透用的是花生壳。

2、Serv_U服务器配置

1.在Serv_U管理一个域。
在这里插入图片描述
在这里插入图片描述
2.选择域使用的协议以及相应的端口,其中FTP是21号端口。
在这里插入图片描述
3. 将FTP服务器地址设为主机的IP地址
在这里插入图片描述
4.选择加密方式,单向加密用户,点击下一步,完成域的创建
在这里插入图片描述

三、基于局域网的文件传输

1、主机通过资源管理器、浏览器FTP服务器

通过ftp://+ IP地址的形式访问FTP服务器(图中因为更换了网络,故FTP服务器IP地址不一致),由于此处的抓包跟cmd访问FTP服务器的抓包情况差异不大,所以在cmd中具体分析抓包情况。
在这里插入图片描述
在这里插入图片描述

2、通过cmd命令窗口访问FTP服务器

在这里插入图片描述
在这里插入图片描述
展示部分抓包截图:

(1)下载文件的抓包情况

当我们请求下载时,首先客户端确定传输方式TYPE (表示数据的传输方式,A表示ASCII方式,E表示EBCDIC方式,I表示二进制方式)。服务端确认传输方式为TYPE A,随即客户端发送NLST welcom.txt(表示想要获取当前目录的文件 welcome.txt)。随即RETR welcome.txt(表示从服务器复制welcome.txt文件到客户端)。
在这里插入图片描述
当我们确认下载时,建立数据连接,通过FTP-data协议(ftp的数据连接在wireshark抓包软件中被解析为FTP-data)进行传输,服务器端的端口为20,而不是控制连接所使用的21。
在这里插入图片描述

(2)显示文件夹信息

显示当前路径的文件信息与3.2.3的过程类似,同样服务器采用PORT主动模式与客户端建立数据连接,客户端让服务器端返回一份指定路径下的目录列表(NLST)。
在这里插入图片描述

四、基于互联网(广域网)的文件传输

1、NAT技术

网络地址转换(NAT,Network Address Translation)技术作为有效解决地址紧缺问题的方案之一,通过将私有IP地址转换为公有IP地址,实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址,代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间枯竭的问题。

2、服务器域名的配置

内网穿透可以通过开放的第三方端口来实现。我们可以安装花生壳端口映射内网穿透软件,然后再添加映射,并且配置出映射端口的信息,外网的地址是映射之后访问的域名,同时也可以是自己或者是默认的域名。通过内网穿透,可以用域名进行对应的内网应用。如果是外网地址使用的是自己的域名,可以把域名的解析指向提示目标地址来进行使用。下载花生壳5.0版本,选择http功能进行内网穿透,使外网公有IP与FTP服务器IP端口映射进行
在这里插入图片描述

3、互联网下文件传输协议报文分析(部分)

(1)下载文件

客户端抓包情况:
在这里插入图片描述
客户端向服务器发送HTTP包其中Command=Download表示下载文件,建立数据连接,中介服务器向FTP服务器请求结束给客户端发送一个OK的回复,断开连接。
服务器抓包情况:
在这里插入图片描述
中介服务器收到来自客户端的下载请求,发送X11包给FTP服务器请求客户端需要的内容。

(2)注销登录

客户端抓包情况: 在这里插入图片描述
客户端退出FTP服务器,向中介服务器发送Command=logout的HTTP包,请求退出。
服务器抓包情况:
在这里插入图片描述
服务器收到中介服务器转发的X11包,其中数据是客户端的请求退出操作。
在这里插入图片描述

五、推导X11协议

在实验过程中发现FTP服务器收到中介服务器的包都是根据X11协议来封装的包,而wireshark是无法识别其中的内容的,这导致我们无法知道中介服务器到底给FTP发送了一些什么内容。所以我们研究一下X11包的内容。
在这里插入图片描述
从图中可以发现X11包中包含GET请求,Command的指令,还有一些主机内容,连接状态等等的内容,这些东西跟HTTP包的内容十分相似。所以我们把X11包和HTTP包的内容进行排版对比。如下图:
在这里插入图片描述
两图进行对比我们发现,X11报文跟HTTP报文极其相似,所以我们推测X11包只不过是花生壳的中介服务器把客户端的HTTP报文进行一个打包,添加一些特殊标记,修改成X11包,然后转发给FTP服务器。这样可以防止有人截取花生壳中介服务器发送给FTP服务器的报文内容,增强了安全性。
在这里插入图片描述


总结

认识了FTP的原理,以及TCP连接的方式,在后续的抓包过程中,通过分析,将学到的FTP的知识与实际的连接的建立和数据的传输相结合,更深刻的理解了FTP的一些命令和状态。对FTP的客户端和服务器端间的交互过程有了清晰的认识。
有需要所有抓包内容的可以关注私信我。以及疑惑的地方也可以一起探讨,若是有朋友知道X11包的真正作用可以一起探讨一下。欢迎联系。

猜你喜欢

转载自blog.csdn.net/qq_51720181/article/details/125540139