(首先声明一下我也是一名小白,初学wireshark没多久,我也很愿意和大家一起讨论wireshark的具体应用。)
本实验使用的版本是wireshark2.4.7版,选择“捕获”-“选项”。
选择当前连的网,一般选择流量“起起伏伏”的那个接口。
做ftp实验的第一个问题就是去哪里找一个ftp服务器,我在百度上找遍了所有的ftp服务器都不能用,没办法,只能自己动手搭一个了。
1.在win7上先开启ftp服务:这里Internet信息服务底下的三个包括子项全部需要勾选。点击确定后,可能会要等一会儿,完成后就可以使用FTP服务了。
2.打开 计算机--》管理--》 在这里我们可以看见刚刚添加的服务 (IIS)
3.创建一个ftp站点
4.点击添加FTP站点后,就是要继续的添加必要的站点信息,这里是:站点名称以及登录ftp后的站点指定目录(文件夹),点击下一步。
5.站点的地址就写自己的IP就好,端口21,是ftp控制信号的默认端口,(端口随意,尽量不要用已经被占用了的端口号)。SSL证书选无,有证书配置起来就很麻烦了。IP尽量配一个,用它推荐的那个吧,我的是192.168.1.4,不能自己随便设一个,这样会无法访问。
6.身份验证和授权勾选“基本“和”匿名“,匿名即采用用户名anonymous。允许所有用户访问。到这步一个ftp服务器就搭好了。
7.测试访问ftp服务器,在“计算机”里输入“ftp://192.168.1.4”由于有勾选匿名,访问的时候无需输入用户名密码,当然也可以在浏览器里面访问。然后可以测试读写。
8.要让别的机子访问ftp服务器,需要关闭防火墙,或者针对ftp相关端口设置允许通过的规则(默认为20,21)。
之后我在本地访问自己搭的ftp,出乎意料的是wireshark根本没有捕获到FTP数据包,这是为什么呢?查阅资料之后发现wireshark是捕获网卡的数据包,本地访问本地必然没有经过无线网卡。所以我找了一台本局域网上的机子访问该ftp,终于捕获到了ftp报文。
从上往下分析一个ftp访问的过程。下图是第一个包,表示ftp服务被访问。(220代表服务就绪)
下图表示用户登录的用户名和密码,使用匿名访问的。
下图表示匿名访问需要输入email,但是实际上刷新一下就进去了。
(331代表要求密码)
用IE代理访问ftp
用户登录了(230代表登录因特网)
CWD指令为更改访问目录,比如说点进去一个文件等。
CWD访问成功。(250代表文件行为完成)
访问文件的格式是ASCII(200代表成功)
FTP采用被动模式。
主动模式(PORT)
如下图所示,用户主机直接暴露在互联网中,用户连接FTP SERVER使用主动模式遵循以下一个过程:
用户主机一个随机端口连接FTP SERVER的TCP21端口进行协商;
用户主机告诉FTP SERVER,我的XXXX端口已经打开,你可以放心大胆的连过来;
然后FTP SERVER就用TCP20端口连接用户主机的XXXX端口,数据传输开始。
被动模式(PASV)
当用户主机前端多了一道防火墙(客户机使用地址转换接入互联网),事情就变的复杂了,首先,主动模式是FTP SERVER连接客户机,防火墙肯定不干;即便乐意干客户机与服务器协商的XXXX端口也是随机端口,你让迷茫的防火墙情何以堪,这时就需要客户端软件使用被动模式主动连接防火墙,这么一来正合防火墙的胃口。
客户端使用被动模式遵循以下过程:
首先用户使用随机端口连接FTP SERVER的TCP 21端口进行协商;
FTP SERVER告诉客户机:我的XXXX端口开放了,你连过来吧;
客户机使用一个随机端口连接FTPSERVER的XXXX端口传输数据。
(227代表进入被动模式)
列举该目录下的文件
开始传输文件,比如下载到本地。(125代表打开数据连接,开始传输)
传输完成。(226代表结束数据连接)
FTP协议概述
默认端口数据连接用20号端口,控制连接用21号端口。FTP协议的底层协议是TCP协议。此外它还需要安装dns服务。