feat(zone.xml): Allow to rate limit 'accept' in rich rulestags/v1.2.0
<audit>{%- if 'limit' in rule.audit %} <limit value="{{ rule.audit.limit }}"/>{%- endif %}</audit> | <audit>{%- if 'limit' in rule.audit %} <limit value="{{ rule.audit.limit }}"/>{%- endif %}</audit> | ||||
{%- endif %} | {%- endif %} | ||||
{%- if 'accept' in rule %} | {%- if 'accept' in rule %} | ||||
<accept/> | |||||
<accept>{%- if rule.accept is mapping and 'limit' in rule.accept %} <limit value="{{ rule.accept.limit }}"/>{%- endif %}</accept> | |||||
{%- endif %} | {%- endif %} | ||||
{%- if 'reject' in rule %} | {%- if 'reject' in rule %} | ||||
<reject{%- if 'type' in rule.reject %} type="{{ rule.reject.type }}"{%- endif %} /> | <reject{%- if 'type' in rule.reject %} type="{{ rule.reject.type }}"{%- endif %} /> |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
ports: | ports: | ||||
# {%- if grains['id'] == 'salt.example.com' %} | # {%- if grains['id'] == 'salt.example.com' %} | ||||
- comment: salt-master | - comment: salt-master |
<source-port port="4444" protocol="tcp" /> | <source-port port="4444" protocol="tcp" /> | ||||
<rule family="ipv4"> | <rule family="ipv4"> | ||||
<source address="8.8.8.8/24" /> | <source address="8.8.8.8/24" /> | ||||
<accept/> | |||||
<accept></accept> | |||||
</rule> | </rule> | ||||
<rule family="ipv4"> | <rule family="ipv4"> | ||||
<source ipset="fail2ban-ssh" /> | <source ipset="fail2ban-ssh" /> | ||||
<reject type="icmp-port-unreachable" /> | <reject type="icmp-port-unreachable" /> | ||||
</rule> | </rule> | ||||
<rule> | |||||
<service name="http" /> | |||||
<log prefix="http fw limit 3/m" level="warning"> | |||||
<limit value="3/m"/> | |||||
</log> | |||||
<accept> <limit value="3/m"/></accept> | |||||
</rule> | |||||
</zone> | </zone> | ||||
ZONE_XML | ZONE_XML | ||||
end | end | ||||
<rule> | <rule> | ||||
<source ipset="fail2ban-ssh" /> | <source ipset="fail2ban-ssh" /> | ||||
<service name="ssh" /> | <service name="ssh" /> | ||||
<accept/> | |||||
<accept></accept> | |||||
</rule> | </rule> | ||||
<rule> | <rule> | ||||
<source ipset="other-ipset" /> | <source ipset="other-ipset" /> | ||||
<service name="ssh" /> | <service name="ssh" /> | ||||
<accept/> | |||||
<accept></accept> | |||||
</rule> | </rule> | ||||
</zone> | </zone> | ||||
ZONE_XML | ZONE_XML |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |
name: fail2ban-ssh | name: fail2ban-ssh | ||||
reject: | reject: | ||||
type: icmp-port-unreachable | type: icmp-port-unreachable | ||||
- accept: | |||||
limit: "3/m" | |||||
log: | |||||
level: warning | |||||
limit: "3/m" | |||||
prefix: "http fw limit 3/m" | |||||
service: http | |||||
services: | services: | ||||
- http | - http | ||||
- https | - https |