ok
Direktori : /bin/fm-agent/ |
Current File : //bin/fm-agent/countermeasure.py |
#!/usr/bin/env python """ Countermeasures production driver - executes one or more countermeasures Copyright 2023 Fortinet, Inc. All Rights Reserved. fm-ops@fortinet.com """ import os import sys platform = sys.platform.lower() if "freebsd" in platform: sys.path.insert(0, "/usr/local/fm-agent/lib/dependencies") sys.path.insert(0, "/usr/local/fm-agent/lib/library") sys.path.insert(0, "/usr/local/fm-agent/lib") elif "darwin" == platform: filePath = os.path.realpath(__file__) agent_bin = os.path.split(filePath)[0] agent_version_dir = os.path.split(agent_bin)[0] architecture = None import subprocess with subprocess.Popen( "arch", shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) as p: try: stdout, stderr = p.communicate(timeout=5.0) architecture = stdout.decode("utf-8").strip() except subprocess.TimeoutExpired: p.kill() if architecture is None: sys.stderr.write("Could not determine machine architecture\n") sys.exit(-12) sys_paths = ["lib/dependencies", "lib/library", "lib"] if architecture: sys_paths.append( "lib/dependencies/python{}.{}/{}".format( sys.version_info.major, sys.version_info.minor, architecture ) ) for sp in sys_paths: sys.path.insert(0, os.path.join(agent_version_dir, sp)) else: sys.path.insert(0, "/usr/lib/fm-agent") sys.path.insert(0, "/usr/lib/fm-agent/dependencies") # Add platform/version-specific dependency directory if present version = sys.version_info sys.path.insert( 0, "/usr/lib/fm-agent/dependencies/%s/python%s.%s" % (sys.platform, version[0], version[1]), ) # Add the main agent code directory sys.path.insert(0, "/usr/lib/fm-agent/library") import countermeasures.cm_driver as cm_driver cm_driver.BRAND = "fm" cm_driver.USER = "fm-agent" cm_driver.PKG_DIR = "fm-agent" if "freebsd" in platform: cm_driver.BASE_CUSTOM_PLUGIN_DIR = "/usr/local/share/fm-agent/countermeasures" cm_driver.BASE_CONFIG_DIR = "/usr/local/etc" cm_driver.BIN_DIR = "/usr/local/fm-agent/bin" cm_driver.LIB_DIR = "/usr/local/fm-agent/lib" elif "darwin" == platform: base_dir = "/usr/local/FortiMonitor/agent" cm_driver.BIN_DIR = os.path.join(base_dir, "latest/bin") cm_driver.BASE_CONFIG_DIR = os.path.join(base_dir, "config") cm_driver.BASE_CUSTOM_PLUGIN_DIR = os.path.join( base_dir, "share", cm_driver.PKG_DIR, "countermeasures" ) cm_driver.BASE_DATA_DIR = os.path.join(base_dir, "data") cm_driver.BASE_LOG_DIR = os.path.join(base_dir, "logs") cm_driver.LIB_DIR = os.path.join(base_dir, "latest/lib") else: cm_driver.BIN_DIR = "/usr/bin/fm-agent" cm_driver.BASE_CONFIG_DIR = "/etc" cm_driver.BASE_CUSTOM_PLUGIN_DIR = "/usr/share/fm-agent/countermeasures" cm_driver.BASE_DATA_DIR = "/var/lib" cm_driver.BASE_LOG_DIR = "/var/log" cm_driver.LIB_DIR = "/usr/lib/fm-agent" cm_driver.main()