如何在 iptables 之后记录数据包



我想在iptables之后记录数据包(使用tcpdump(,但似乎tcpdump会记录所有数据包。我不希望数据包被iptables丢弃。

有什么办法可以

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

谢谢。

Tcpdump 在入站流量的 iptables 之前起作用,但您可以使用 iptables "NFLOG" 扩展来实现您的目标:http://ipset.netfilter.org/iptables-extensions.man.html#lbDI

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

Web服务器(非常基本的(示例,假设您正在接受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

最新更新