如何监控WINDOWS服务器上的文件都有哪些用户的IP正在访问?

解决方案 »

  1.   

    1.实现通讯数据的截获,根据通讯数据的组件与文件内容进行比较(此方法只适用于明文传输)
    2.如果不使用数据截获的话应该是没有办法了,只能够采用估计的方法,可以用 HookAPI 的方式截获对 CreateFile/OpenFile 函数的调用,记录进程与文件名的对应关系,通过网上的开源代码可以获得进程与Socket的对应关系,不过某些对文件的访问是通过系统进程来完成的,也许此时就只能通过当前连接来估计了
      

  2.   

    对于一:通过协议分析我想应该是最后的办法了
    对于二:就算我知道SOCKET对应的进程,可以通过网络来访问的不同用户会使用不同SOCKET,但访问时使用同一个进程,不能将文件对应到SOCKET吧?
      

  3.   

    如果服务器是你来做的那就一切ok了
    分发数据的时候直接对应于相应的SOCKET
      

  4.   

    就是通过WINDOWS的EXPLORER去访问2000SVR上的文件,好像是通过什么SAMBA协议吧,所以CLI和SVR都不是我做的,我只想有什么好办法知道是来自哪个IP的用户访问了服务器上的哪个文件。另外,可以在服务器上安装自己开发的程序,实在不行,就整个SNIFFER分析协议,但我担心对服务器有性能有影响。
      

  5.   

    sfilter 能做到, filemon是演示程序, 你去下载一个看看, 属于驱动编程
      

  6.   

    你是说sysinternal的那个filemon吗?它只能知道是哪个进程在对哪个文件做何种操作,与我想知道的用户IP还是有区别.好像驱动截到的只是个UID,而多个不同用户可能使用同一个本地用户的UID来访问本机文件.
      

  7.   

    : alwayscy(大力水手) :下载一个最高版本的看看, 里面可以知道那个IP在访问这个文件
      

  8.   

    好像FILEMON不行,但psfile这个命令行可以。不知道他调用哪个API实现的。
      

  9.   

    我都已经开始用解析协议包在做了。SIGN