diff options
| author | John Estabrook <jestabro@vyos.io> | 2026-03-12 13:30:35 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-12 13:30:35 -0500 |
| commit | e9f4d103284a456e10fb3776d26b9ff041f9352f (patch) | |
| tree | 185b82b6d02406a329f54a5c4f00722137a6c99a /src/migration-scripts | |
| parent | c9cb691a2881a6bbd958d6ab35f9f24b08386e74 (diff) | |
| parent | 0122baeac73dbd26d1461aadd502d8fa2ba3b827 (diff) | |
| download | vyos-1x-e9f4d103284a456e10fb3776d26b9ff041f9352f.tar.gz vyos-1x-e9f4d103284a456e10fb3776d26b9ff041f9352f.zip | |
Merge pull request #5029 from c-po/openvpn-t8304
openvpn: T8304: fix migration for des, bf128 or bf256 cipher; use 3des instead
Diffstat (limited to 'src/migration-scripts')
| -rw-r--r-- | src/migration-scripts/openvpn/0-to-1 | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/migration-scripts/openvpn/0-to-1 b/src/migration-scripts/openvpn/0-to-1 index 582cd9a46..26f41d2ce 100644 --- a/src/migration-scripts/openvpn/0-to-1 +++ b/src/migration-scripts/openvpn/0-to-1 @@ -17,6 +17,8 @@ from vyos.configtree import ConfigTree +updated_cipher='3des' + def migrate(config: ConfigTree) -> None: if not config.exists(['interfaces', 'openvpn']): # Nothing to do @@ -25,6 +27,7 @@ def migrate(config: ConfigTree) -> None: ovpn_intfs = config.list_nodes(['interfaces', 'openvpn']) for i in ovpn_intfs: # Remove DES and Blowfish from 'encryption cipher' + # Support for these insecure ciphers will be removed in OpenVPN 2.6. cipher_path = ['interfaces', 'openvpn', i, 'encryption', 'cipher'] if config.exists(cipher_path): cipher = config.return_value(cipher_path) @@ -41,3 +44,11 @@ def migrate(config: ConfigTree) -> None: if config.exists(['interfaces', 'openvpn', i, 'encryption']) and \ (config.list_nodes(['interfaces', 'openvpn', i, 'encryption']) == []): config.delete(['interfaces', 'openvpn', i, 'encryption']) + + # We need to take care about site-to-site tunnels which had an implicit + # OpenVPN default cipher (BF-CBC) with block size less than 128 bit (64 bit). + mode_path = ['interfaces', 'openvpn', i, 'mode'] + if config.exists(mode_path) and config.return_value(mode_path) == 'site-to-site': + # if no explicit cipher is defined, we will "upgrade" to 3DES at least + if not config.exists(cipher_path): + config.set(cipher_path, value=updated_cipher) |
