]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
ids.cgi: Generate suricata compatiple used-rulefiles file
authorStefan Schantl <stefan.schantl@ipfire.org>
Thu, 2 Aug 2018 07:07:12 +0000 (09:07 +0200)
committerStefan Schantl <stefan.schantl@ipfire.org>
Thu, 2 Aug 2018 07:07:12 +0000 (09:07 +0200)
 * Rename filename to suricata-used-rulefiles.yaml
 * Adjust file generation as a yaml file to be compatible with suricata
 * Adjust code to correctly read-in and parse the changed file

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
html/cgi-bin/ids.cgi

index 2ada96f52050227d6bf65941b10391ae0e595160..b42ede2ae0058de654df6812341c0180bb5a132e 100644 (file)
@@ -47,7 +47,7 @@ my %selected=();
 # Get netsettings.
 &General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
 
-my $idsusedrulefilesfile = "$IDS::settingsdir/ids-used-rulefiles.conf";
+my $idsusedrulefilesfile = "$IDS::settingsdir/suricata-used-rulefiles.yaml";
 my $errormessage;
 
 &Header::showhttpheaders();
@@ -130,7 +130,7 @@ if(-f $idsusedrulefilesfile) {
                next if ($line =~ /^\s*$/);
 
                # Gather rule sid and message from the ruleline.
-               if ($line =~ /.*include \$RULE_PATH\/(.*)/) {
+               if ($line =~ /.*(.*)/) {
                        my $rulefile = $1;
 
                        # Add the rulefile to the %idsrules hash.
@@ -234,6 +234,10 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'update'}) {
        # Open file for used rulefiles.
        open (FILE, ">$idsusedrulefilesfile") or die "Could not write to $idsusedrulefilesfile. $!\n";
 
+       # Write yaml header to the file.
+       print FILE "%YAML 1.1\n";
+       print FILE "---\n\n";
+
        # Write header to file.
        print FILE "#Autogenerated file. Any custom changes will be overwritten!\n";
 
@@ -241,7 +245,7 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'update'}) {
        if (@enabled_rulefiles) {
                # Loop through the array of rulefiles which should be loaded and write the to the file.
                foreach my $file (@enabled_rulefiles) {
-                       print FILE "include \$RULE_PATH/$file\n";
+                       print FILE " - $file\n";
                }
        }