Puppet 防火墙字符串速率限制对 Asterisk 不起作用

Puppet 防火墙字符串速率限制对 Asterisk 不起作用

我有一台 Ubuntu 16.04 服务器,使用 Puppet 5 和 Asterisk 14.6.0。我正在尝试实现下面链接中描述的字符串速率限制规则,但它不起作用。CLI 控制台显示快速脚本化的 REGISTER 请求。还请注意字符串参数中双引号内的单引号。

https://www.voip-info.org/asterisk-firewall-rules

这是我的傀儡清单:

  firewall { "005 asterisk-set-rate-limit-register":
     dport       => '5060',
     proto       => 'udp',
     recent      => 'set',
     rname       => 'VOIPREGISTER',
     string      => 'REGISTER sip:',
     string_algo => 'bm',
     rsource     => 'true';
  }
  firewall { "006 asterisk-drop-rate-limit-register":
     dport       => '5060',
     proto       => 'udp',
     action      => 'drop',
     recent      => 'update',
     rseconds    => '600',
     rhitcount   => '5',
     rname       => 'VOIPREGISTER',
     rsource     => true,
     string      => 'REGISTER sip:',
     string_algo => 'bm',
     rttl        => true;
  }
  firewall { "007 asterisk-set-rate-limit-invite":
     string      => 'INVITE sip:',
     string_algo => 'bm',
     dport       => '5060',
     proto       => 'udp',
     recent      => 'set',
     rname       => 'VOIPINVITE',
     rsource     => 'true';
  }
  firewall { "008 asterisk-drop-rate-limit-invite":
     string      => 'INVITE sip:',
     string_algo => 'bm',
     dport       => '5060',
     proto       => 'udp',
     action      => 'drop',
     recent      => 'update',
     rseconds    => '600',
     rhitcount   => '5',
     rname       => 'VOIPINVITE',
     rsource     => true,
     rttl        => true;
  }

这些是生成的 iptables 规则

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

-A INPUT -p udp -m multiport --dports 5060 -m recent --set --name VOIPREGISTER --mask 255.255.255.255 --rsource -m string --string "'REGISTER sip:'" --algo bm --to 65535 -m comment --comment "005 asterisk-set-rate-limit-register"

-A INPUT -p udp -m multiport --dports 5060 -m recent --update --seconds 600 --hitcount 5 --rttl --name VOIPREGISTER --mask 255.255.255.255 --rsource -m string --string "'REGISTER sip:'" --algo bm --to 65535 -m comment --comment "006 asterisk-drop-rate-limit-register" -j DROP

-A INPUT -p udp -m multiport --dports 5060 -m recent --set --name VOIPINVITE --mask 255.255.255.255 --rsource -m string --string "'INVITE sip:'" --algo bm --to 65535 -m comment --comment "007 asterisk-set-rate-limit-invite"

-A INPUT -p udp -m multiport --dports 5060 -m recent --update --seconds 600 --hitcount 5 --rttl --name VOIPINVITE --mask 255.255.255.255 --rsource -m string --string "'INVITE sip:'" --algo bm --to 65535 -m comment --comment "008 asterisk-drop-rate-limit-invite" -j DROP

答案1

你正在使用puppet 防火墙模块

您是否使用以下方式安装:

puppet module install puppetlabs-firewall --version 1.12.0

您是否通过以下方式启用了它:

mod 'puppetlabs-firewall', '1.12.0'

看到你的模块开始于005我猜你在此之前制定了一些规则,你应该发布与防火墙相关的所有内容。

更新

根据您的评论,并检查防火墙模块的文档和你的 iptables 规则,你可能会得到你的设置附加(这是-A)来覆盖您的设置。

请列出所有规则并将iptables --list其粘贴到问题的代码块中。

相关内容