将流量镜像到 tcpdump 服务器并自动保存 pcaps

将流量镜像到 tcpdump 服务器并自动保存 pcaps

希望端口镜像网络防火墙接口,将该接口连接到 Linux 服务器,并让该 Linux 服务器不断运行 tcpdump 并将输出存储在文件中。

具体来说,我的要求是当 pcap 文件的大小达到特定数量时,将其反复保存。

例如:

Juniper 防火墙端口 2 镜像端口 1 上的所有流量。端口 2 连接到 Linux 服务器上的 eth0。Linux 服务器在 eth0 上有一个 tcpdump 进程不断运行。Linux 服务器配置为将流量保存到名为“tcpdump.pcap”的文件中,但当 pcap 文件超过特定大小时,它将压缩并重命名为“tcpdump.pcap.0.gz”。当第二个文件超过特定大小时,它将重命名为“tcpdump.pcap.1.gz”,依此类推。

这将允许我查看过去 X 段时间内的网络流量(目前,我希望查看过去 72 小时内的流量)。

这里的问题是我不知道如何实现上述目标。具体来说,如何让 tcpdump 连续运行,并自动保存 pcap,并按时间顺序自动压缩和重命名?

答案1

让我们将问题分解为以下几个部分:

  • 让我们tcpdump以 pcap 格式保存转储:您可以使用该-w选项。一如既往,仔细阅读手册页
  • 连续运行tcpdump:您可以使用screen来运行tcpdump,然后随意分离/连接;该过程将继续运行,直到您停止它;
  • 旋转日志文件:[根据 Mark Riddell 的建议] 您可以使用选项-Ctcpdump旋转 pcap 文件,或者,您可以配置并使用logrotate在达到特定大小时自动重命名/旋转日志文件

相关内容