ids.cgi: Generate suricata compatiple used-rulefiles file

* 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>
This commit is contained in:
Stefan Schantl
2018-08-02 09:07:12 +02:00
parent 164eab6627
commit 101c888174

View 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";
}
}