在 CentOS 6.x 上监控并记录 LAN 网络流量

在 CentOS 6.x 上监控并记录 LAN 网络流量

我已经摆弄这个问题快有一个星期了。

我的设置是:LAN(Windows/Linux PC/服务器)<-> CentOS 网关/防火墙盒<-> ISP

我正在尝试设置一个监控解决方案,它将跟踪 LAN 的所有网络活动(访问的网站、Skype 连接等)。我希望协议、IP/DNS、时间和其他相关信息组成一份使用报告。我不需要流量数据(内容),只需要流量信息。我需要能够回顾某一天,看看我的 LAN 上的某个主机在某个特定时间范围内做了什么。基本上,主机 a 在 M 日 H 点在网站 X、Skype 或 Yahoo 或任何其他协议上花费了 M 分钟。

我尝试过很多监控工具,但几乎所有工具都监控带宽使用情况(这不是我想要的)或进行实时监控(没有历史数据)我尝试过这些(几乎所有 SU 上提到的工具):

  • ntopng
  • 带宽D
  • 暗态
  • 纳吉奥斯
  • 状态监测

(我可能还尝试过其他的,这些是我记得的)

我承认我可能错过了一些可以让事情按照我想要的方式工作的配置,所以我愿意重新审视上述内容或其他内容,只要我得到一些明确的步骤来启用数据记录和报告。

我的 CentOS GW 盒子没有 GUI,所以 etherApe 和其他一些程序不是一个选择(除非它们可以被守护进程化并在浏览器或用于报告的东西中使用)。此外,寻找开源解决方案(基于 rpm 或基于源代码,无所谓)

谢谢。

后来编辑:我也擅长任何网络监控/嗅探。今天我一直在评估这个领域的一些解决方案,它们看起来很有希望,尽管它们处理的是数据包而不是连接(这是我感兴趣的)这一事实让事情有点困难。

我能想到的最好的办法是:

tshark -i 3 "src host a.b.c.d and not dst host w.x.y.z and tcp[0xd]&18=2" -T fields -e frame.time -e ip.addr -e tcp.dstport -a duration:86400

其中 i=3 是公共/互联网接口,abcd 是 GW 上“互联网”接口的公共 IP,wxyz 是我的公共 IP(因此我排除了我和主机之间的主动通信(因为我确实在那里至少有 1 个活动的 ssh 连接)这似乎可以很好地记录 syn 数据包信息,但是我无法知道 LAN 上的哪个工作站发起了连接......

还有其他提示/想法吗?

相关内容