1

我有一个交换机配置为将所有流量镜像到服务器的以太网接口。我实际上可以看到使用 tshark、tcpdump 等接收到的数据包,但 iptables 似乎没有看到这个流量。我的最终目标是 ulog 用于连接记帐的同步数据包。

我试图在 PREROUTING 链中放置规则,但没有成功。

iptable 可以捕获没有发送到本地机器的数据包吗?如果没有,有没有办法做到这一点?

4

2 回答 2

0

iptables仅适用于以某种方式指向您的机器的 IP 数据包。因此,您尝试实现的目标将无法使用iptables. 要使其工作,您需要将记帐机器设置为所有 IP 流量的路由器。

这个任务的 tcpdump 有什么问题?

tcpdump -G 3600 -w tcpsyn-%FT%T.pcap tcp and 'tcp[tcpflags] & (tcp-ack|tcp-syn) = tcp-syn'

如果您想要所有 TCP 启动尝试。

tcpdump -G 3600 -w tcpsynack-%FT%T.pcap tcp and 'tcp[tcpflags] & (tcp-ack|tcp-syn) = (tcp-ack|tcp-syn)'

如果您希望实际建立所有 TCP 会话。

于 2013-01-02T11:33:48.977 回答
0

您使用哪个表进行监控?

您要做的是使用过滤表(默认)和FORWARDING链:它专门用于捕获“遍历”机器的数据包。例如:

iptables -A FORWARDING -p tcp --dport 80 -j LOG

INPUT链将捕获来自外部的发往本地机器的OUTPUT数据包,该链将捕获来自该机器并向外发送的数据包。

附带说明:通过环回传输的数据包会同时通过INPUTOUTPUT链。

至于PREROUTING,它是一个链,如果有必要,路由决策之前修改数据包——这就是为什么,例如,端口重定向在那里完成。这就是为什么过滤表没有钩子的原因:它没有意义。

于 2013-01-02T11:19:04.297 回答