1.4.3 抓包分析FTP的工作过程

在虚拟机中安装Windows Server 2012 R2网络操作系统的服务器,安装FTP服务,在客户端通过抓包工具分析FTP客户端访问FTP服务器的数据包,观察FTP客户端访问FTP服务器的交互过程,可以看到客户端向服务器发送的请求,服务器向客户端返回的响应。在FTP服务器上设置禁止FTP的某些方法来实现FTP服务器的安全访问,如禁止删除FTP服务器上的文件。

在Windows Server 2012 R2网络操作系统中安装FTP服务。

打开服务器管理器,单击“添加角色和功能”选项,如图1-26所示。

图1-26 添加角色和功能

在弹出的“添加角色和功能向导”对话框的“选择安装类型”界面中选择“基于角色或基于功能的安装”单选项,单击“下一步”按钮,如图1-27所示。

图1-27 选择安装类型

在弹出的“选择目标服务器”界面中选择服务器,单击“下一步”按钮,如图1-28所示。

图1-28 选择目标服务器

在弹出的“选择服务器角色”界面中,勾选“Web服务器(IIS)”复选框,弹出“添加角色和功能向导”对话框,如图1-29所示。单击“添加功能”按钮,然后单击“下一步”按钮。

图1-29 添加角色和功能向导

在弹出的“选择角色服务”界面中勾选“FTP服务器”和“FTP服务”复选框,单击“下一步”按钮,如图1-30所示。

图1-30 选择角色服务

打开管理工具中的“Internet Information Services(IIS)管理器”窗口,如图1-31所示,右键单击“网站”并单击“添加FTP站点”选项。

图1-31 添加FTP站点

在弹出的“添加FTP站点”对话框的“站点信息”界面中输入FTP站点名称并选择物理路径,单击“下一步”按钮,如图1-32所示。

图1-32 输入FTP站点名称并选择物理路径

在弹出的“绑定和SSL设置”界面中指定FTP服务使用的IP地址和端口,其他的选项参照图中所示进行设置,单击“下一步”按钮,如图1-33所示。

图1-33 指定IP地址和端口

在弹出的“身份验证和授权信息”界面中勾选“匿名”和“基本”复选框,允许所有用户有读写权限,单击“下一步”按钮,完成FTP站点的创建,如图1-34所示。

图1-34 指定身份验证和访问权限

FTP被动模式需要FTP服务器打开很多端口,还需要关闭FTP服务器的防火墙。打开“运行”对话框,输入“wf.msc”。可以看到公用配置文件是活动的,如图1-35所示,单击“Windows防火墙属性”选项。

图1-35 Windows 防火墙属性

在弹出的“高级安全Windows防火墙-本地计算机 属性”对话框中单击“公用配置文件”选项卡,将防火墙状态改为“关闭”,单击“确定”按钮,如图1-36所示。

图1-36 关闭防火墙

在Windows 10操作系统中安装Wireshark抓包工具。开始抓包后,打开资源管理器,资源管理器相当于FTP客户端,访问Windows Server 2012 R2网络操作系统上的FTP服务器,如图1-37所示。

图1-37 访问FTP服务器

上传一个test.txt文件,重命名为abc.txt,最后删除FTP服务器上的abc.txt文件,抓包工具捕获了FTP客户端发送的全部命令以及FTP服务器返回的全部响应。

右击其中的一个FTP数据包,单击“追踪流”→“TCP流”,如图1-38所示。

图1-38 追踪TCP流

出现图1-39所示的窗口,将FTP客户端访问FTP服务器所有的交互过程产生的数据整理到一起,可以看到FTP中的方法,STOR方法用于上传test.txt文件,CWD方法用于改变工作目录,RNFR方法用于重命名test.txt文件,DELE方法用于删除abc.txt文件。如果想看到FTP的其他方法,可以使用FTP客户端在FTP服务器上进行创建文件夹、删除文件夹、下载文件夹等操作,这些操作对应的方法使用抓包工具都能看到。

图1-39 FTP客户端访问FTP服务器的交互过程

为了防止客户端进行某些特定操作,可以配置FTP服务器禁止FTP中的一些方法。例如,要禁止FTP客户端删除FTP服务器上的文件,可以配置FTP服务请求筛选,禁止DELE方法。单击“FTP请求筛选”选项,如图1-40所示。

图1-40 管理FTP请求筛选

在出现的“FTP请求筛选”界面中单击“命令”选项卡,单击“拒绝命令”按钮,在弹出的“拒绝命令”对话框中输入“DELE”,单击“确定”按钮,如图1-41所示。

图1-41 禁用DELE方法

在Windows 7操作系统中再次删除FTP服务器上的文件,就会出现提示信息“500 Command not allowed.”,即命令不被允许,如图1-42所示。

图1-42 命令不被允许