]> git.ipfire.org Git - thirdparty/suricata-update.git/commitdiff
config: configurable suricata-conf-parameter
authorWolfgang Hotwagner <sec@feedyourhead.at>
Sun, 10 Dec 2017 15:03:16 +0000 (15:03 +0000)
committerJason Ish <ish@unx.ca>
Tue, 12 Dec 2017 13:20:59 +0000 (07:20 -0600)
This commit adds the command-line-parameter "suricata-conf" and replaces the hard-coded "/etc/suricata/suricata.yaml".

Ticket: Feature #2350

implemented support for multiple default suricata.yaml-files

doc/common-options.rst
suricata/update/config.py
suricata/update/main.py

index da1bff789c0c7d0bf3b6a494f0a9ee779007c3a1..bd08cf0e6d28939dd4aa43fe7a9156d68defc26b 100644 (file)
 
    Provide more verbose output.
 
+.. option:: --suricata-conf <path>
+
+   Path to the suricata config file.
+
+   Default: */etc/suricata/suricata.yaml*
+
 .. option:: --suricata <path>
 
    The path to the Suricata program. If not provided
index 7aa99eadedadfab8541d0f8a17887c2cb4493628..dc912e436fa9b2ead63255bdeeedf16eab8df21d 100644 (file)
@@ -43,11 +43,18 @@ OUTPUT_KEY = "output"
 
 DEFAULT_UPDATE_YAML_PATH = "/etc/suricata/update.yaml"
 
+DEFAULT_SURICATA_YAML_PATH = [
+    "/etc/suricata/suricata.yaml",
+    "/usr/local/etc/suricata/suricata.yaml",
+    "/etc/suricata/suricata-debian.yaml"
+]
+
 DEFAULT_CONFIG = {
     "disable-conf": "/etc/suricata/disable.conf",
     "enable-conf": "/etc/suricata/enable.conf",
     "drop-conf": "/etc/suricata/drop.conf",
     "modify-conf": "/etc/suricata/modify.conf",
+    "suricata-conf": "/etc/suricata/suricata.conf",
     "sources": [],
     LOCAL_CONF_KEY: [],
 
@@ -118,6 +125,11 @@ def init(args):
     _args = args
     _config.update(DEFAULT_CONFIG)
 
+    for suriyaml in DEFAULT_SURICATA_YAML_PATH:
+        if os.path.exists(suriyaml):
+            _config["suricata-conf"] = suriyaml
+            break
+
     if args.config:
         logger.info("Loading %s", args.config)
         with open(args.config, "rb") as fileobj:
index 62a68ef642418a963c3b22f3490606c5ba42811a..0070d7724d7c966a7d6d8a1be476de63f91374a8 100644 (file)
@@ -937,6 +937,9 @@ def _main():
     global_parser.add_argument(
         "-c", "--config", metavar="<filename>",
         help="configuration file (default: /etc/suricata/update.yaml)")
+    global_parser.add_argument(
+        "--suricata-conf", metavar="<filename>",
+        help="configuration file (default: /etc/suricata/suricata.yaml)")
     global_parser.add_argument(
         "--suricata", metavar="<path>",
         help="Path to Suricata program")
@@ -1197,11 +1200,11 @@ def _main():
         logger.info("Loading %s.", drop_conf_filename)
         drop_filters += load_drop_filters(drop_conf_filename)
 
-    if os.path.exists("/etc/suricata/suricata.yaml") and \
+    if os.path.exists(config.get("suricata-conf")) and \
        suricata_path and os.path.exists(suricata_path):
-        logger.info("Loading /etc/suricata/suricata.yaml")
+        logger.info("Loading %s",config.get("suricata-conf"))
         suriconf = suricata.update.engine.Configuration.load(
-            "/etc/suricata/suricata.yaml", suricata_path=suricata_path)
+            config.get("suricata-conf"), suricata_path=suricata_path)
         for key in suriconf.keys():
             if key.startswith("app-layer.protocols") and \
                key.endswith(".enabled"):