我使用 iptables 来阻止对我的服务器的各种攻击。我们有一组不同的规则以及不同的速率限制规则。现在我还使用一个脚本,如果阈值大于 10mb/s,它会观察阈值并将所有数据包转储到一个文件中。此脚本在屏幕会话中始终运行,并使用以下命令进行转储:
tcpdump -nn -s0 -c 2000 -w Attack.cap
sleep 300
一旦受到攻击,它会等待 5 分钟来检查是否存在另一次攻击(睡眠 300)。现在我怀疑在数据包捕获过程中,iptables 是否仍然有效,因为在 /var/messages 中我看到了“eth0 进入混杂模式”和“eth0 离开混杂模式”等行,所以它可能会忽略 iptables?
答案1
http://en.wikipedia.org/wiki/Promiscuous_mode
在计算机网络中,混杂模式或 promisc 模式是有线网络接口控制器 (NIC) 或无线网络接口控制器 (WNIC) 的一种模式,它导致控制器将其接收到的所有流量传递到中央处理单元 (CPU),而不是仅传递控制器想要接收的帧。
这不能绕过任何类型的防火墙。
答案2
尝试使用命令
tcpdump -i eth0 -p nn -s0 -c 2000 -w Attack.cap
默认情况下,tcpdump
将使接口处于混杂模式。就您的目的而言,我认为您不需要混杂模式。指定接口可防止tcpdump
查找它,并可能获取错误的接口。
tcpdump
在原始数据包进入防火墙之前抓取它们iptables
,这样您将能够看到被防火墙丢弃或拒绝的数据包。