`
nuoda
  • 浏览: 50696 次
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
一、本文主要目的是交流和共享思路,仅提供文章相关内容的试用版本,不提供软件源代码。由于试用版本包含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、操作是否成功
分享到:
评论
1 楼 zhongxun20 2008-11-03  
好  很好 就是没有代码 还要详细一些就更好了

相关推荐

    ftp服务器工具.zip

    4. **日志记录**:启用日志功能以便追踪服务器活动,有助于排查问题和审计。 5. **启动和停止服务**:通过管理界面或系统服务控制FTP服务器的启动和关闭。 "FileZilla Server(FTP服务器软件)下载 V0.9.53中文版_...

    FTP日志分析器和统计信息编译器-开源

    FTPstats是一款专为FileZilla FTP服务器设计的开源工具,其主要功能是对FTP服务器的日志进行分析,并生成详细的使用统计信息。这个工具旨在帮助管理员更好地理解FTP服务器的运行状况,包括用户活动、流量、最频繁的...

    免费开源的FTP软件 FileZilla

    4. **书签功能**:用户可以保存常用的FTP服务器信息作为书签,便于快速访问。 5. **SSL/TLS加密**:支持安全的SSL和TLS加密,确保数据在传输过程中的安全性,保护用户隐私。 6. **传输速度限制**:用户可以根据...

    基于HDFS存储的FTP服务器.zip

    3. HDFS与FTP集成:通过自定义FTP服务器,使得客户端请求被转化为对HDFS的操作,实现FTP与HDFS之间的透明交互。 4. 安全性:在HDFS-FTP集成中,需要考虑认证和授权,确保只有授权用户才能访问特定的HDFS路径。 5. ...

    Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理)

    Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理) Squid缓存代理服务器是一种流行的代理服务器和Web缓存服务器软件,广泛应用于提高Web服务器速度、缓存万维网、域名系统和其他网络搜索、帮助网络...

    Anonymous FTP server-开源

    开源的Anonymous FTP服务器提供了透明度和安全性,使得开发者和用户能够查看、修改并贡献源代码,以改善软件功能和安全性。 标题提到的"Anonymous FTP server-开源"是一款专为实现这一目标设计的服务器软件。这款...

    好用的ftpserver 服务器版软件

    2. **权限控制**:可以根据用户或用户组设定详细的权限,包括对特定目录的访问权限,确保只有授权的用户才能访问特定文件或目录。 3. **防火墙和NAT穿透**:FileZilla Server具备良好的防火墙和NAT穿透能力,使用户...

    Hermes FTP Server-开源

    7. **日志与监控**:为了便于问题排查和系统维护,Hermes FTP Server可能会提供详细的日志记录,并可能支持与其他监控系统集成,以便实时了解服务器状态。 8. **故障恢复与备份**:一个健全的FTP服务器会考虑数据的...

    UPnP FTP Server-开源

    在FTP服务器中集成UPnP意味着用户无需手动配置端口转发规则,服务器会自动通过UPnP协议将外部网络请求重定向到内部网络中的FTP服务,从而方便地实现外网访问。 这个FTP服务器是基于VSFTPD(Very Secure FTP Daemon...

    FileZilla Server-v0.0.42 支持xp最后一个版本

    FileZilla Server 正是一款基于这样的原则开发的免费FTP服务器,它的开源特性为用户提供了高度的透明度和定制性。 FTP服务器的主要功能是接收并管理来自远程客户端的FTP连接请求,允许用户上传、下载或管理存储在其...

    FTP Uploader-开源

    开源软件意味着该FTP Uploader的源代码是公开的,用户可以查看、修改并自由分发,这为开发者提供了高度的透明度和灵活性。 这个项目包含以下几个核心文件: 1. **style.css**:这是CSS(Cascading Style Sheets)...

    代理服务器的作用与工作流程.ppt

    4. cache_access_log:指定访问日志的文件名。 5. cache_log:指定缓存日志的文件名。 ACL(Access Control List)是 Squid 的一个重要组件,用于控制用户的访问权限。ACL 由多个规则组成,每个规则由一个名称、一...

    Pea FTP Daemon-开源

    Delphi是一种强大的对象 Pascal 编程语言,它允许开发者快速构建图形用户界面,同时提供了对Windows API的深度访问,使得Pea FTP Daemon在Windows环境下运行流畅,用户体验良好。 在提供的压缩包文件中,我们可以...

    Linux文件系统.doc

    6. **开启日志**:为了监控和审计FTP活动,VSFTPD可以配置记录日志,这对于排查问题和跟踪用户行为非常有用。 通过以上内容,我们可以了解到如何在Linux环境中设置和管理NFS和FTP服务器,从而实现文件的高效共享和...

    Jupiter FTP Server-开源

    由于Jupiter FTP Server是开源的,这意味着它的源代码对公众开放,允许用户自由查看、修改和分发,这为开发者提供了极大的灵活性和透明度,也为社区提供了持续改进和定制的可能性。 首先,让我们深入了解一下Java...

    squid教程 ppt版

    2. **透明代理**:在透明代理模式下,Squid可以在不改变用户配置的情况下,自动代理网络流量,提高访问速度并记录访问日志。 3. **反向代理**:Squid可以作为反向代理服务器,隐藏真实服务器的身份,分发客户端请求...

    Free-SA日志处理器和报告生成工具-开源

    2. **安全策略评估**:通过对访问日志的深度分析,Free-SA可以帮助管理员识别异常访问模式,评估并确保网络访问行为符合预设的安全策略。 3. **事件调查**:在发生安全事件时,Free-SA能快速定位可疑活动,提供详细...

Global site tag (gtag.js) - Google Analytics