iptables之后如何记录数据包?

时间:2019-07-16 09:09:25

标签: iptables pcap tcpdump

我想在iptables之后记录数据包(使用tcpdump),但是看来tcpdump会记录所有数据包。我不希望iptables丢弃数据包。

有什么办法

  • 在iptables之后记录数据包?或
  • 将数据包(由iptables处理)输出到pcap / log文件中?

谢谢。

1 个答案:

答案 0 :(得分:0)

Tcpdump在iptables之前处理入站流量,但是您可以使用iptables“ NFLOG”扩展名来实现目标:http://ipset.netfilter.org/iptables-extensions.man.html#lbDI

使用“ NFLOG”目的地,您可以将所需的数据包记录到用户空间应用程序中,这就是tcpdump所属的位置(您还可以将流量分配给特定的组,然后告诉tcpdump侦听它)。

网络服务器(非常基本)的示例,假设您正在接受http / https流量并丢弃ssh:

#BASIC RULES
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

#NFLOG REDIRECT ONLY HTTP TRAFFIC
iptables -A INPUT -p tcp --dport 80 -j NFLOG

#TCPDUMP ONLY ON MATCHED TRAFFIC (=HTTP)
tcpdump -i nflog