如何查看 iptables 中 OUTPUT 链中丢弃的包的内容

如何查看 iptables 中 OUTPUT 链中丢弃的包的内容

iptables如下:

# iptables -t filter -nvL
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    1   328 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW,ESTABLISHED 
    0     0 LOGGING    all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
  487 49868 LOGGING    all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain LOGGING (2 references)
 pkts bytes target     prot opt in     out     source               destination         
   39  9426 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 2/min burst 5 LOG flags 0 level 4 prefix `IPTables-Dropped: ' 
  487 49868 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

INPUT 和 OUTPUT 链中丢弃的数据包数量不断增加。有什么办法可以看到这些丢弃的数据包的内容吗?我尝试解决 tcpdump,但无法理解。请有人可以帮助我使用语法、正确的命令或工具,以人类可读的形式查看这些删除的包的内容。

这里丢弃的数据包被传输到客户链 LOGGING 和系统日志中。

 tail -f /var/log/messages

答案1

Tcpdump 在过滤器之后运行,因此您不会看到任何被丢弃的传入数据包。

根据您的规则,数据包将被记录在内核日志中。通过该LOG规则,您可以获得标题,但不能获得完整内容。如果您想记录完整内容,请替换LOGULOG(这需要不同的选项,除了 Maybe 之外,您可能不需要任何选项--ulog-prefix)并运行ulogd守护进程。

相关内容