]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
suricatasc: add/list/remove hostbit commands
authorVictor Julien <victor@inliniac.net>
Thu, 15 Dec 2016 13:49:40 +0000 (14:49 +0100)
committerVictor Julien <victor@inliniac.net>
Thu, 16 Feb 2017 09:35:44 +0000 (10:35 +0100)
Syntax:
    add-hostbit <ip> <bit name> <expire>
Example:
    add-hostbit 1.2.3.4 blacklist 3600

Syntax:
    remove-hostbit <ip> <bit name>
Example:
    remove-hostbit 1.2.3.4 blacklist

Syntax:
    list-hostbit <ip>
Example:
    list-hostbit 1.2.3.4

scripts/suricatasc/src/suricatasc.py

index 1a776a29a0e557f08e5aa75518021a0dbc1a9f33..ae62cf205ea3398cbad4819bdda5758221923d15 100644 (file)
@@ -80,7 +80,7 @@ class SuricataCompleter:
 
 class SuricataSC:
     def __init__(self, sck_path, verbose=False):
-        self.cmd_list=['shutdown','quit','pcap-file','pcap-file-number','pcap-file-list','iface-list','iface-stat','register-tenant','unregister-tenant','register-tenant-handler','unregister-tenant-handler']
+        self.cmd_list=['shutdown','quit','pcap-file','pcap-file-number','pcap-file-list','iface-list','iface-stat','register-tenant','unregister-tenant','register-tenant-handler','unregister-tenant-handler', 'add-hostbit', 'remove-hostbit', 'list-hostbit']
         self.sck_path = sck_path
         self.verbose = verbose
 
@@ -278,6 +278,39 @@ class SuricataSC:
                     arguments = {}
                     arguments["id"] = int(tenantid)
                     arguments["filename"] = filename
+            elif "add-hostbit" in command:
+                try:
+                    [cmd, ipaddress, hostbit, expire] = command.split(' ')
+                except:
+                    raise SuricataCommandException("Arguments to command '%s' is missing" % (command))
+                if cmd != "add-hostbit":
+                    raise SuricataCommandException("Invalid command '%s'" % (command))
+                else:
+                    arguments = {}
+                    arguments["ipaddress"] = ipaddress
+                    arguments["hostbit"] = hostbit
+                    arguments["expire"] = int(expire)
+            elif "remove-hostbit" in command:
+                try:
+                    [cmd, ipaddress, hostbit] = command.split(' ', 2)
+                except:
+                    raise SuricataCommandException("Arguments to command '%s' is missing" % (command))
+                if cmd != "remove-hostbit":
+                    raise SuricataCommandException("Invalid command '%s'" % (command))
+                else:
+                    arguments = {}
+                    arguments["ipaddress"] = ipaddress
+                    arguments["hostbit"] = hostbit
+            elif "list-hostbit" in command:
+                try:
+                    [cmd, ipaddress] = command.split(' ')
+                except:
+                    raise SuricataCommandException("Arguments to command '%s' is missing" % (command))
+                if cmd != "list-hostbit":
+                    raise SuricataCommandException("Invalid command '%s'" % (command))
+                else:
+                    arguments = {}
+                    arguments["ipaddress"] = ipaddress
             else:
                 cmd = command
         else: