diff options
author | Christian Breunig <christian@breunig.cc> | 2023-09-28 21:15:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-28 21:15:42 +0200 |
commit | fed59f9bddead060275f368de69e4e4470015ca9 (patch) | |
tree | 4fe1a1f47f7fe320b06c7bf5a94c6245bd6be61b | |
parent | 34772d635fa5a44db8c944b6f0a84f184a704f1d (diff) | |
parent | 6eda98d14ad98c3e4d5f3cf159c7a3532a8128d7 (diff) | |
download | vyos-1x-fed59f9bddead060275f368de69e4e4470015ca9.tar.gz vyos-1x-fed59f9bddead060275f368de69e4e4470015ca9.zip |
Merge pull request #2322 from sarthurdev/synproxy_fix
firewall: T5217: Synproxy bugfix and ct state conflict checking
-rw-r--r-- | python/vyos/firewall.py | 5 | ||||
-rwxr-xr-x | src/conf_mode/firewall.py | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/python/vyos/firewall.py b/python/vyos/firewall.py index ab40688cc..9122e264e 100644 --- a/python/vyos/firewall.py +++ b/python/vyos/firewall.py @@ -263,9 +263,8 @@ def parse_rule(rule_conf, hook, fw_name, rule_id, ip_name): output.append(f'{proto} {prefix}port {operator} @P_{group_name}') - if rule_conf['action'] == 'synproxy': - if 'synproxy' in rule_conf: - output.append('ct state invalid,untracked') + if dict_search_args(rule_conf, 'action') == 'synproxy': + output.append('ct state invalid,untracked') if 'hop_limit' in rule_conf: operators = {'eq': '==', 'gt': '>', 'lt': '<'} diff --git a/src/conf_mode/firewall.py b/src/conf_mode/firewall.py index 2ca4bbe2d..f6480ab0a 100755 --- a/src/conf_mode/firewall.py +++ b/src/conf_mode/firewall.py @@ -176,6 +176,8 @@ def verify_rule(firewall, rule_conf, ipv6): if rule_conf['action'] != 'synproxy' and 'synproxy' in rule_conf: raise ConfigError('"synproxy" option allowed only for action synproxy') if rule_conf['action'] == 'synproxy': + if 'state' in rule_conf: + raise ConfigError('For action "synproxy" state cannot be defined') if not rule_conf.get('synproxy', {}).get('tcp'): raise ConfigError('synproxy TCP MSS is not defined') if rule_conf.get('protocol', {}) != 'tcp': |