使用输出链中的 IPTABLE 规则对 snmp trap 进行速率限制

使用输出链中的 IPTABLE 规则对 snmp trap 进行速率限制

我有一个配置为 SNMP 代理的系统,它将 TRAPS 发送到配置为 SNMP 管理器的其他远程 m/c。现在,我想从这个 SNMP 代理使用 Linux 中现有的 IPTABLES 实用程序来限制 SNMP 陷阱的速率。我不想编写单独的应用程序来限制发送到 SNMP 管理器的 SNMP 陷阱的速率,而是想使用 OUTPUT 链中的 IPTABLE 规则来实现此功能。可以吗!如果可以,有人可以建议输出链中的规则吗?

答案1

像这样:

iptables -A OUTPUT -p tcp --dport 161 -m limit --limit 3/min --limit-burst 3 -j ACCEPT 
iptables -A OUTPUT -p tcp --dport 161 -j DROP 
iptables -A OUTPUT -p udp --dport 161 -m limit --limit 3/min --limit-burst 3 -j ACCEPT
iptables -A OUTPUT -p udp --dport 161 -j DROP

使用 --limit 和 --limit-burst 值进行调整,直到您喜欢结果。

摘自 Rusty 的《极其不可靠的指南》(http://www.netfilter.org/documentation/index.html#documentation-howto):

limit
        This module must be explicitly specified with `-m limit' or
        `--match limit'. It is used to restrict the rate of matches,
        such as for suppressing log messages. It will only match a given
        number of times per second (by default 3 matches per hour, with
        a burst of 5). It takes two optional arguments:

        --limit
           followed by a number; specifies the maximum average number of
           matches to allow per second. The number can specify units
           explicitly, using `/second', `/minute', `/hour' or `/day', or
           parts of them (so `5/second' is the same as `5/s').

        --limit-burst
           followed by a number, indicating the maximum burst before the
           above limit kicks in.

相关内容