记录使用 nfq_set_verdict2(NF_DROP) 丢弃的数据包



在我的应用程序中,我使用 NFQUEU 将数据包从 netfilter 获取到用户空间,然后将其与我的标准进行比较,并通过nfq_set_verdict2函数中的NF_DROP或NF_ACCEPT丢弃或接受数据包。我想以常规iptables日志格式记录丢弃的数据包。我怎样才能做到这一点?

为了记录丢弃的数据包,创建一个新链,该链将丢弃它收到的每个数据包。 将所有要丢弃的数据包重定向到新链,并在声明新链时使用日志记录语法

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

行 #3: -m 限制: 这使用限制匹配模块。使用此功能,您可以使用 –limit 选项限制日志记录。

–limit 2/min :这表示日志记录的最大平均匹配率。在此示例中,对于类似的数据包,它将日志记录限制为每分钟 2 个。您还可以指定2/second, 2/minute, 2/hour, 2/day 。当您不想将日志消息与相同丢弃的数据包的重复消息混杂在一起时,这非常有用。

-j LOG:这表示此数据包的目标是 LOG。 即写入日志文件。

–log-prefix “IPTables-Dropped : " 您可以指定任何日志前缀,这些前缀将附加到将写入/var/log/messages 文件的日志消息中

–log-level 4 这是标准的系统日志级别。 4 是警告。您可以使用 0 到 7 范围内的数字。0 表示紧急,7 表示调试。

iptables -A LOGGING -j DROP:最后,丢弃所有进入日志记录链的数据包,即现在它真的丢弃了传入的数据包。

最新更新