我的目标是使用ipset
列表来iptables
记录特定 IP 地址的出站流量。我打算被动地监控整个网络。
我已启用端口镜像,端口镜像流量正在广播到具有两个网络适配器的服务器。Eth0 专用于系统管理,Eth1 以混杂模式运行,专用于捕获传递给它的流量。是否可以使用它iptables
来记录正在监控的网络上传出的流量?谢谢。
答案1
您是否考虑过使用tcpdump
而不是iptables
?例如:
tcpdump -w /var/log/packets -i eth1
会将所有可见的数据包转储eth1
到文件/var/log/packets
。稍后您可以使用tcpdump
、wireshark
或各种其他工具来分析该文件。
使用iptables
,您通常使用LOG
目标记录数据包,如下所示:
iptables -A INPUT -i eth1 -j LOG
我不确定这是否iptables
是适合这项工作的工具,因为(a)我不知道它如何在混杂模式下与接口一起运行,以及(b)鉴于高数据包速率,这种形式的日志记录可能会对您的系统产生重大的 I/O 影响。
我认为你最好使用tcpdump
模型。-G
标志将tcpdump
导致它定期轮换捕获文件,如果你要长时间捕获,你会想要这样做。所以像这样:
tcpdump -G 3600 -w /var/log/packets-%Y-%m-%d-%H
这将为你提供以下形式的文件:
/var/log/packets-2013-06-20-10