透明FTP访问日志

一、本文主要目的是交流和共享思路,仅提供文章相关内容的试用版本,不提供软件源代码。由于试用版本包含JRE环境,程序比较大,无法通过本站上传,有兴趣的朋友可以到公司网站下载(如果无法访问,可以通过QQ:905827651与我联系);

二、正确使用网络抓包技术,可以为服务器管理、业务管理带来极大的方便;

三、本文围绕FTP访问抓包、抓包分析,说明日志系统建立、以及日志系统的重要意义;

四、对于透明日志系统的测试,可以在网络的任何一台机器上测试,不仅仅局限于服务器。

FTP(File Transfer Protocal),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。 当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。

在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。

匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。

通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。


TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet, 你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。
  FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。
  1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。
  2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
  如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

  FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
  下面介绍一个这两种方式的工作原理:
  Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
  Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
  很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。


通过网络报侦测技术,来获取和分析FTP访问,建立日志和分析系统比前面讲到的HTTP日志分析系统要复杂的多,原因是:FTP采用的是一问一答的会话模式,命令有很多种,常见的有USER/PASS/STOR/RETR/DELE/RMD/MKD/RNFR/RNTO/LIST/TYPE/PASV等等,而HTTP间建立访问时,将要访问的内容统一在头文件中进行了描述。

所以,客户从FTP服务器下载一个文件或执行其他操作时,背后客户段程序与服务器程序进行了大量的“交谈”,交谈的核心是客户的目标,最常见的是上传或下载文件。

通过分析协议包,来获取用户的目标,首先必须能够准确获取用户一次操作的所有会话记录,会话记录可以作为日志,围绕统计分析,我们必须从会话记录中,提取要统计的内容。下面这个例子:

0/116.204.34.62:8354->192.168.1.11:21
1/192.168.1.11:21->116.204.34.62:8354
2/116.204.34.62:8354->192.168.1.11:21
3/192.168.1.11:21->116.204.34.62:8354
[220 。。。 就绪...]
4/116.204.34.62:8354->192.168.1.11:21
[USER anonymous]
5/192.168.1.11:21->116.204.34.62:8354
6/192.168.1.11:21->116.204.34.62:8354
[331 ...密码]
7/116.204.34.62:8354->192.168.1.11:21
[PASS IEUser@]
8/192.168.1.11:21->116.204.34.62:8354
9/192.168.1.11:21->116.204.34.62:8354
[230 登录成功]
10/116.204.34.62:8354->192.168.1.11:21
[opts utf8 on]
11/192.168.1.11:21->116.204.34.62:8354
[502 这个功能被禁止使用]
12/116.204.34.62:8354->192.168.1.11:21
[syst]
13/192.168.1.11:21->116.204.34.62:8354
[215 UNIX类型: L8]
14/116.204.34.62:8354->192.168.1.11:21
[site help]
15/192.168.1.11:21->116.204.34.62:8354
[550 没有权限]
16/116.204.34.62:8354->192.168.1.11:21
[PWD]
17/192.168.1.11:21->116.204.34.62:8354
[257 "/"]
18/116.204.34.62:8354->192.168.1.11:21
[noop]
19/192.168.1.11:21->116.204.34.62:8354
[200 OK]
20/116.204.34.62:8354->192.168.1.11:21
21/116.204.34.62:8354->192.168.1.11:21
[CWD /]
22/192.168.1.11:21->116.204.34.62:8354
[250 成功切换目录]
23/116.204.34.62:8354->192.168.1.11:21
[TYPE A]
24/192.168.1.11:21->116.204.34.62:8354
[200 类型设置为 A.]
25/116.204.34.62:8354->192.168.1.11:21
[PASV]
26/192.168.1.11:21->116.204.34.62:8354
[227 Entering Passive Mode (192,168,1,11,13,87)]
27/116.204.34.62:8354->192.168.1.11:21
[LIST]
28/192.168.1.11:21->116.204.34.62:8354
[150 正在打开文本模式数据连接为 /bin/ls (285 比特).226 传送完毕 (6.628 KB/s).]
29/116.204.34.62:8354->192.168.1.11:21
30/116.204.34.62:8354->192.168.1.11:21
[noop]
31/192.168.1.11:21->116.204.34.62:8354
[200 OK]
32/116.204.34.62:8354->192.168.1.11:21
[CWD /]
33/192.168.1.11:21->116.204.34.62:8354
[250 成功切换目录]
34/116.204.34.62:8354->192.168.1.11:21
35/116.204.34.62:8354->192.168.1.11:21
[noop]
36/192.168.1.11:21->116.204.34.62:8354
37/192.168.1.11:21->116.204.34.62:8354
[200 OK]
38/116.204.34.62:8354->192.168.1.11:21
[CWD /]
39/192.168.1.11:21->116.204.34.62:8354
[250 成功切换目录]
40/116.204.34.62:8354->192.168.1.11:21
[PWD]
41/192.168.1.11:21->116.204.34.62:8354
[257 "/"]
42/116.204.34.62:8354->192.168.1.11:21
[CWD /]
43/192.168.1.11:21->116.204.34.62:8354
[250 成功切换目录]
44/116.204.34.62:8354->192.168.1.11:21
[TYPE I]
45/192.168.1.11:21->116.204.34.62:8354
[200 类型设置为 I.]
46/116.204.34.62:8354->192.168.1.11:21
[PASV]
47/192.168.1.11:21->116.204.34.62:8354
[227 Entering Passive Mode (192,168,1,11,13,112)]
48/116.204.34.62:8354->192.168.1.11:21
[SIZE TWebLog.rar]
49/192.168.1.11:21->116.204.34.62:8354
[213 35431371]
50/116.204.34.62:8354->192.168.1.11:21
[RETR TWebLog.rar]
51/192.168.1.11:21->116.204.34.62:8354
[150 正在打开二进制模式数据连接为 TWebLog.rar (35431371 比特).]
52/116.204.34.62:8354->192.168.1.11:21
53/192.168.1.11:21->116.204.34.62:8354
[226 传送完毕 (1589.207 KB/s).]
54/116.204.34.62:8354->192.168.1.11:21
55/116.204.34.62:8354->192.168.1.11:21

上述数据包的核心操作是:RETR TWebLog.rar,即下载TWebLog.rar文件,通过上述数据包,我们可以看到客户端与服务器围绕一次真正用户操作所做的全程会话,通过针对分析命令的提取,我们可以建立统计分析系统,上述过程对我们统计的意义在于:

1、访问者的IP
2、使用的登陆帐号
3、文件所在目录
4、核心操作
5、操作文件
6、操作是否成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值