diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-08-25 18:54:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-25 18:54:13 +0200 |
commit | a12a392ef7c318bc0a788d4a892686b9ba1fa1b3 (patch) | |
tree | 7c74858136466bcd8b2f903211444b82124a8527 | |
parent | 20090229009d0aa783560c74207dbccb1014ebe0 (diff) | |
parent | ac885f3e0912acebf0e3bc62582cc767dc9d5a6d (diff) | |
download | vyos-1x-a12a392ef7c318bc0a788d4a892686b9ba1fa1b3.tar.gz vyos-1x-a12a392ef7c318bc0a788d4a892686b9ba1fa1b3.zip |
Merge pull request #1496 from sever-sever/T4644
sstp: T4644: Check SSTP bind port before commit
-rwxr-xr-x | src/conf_mode/vpn_sstp.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/conf_mode/vpn_sstp.py b/src/conf_mode/vpn_sstp.py index 23e5162ba..2949ab290 100755 --- a/src/conf_mode/vpn_sstp.py +++ b/src/conf_mode/vpn_sstp.py @@ -26,7 +26,9 @@ from vyos.pki import wrap_certificate from vyos.pki import wrap_private_key from vyos.template import render from vyos.util import call +from vyos.util import check_port_availability from vyos.util import dict_search +from vyos.util import is_listen_port_bind_service from vyos.util import write_file from vyos import ConfigError from vyos import airbag @@ -62,6 +64,12 @@ def verify(sstp): if not sstp: return None + port = sstp.get('port') + proto = 'tcp' + if check_port_availability('0.0.0.0', int(port), proto) is not True and \ + not is_listen_port_bind_service(int(port), 'accel-pppd'): + raise ConfigError(f'"{proto}" port "{port}" is used by another service') + verify_accel_ppp_base_service(sstp) if 'client_ip_pool' not in sstp and 'client_ipv6_pool' not in sstp: |