rule << "add @#{set} { #{ip} saddr ct count #{new_resource.connection_limit} }"
end
- # if new_resource.rate_limit =~ %r{^s:(\d+)/sec:(\d+)$}
- # set = "#{new_resource.rule}-#{ip}"
- # rate = Regexp.last_match(1)
- # burst = Regexp.last_match(2)
- #
- # node.default[:networking][:firewall][:sets] << set
- #
- # rule << "add @#{set} { #{ip} saddr limit rate #{rate}/second burst #{burst} packets }"
- # end
+ if new_resource.rate_limit =~ %r{^s:(\d+)/sec:(\d+)$}
+ set = "ratelimit-#{new_resource.rule}-#{ip}"
+ rate = Regexp.last_match(1)
+ burst = Regexp.last_match(2)
+
+ node.default[:networking][:firewall][:sets] << set
+
+ rule << "add @#{set} { #{ip} saddr limit rate #{rate}/second burst #{burst} packets }"
+ end
rule << case action
when :accept then "accept"
flags dynamic
}
- set limit-icmp-echo-ip {
+ set ratelimit-icmp-echo-ip {
type ipv4_addr
flags dynamic
}
- set limit-icmp-echo-ip6 {
+ set ratelimit-icmp-echo-ip6 {
type ipv6_addr
flags dynamic
}
ct state { established, related } accept
icmp type { destination-unreachable } accept
- icmp type { echo-request } add @limit-icmp-echo-ip { ip saddr limit rate 1/second } accept
+ icmp type { echo-request } add @ratelimit-icmp-echo-ip { ip saddr limit rate 1/second } accept
icmp type { echo-request } drop
icmpv6 type { nd-neighbor-solicit, nd-neighbor-advert, nd-router-solicit, nd-router-advert } accept
- icmpv6 type { echo-request } add @limit-icmp-echo-ip6 { ip6 saddr limit rate 1/second } accept
+ icmpv6 type { echo-request } add @ratelimit-icmp-echo-ip6 { ip6 saddr limit rate 1/second } accept
icmpv6 type { echo-request } drop
meta l4proto { icmp, icmpv6 } jump log-and-drop