iptables如何在snort的stream量整形方面与NFQ一起工作?

我想了解iptables和NFQ如何与snort一起工作。

我问这个问题的原因是因为据我所知, snort可以通过NFQ设置为IPS,但是如果你拥有iptables那么防火墙规则基本上就是我的问题,因为我正在试图做的就是丢弃符合下面规则的数据包拆分为可读性):

 drop tcp any any -> $HOME_NET 80 (flags:S; msg:"Possible TCP Dos Be Careful !!"; flow:stateless; detection_filter: track by_dst, count 70, seconds 10; sid:10001;rev:1;) 

需要注意的是, iptables似乎也可以根据规则丢弃数据包,所以如果这是真的,那么我所要问的就是如何在运行snort的configuration方面一起工作见下文)?

 vim /usr/local/snort/etc/snort.conf config daq: nfq config daq_mode: inline config daq_var: queue=0 iptables --append FORWARD --jump NFQUEUE --queue-num 0 /usr/local/snort/bin/snort -m 027 -d -l /var/log/snort \ -u snort -g snort -c /usr/local/snort/etc/snort.conf \ -Q -S HOME_NET=[192.168.1.0/24] 

    那么,我是一个普通的snort用户,我会尽力给你更多关于这个步骤的信息:

    1. 用nfq作为daq启动一个snort实例;
    2. 然后你在iptables / ip6tables中用NFQUEUE目标创build一个规则,这个规则把这个包发送到用户空间,这样snort可以对它进行分析;

    有几件重要的事情你必须知道(我已经阅读了seclist邮件列表):

    1. iptables中的规则必须在启动snort实例后创build;
    2. 在规则被发送到用户空间并被snort威胁后,链中的任何后续iptables规则将被忽略 ;
    3. 用nfq作为daq的snort不能同时分析ipv4和ipv6stream量,所以你必须用iptables和ip6tables创build规则,每个应该发送到一个snort实例(我不知道他们是否可以发送包到同一队列) ;