最新消息:

如何查看被iptables丢弃的数据包

Linux ipcpu 10903浏览

在Linux系统中,我们经常用iptables对数据包进行限制,最常见的就比如:
[root@s109 ~]#iptables -nvL
Chain INPUT (policy DROP 830 packets, 176K bytes)
pkts bytes target     prot opt in     out     source               destination
4954 2547K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
77  4536 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
3   132 ACCEPT     tcp  --  *      *       10.0.0.0/8           0.0.0.0/0           tcp dpt:22 state NEW
0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 state NEW
10012  736K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 3/sec burst 5
46  2024 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
0     0 ACCEPT     all  --  *      *       0.0.0.0/0            224.0.0.18
736 63525 ACCEPT     udp  --  *      *       10.0.0.0/8           0.0.0.0/0           udp dpt:161
这里只写了一部分,在INPUT链中默认规则是DROP,所有没有匹配到列表的数据包会被丢弃。
但是有时我们想看一下被iptables丢弃的数据包,比如以前没有开启iptables,开启iptables有可能会丢弃正常的数据包。
我们可以使用iptables中的LOG动作来对这些数据进行记录。
最简单的使用办法
iptables -A INPUT -j LOG –log-prefix=”iptables-”
这样我们就可以把匹配上iptables规则的数据包写到syslog中。
因为iptables是按照自上而下的顺序对数据包进行匹配,所以在最底下添加LOG记录,也就是记录了执行默认规则的数据包。
我们来看一下syslog:
Apr 10 17:45:54 S109 kernel: iptables-IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:52:54:00:02:12:a8:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=330 TOS=0x00 PREC=0x00 TTL=128 ID=4225 PROTO=UDP SPT=68 DPT=67 LEN=310
Apr 10 17:46:03 S109 kernel: iptables-IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:52:54:00:02:12:a8:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=330 TOS=0x00 PREC=0x00 TTL=128 ID=4226 PROTO=UDP SPT=68 DPT=67 LEN=310
Apr 10 17:46:09 S109 kernel: iptables-IN=eth1 OUT= MAC=78:2b:cb:42:a7:2f:3c:e5:a6:4d:59:00:08:00 SRC=184.173.144.34 DST=113.31.131.27 LEN=72 TOS=0x00 PREC=0x00 TTL=44 ID=29448 DF PROTO=UDP SPT=53 DPT=11437 LEN=52
Apr 10 17:46:16 S109 kernel: iptables-IN=eth1 OUT= MAC=78:2b:cb:42:a7:2f:3c:e5:a6:4d:59:00:08:00 SRC=184.173.144.34 DST=113.31.131.27 LEN=72 TOS=0x00 PREC=0x00 TTL=44 ID=30057 DF PROTO=UDP SPT=53 DPT=11826 LEN=52
源MAC、目的MAC、源IP、目的IP、源端口、目的端口都被记录到了syslog。
通过分析这些日志,可以找出是否错误的拒绝了数据包。

转载请注明:IPCPU-网络之路 » 如何查看被iptables丢弃的数据包