diff options
author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2023-04-10 17:55:48 +0000 |
---|---|---|
committer | Viacheslav Hletenko <v.gletenko@vyos.io> | 2023-04-10 17:55:48 +0000 |
commit | 8ef944b854de54bce95b91257d7a3cd22ed48064 (patch) | |
tree | 0607ce848b329537b97e692ab1efbfb05000aea4 | |
parent | 3593ecfa51a6508b6a8b8170dde10db261ab5609 (diff) | |
download | vyos-1x-8ef944b854de54bce95b91257d7a3cd22ed48064.tar.gz vyos-1x-8ef944b854de54bce95b91257d7a3cd22ed48064.zip |
T5065: Add verify for firewall port-group and port
We cannot use both 'port' and 'port-group' for the same direction
in one rule at the same time
Otherwise it generates wrong rules that don't block anything
set P_pgrp {
type inet_service
flags interval
auto-merge
elements = { 101-105 }
}
chain NAME_foo {
tcp dport 22 tcp dport @P_pgrp counter drop comment "foo-10"
counter return comment "foo default-action accept"
}
-rwxr-xr-x | src/conf_mode/firewall.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/conf_mode/firewall.py b/src/conf_mode/firewall.py index c41a442df..190587980 100755 --- a/src/conf_mode/firewall.py +++ b/src/conf_mode/firewall.py @@ -282,6 +282,9 @@ def verify_rule(firewall, rule_conf, ipv6): if rule_conf['protocol'] not in ['tcp', 'udp', 'tcp_udp']: raise ConfigError('Protocol must be tcp, udp, or tcp_udp when specifying a port or port-group') + if 'port' in side_conf and dict_search_args(side_conf, 'group', 'port_group'): + raise ConfigError(f'{side} port-group and port cannot both be defined') + if 'log_options' in rule_conf: if 'log' not in rule_conf or 'enable' not in rule_conf['log']: raise ConfigError('log-options defined, but log is not enable') |