Linux 流量日志

Linux 流量日志

我正在寻找一种好的免费方法来记录通过 Linux 路由器的 IP 标题信息(带有时间戳的源/目标 IP)。

我知道我可以这样做

tcpdump -i eth0 > log.txt

然而,我正在寻找一些更实质性的东西,因为它将一直运行。

答案1

如果您想要详细的日志记录,我建议使用 ulogd。

答案2

iptables 可以原生地执行此操作。只需在链的早期放置一个LOGULOG目标即可。您还必须使用 来rsyslogd将 iptables 日志从内核日志流中取出并放入您选择的文件中。这需要您在使用 iptables 规则选择的日志文本中放入一些唯一字符(类似于":FW:"),以便您可以告诉 rsyslogd 根据该字符串进行过滤并将其放入自己的文件中。

答案3

我非常喜欢使用阿古斯为此。它是一个软件包,可以随意监听接口并写出类似于 (net|j)flows 的流数据。它使用客户端/服务器模型,其中服务器守护程序执行捕获并写入数据文件,客户端工具用于读取和分析数据文件。输出文件被写入二进制格式,因此需要对所包含的工具进行一些学习。

使用(几乎)默认配置,以下是基本输出的匿名版本:

StartTime            Proto    SrcAddr  Sport          Dir   DstAddr  Dport       SrcPkts  DstPkts     SrcBytes     DstBytes State  
31 Jan 11 23:20:07   icmp     10.8.23.225             ->    10.28.5.232               1        0           60            0   ECO
31 Jan 11 23:48:07    tcp     10.10.238.252.12200     ->    10.28.5.232.27977         1        0           60            0   REQ
01 Feb 11 01:10:59   icmp      10.15.36.226           ->    10.28.5.232               1        0           60            0   ECO
01 Feb 11 01:11:00   icmp      10.15.36.226           ->    10.28.5.232               1        0           60            0   ECO
01 Feb 11 01:13:45    tcp     10.10.238.252.12200     ->    10.28.5.232.27977         1        0           60            0   REQ
01 Feb 11 01:36:13    udp      10.18.16.98.5060       ->    10.28.5.232.5060          1        0          454            0   INT
01 Feb 11 03:22:34    tcp     10.10.238.252.12200     ->    10.28.5.232.27977         1        0           60            0   REQ
01 Feb 11 04:05:51    tcp     10.10.238.252.12200     ->    10.28.5.232.27977         1        0           60            0   REQ
01 Feb 11 04:48:32    tcp     10.10.238.252.12200     ->    10.28.5.232.27977         1        0           60            0   REQ

它被设计为以服务形式运行,但您必须根据系统、存储和吞吐量找出轮换文件的最佳方式。您应该能够将其指向路由器的一个接口并获取所需的所有信息。

作为额外奖励,tt 还附带了大量辅助实用程序,您可以使用它们来做一些有趣的事情,例如流量图、会计和其他类型的分析。请参阅NSMWiki页面上有一些关于可以运行的分析的具体细节。

答案4

相关内容