2012-06-15 95 views
1

在我的应用程序中,我将数据包从netfilter带到NFQUEU的用户空间,然后将其与我的标准进行比较,并在nfq_set_verdict2函数中通过NF_DROP或NF_ACCEPT丢弃或接受数据包。以普通的iptables日志格式记录丢弃的数据包。我可以如何实现这一点?使用nfq_set_verdict2(NF_DROP)丢弃日志数据包

回答

1

为了记录丢弃的数据包,创建一个新的链,它将丢弃它收到的每个数据包。重定向要下降到新的链和使用日志记录的语法,而新的链

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这是标准的syslog水平。 4是警告。您可以使用0到7范围内的数字。0是紧急情况,7是调试。

iptables -A LOGGING -j DROP:最后,丢弃所有来到LOGGING链的数据包。即现在它真的会丢弃传入的数据包。