![如何查看 iptables 中 OUTPUT 链中丢弃的包的内容](https://linux22.com/image/52243/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%20iptables%20%E4%B8%AD%20OUTPUT%20%E9%93%BE%E4%B8%AD%E4%B8%A2%E5%BC%83%E7%9A%84%E5%8C%85%E7%9A%84%E5%86%85%E5%AE%B9.png)
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
规则,您可以获得标题,但不能获得完整内容。如果您想记录完整内容,请替换LOG
为ULOG
(这需要不同的选项,除了 Maybe 之外,您可能不需要任何选项--ulog-prefix
)并运行ulogd
守护进程。