Adding limit feature to iptables module
This commit is contained in:
parent
61ba4b98e1
commit
fbad76e86a
1 changed files with 12 additions and 0 deletions
|
@ -208,6 +208,10 @@ options:
|
||||||
- "ctstate is a list of the connection states to match in the conntrack module.
|
- "ctstate is a list of the connection states to match in the conntrack module.
|
||||||
Possible states are: 'INVALID', 'NEW', 'ESTABLISHED', 'RELATED', 'UNTRACKED', 'SNAT', 'DNAT'"
|
Possible states are: 'INVALID', 'NEW', 'ESTABLISHED', 'RELATED', 'UNTRACKED', 'SNAT', 'DNAT'"
|
||||||
required: false
|
required: false
|
||||||
|
limit:
|
||||||
|
description:
|
||||||
|
- "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')."
|
||||||
|
required: false
|
||||||
'''
|
'''
|
||||||
|
|
||||||
EXAMPLES = '''
|
EXAMPLES = '''
|
||||||
|
@ -244,6 +248,11 @@ def append_conntrack(rule, param):
|
||||||
rule.extend(['-m'])
|
rule.extend(['-m'])
|
||||||
rule.extend(['conntrack'])
|
rule.extend(['conntrack'])
|
||||||
|
|
||||||
|
def append_limit(rule, param):
|
||||||
|
if param:
|
||||||
|
rule.extend(['-m'])
|
||||||
|
rule.extend(['limit'])
|
||||||
|
|
||||||
|
|
||||||
def construct_rule(params):
|
def construct_rule(params):
|
||||||
rule = []
|
rule = []
|
||||||
|
@ -265,6 +274,8 @@ def construct_rule(params):
|
||||||
if params['ctstate']:
|
if params['ctstate']:
|
||||||
append_conntrack(rule, params['ctstate'])
|
append_conntrack(rule, params['ctstate'])
|
||||||
append_param(rule, ','.join(params['ctstate']), '--ctstate', False)
|
append_param(rule, ','.join(params['ctstate']), '--ctstate', False)
|
||||||
|
append_limit(rule, params['limit'])
|
||||||
|
append_param(rule, params['limit'], '--limit', False)
|
||||||
return rule
|
return rule
|
||||||
|
|
||||||
|
|
||||||
|
@ -315,6 +326,7 @@ def main():
|
||||||
to_ports=dict(required=False, default=None, type='str'),
|
to_ports=dict(required=False, default=None, type='str'),
|
||||||
comment=dict(required=False, default=None, type='str'),
|
comment=dict(required=False, default=None, type='str'),
|
||||||
ctstate=dict(required=False, default=[], type='list'),
|
ctstate=dict(required=False, default=[], type='list'),
|
||||||
|
limit=dict(required=False, default=[], type='list'),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
args = dict(
|
args = dict(
|
||||||
|
|
Loading…
Reference in a new issue