希望端口镜像网络防火墙接口,将该接口连接到 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 的建议] 您可以使用选项
-C
来tcpdump
旋转 pcap 文件,或者,您可以配置并使用logrotate
在达到特定大小时自动重命名/旋转日志文件