#!/usr/bin/env python3 # The Cisco Unity plugin, that implements a proprietary extension # for IPsec split tunneling, interfers with DMVPN # # Since we do not do remote access IPsec, the simplest solution # is to disable it entirely from the start. import re # Disable the 'cisco_unity' option in charon.conf with open('/etc/strongswan.d/charon.conf', 'r') as f: charon_conf = f.read() charon_conf = re.sub(r'# (cisco_unity = no)', r"\1", charon_conf) with open('/etc/strongswan.d/charon.conf', 'w') as f: f.write(charon_conf) # Prevent the 'cisco_unity' plugin from loading with open('/etc/strongswan.d/charon/unity.conf', 'r') as f: unity_conf = f.read() unity_conf = re.sub(r'load = yes', r'load = no', unity_conf) with open('/etc/strongswan.d/charon/unity.conf', 'w') as f: f.write(unity_conf) # Prevent the 'farp' plugin from loading with open('/etc/strongswan.d/charon/farp.conf', 'r') as f: farp_conf = f.read() farp_conf = re.sub(r'load = yes', r'load = no', farp_conf) with open('/etc/strongswan.d/charon/farp.conf', 'w') as f: f.write(farp_conf) # Add ike-name to logging charon_logging = """ charon { syslog { # prefix for each log message identifier = charon # use default settings to log to the LOG_DAEMON facility daemon { default = 1 ike_name = yes } } } """ with open('/etc/strongswan.d/charon-logging.conf', 'w') as f: f.write(charon_logging)