]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - html/cgi-bin/ids.cgi
ids.cgi: Always display ruleset
[ipfire-2.x.git] / html / cgi-bin / ids.cgi
index d78bcd20dedaf6ddc269e3489c031c98812ae1ad..ccde15a22cdf1efa7b00bebc80b917be5cf07a1a 100644 (file)
@@ -351,145 +351,144 @@ if ($results ne '') {
 
 &Header::closebox();
 
-if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable_green" || -e "${General::swroot}/snort/enable_blue" || -e "${General::swroot}/snort/enable_orange" ) {
-       &Header::openbox('100%', 'LEFT', $Lang::tr{'intrusion detection system rules'});
-               # Output display table for rule files
-               print "<table width='100%'><tr><td valign='top'><table>";
-
-               print "<form method='post'>";
-
-               # Local vars
-               my $ruledisplaycnt = 1;
-               my $rulecnt = keys %snortrules;
-               $rulecnt++;
-               $rulecnt = $rulecnt / 2;
-
-               # Loop over each rule file
-               foreach my $rulefile (sort keys(%snortrules)) {
-                       my $rulechecked = '';
-
-                       # Hide inkompatible Block rules
-                       if ($rulefile =~'-BLOCK.rules') {
-                               next;
-                       }
+&Header::openbox('100%', 'LEFT', $Lang::tr{'intrusion detection system rules'});
+       # Output display table for rule files
+       print "<table width='100%'><tr><td valign='top'><table>";
 
-                       # Check if reached half-way through rule file rules to start new column
-               if ($ruledisplaycnt > $rulecnt) {
-                               print "</table></td><td valign='top'><table>";
-                               $ruledisplaycnt = 0;
-                       }
+       print "<form method='post'>";
 
-                       # Check if rule file is enabled
-                       if ($snortrules{$rulefile}{"State"} eq 'Enabled') {
-                               $rulechecked = 'CHECKED';
-                       }
+       # Local vars
+       my $ruledisplaycnt = 1;
+       my $rulecnt = keys %snortrules;
+       $rulecnt++;
+       $rulecnt = $rulecnt / 2;
+
+       # Loop over each rule file
+       foreach my $rulefile (sort keys(%snortrules)) {
+               my $rulechecked = '';
+
+               # Hide inkompatible Block rules
+               if ($rulefile =~'-BLOCK.rules') {
+                       next;
+               }
+
+               # Check if reached half-way through rule file rules to start new column
+               if ($ruledisplaycnt > $rulecnt) {
+                       print "</table></td><td valign='top'><table>";
+                       $ruledisplaycnt = 0;
+               }
+
+               # Check if rule file is enabled
+               if ($snortrules{$rulefile}{"State"} eq 'Enabled') {
+                       $rulechecked = 'CHECKED';
+               }
 
-                       # Create rule file link, vars array, and display flag
-                       my $rulefilelink = "?RULEFILE=$rulefile";
-                       my $rulefiletoclose = '';
-                       my @queryvars = ();
-                       my $displayrulefilerules = 0;
-
-                       # Check for passed in query string
-                       if ($ENV{'QUERY_STRING'}) {
-                               # Split out vars
-                               @queryvars = split(/\&/, $ENV{'QUERY_STRING'});
-
-                               # Loop over values
-                               foreach $value (@queryvars) {
-                                       # Split out var pairs
-                                       ($var, $linkedrulefile) = split(/=/, $value);
-
-                                       # Check if var is 'RULEFILE'
-                                       if ($var eq 'RULEFILE') {
-                                               # Check if rulefile equals linkedrulefile
-                                               if ($rulefile eq $linkedrulefile) {
-                                                       # Set display flag
-                                                       $displayrulefilerules = 1;
-
-                                                       # Strip out rulefile from rulefilelink
-                                                       $rulefilelink =~ s/RULEFILE=$linkedrulefile//g;
-                                               } else {
-                                                       # Add linked rule file to rulefilelink
-                                                       $rulefilelink .= "&RULEFILE=$linkedrulefile";
-                                               }
+               # Create rule file link, vars array, and display flag
+               my $rulefilelink = "?RULEFILE=$rulefile";
+               my $rulefiletoclose = '';
+               my @queryvars = ();
+               my $displayrulefilerules = 0;
+
+               # Check for passed in query string
+               if ($ENV{'QUERY_STRING'}) {
+                       # Split out vars
+                       @queryvars = split(/\&/, $ENV{'QUERY_STRING'});
+
+                       # Loop over values
+                       foreach $value (@queryvars) {
+                               # Split out var pairs
+                               ($var, $linkedrulefile) = split(/=/, $value);
+
+                               # Check if var is 'RULEFILE'
+                               if ($var eq 'RULEFILE') {
+                                       # Check if rulefile equals linkedrulefile
+                                       if ($rulefile eq $linkedrulefile) {
+                                               # Set display flag
+                                               $displayrulefilerules = 1;
+
+                                               # Strip out rulefile from rulefilelink
+                                               $rulefilelink =~ s/RULEFILE=$linkedrulefile//g;
+                                       } else {
+                                               # Add linked rule file to rulefilelink
+                                               $rulefilelink .= "&RULEFILE=$linkedrulefile";
                                        }
                                }
                        }
+               }
 
-                       # Strip out extra & & ? from rulefilelink
-                       $rulefilelink =~ s/^\?\&/\?/i;
+               # Strip out extra & & ? from rulefilelink
+               $rulefilelink =~ s/^\?\&/\?/i;
 
-                       # Check for a single '?' and replace with page for proper link display
-                       if ($rulefilelink eq '?') {
-                               $rulefilelink = "ids.cgi";
-                       }
+               # Check for a single '?' and replace with page for proper link display
+               if ($rulefilelink eq '?') {
+                       $rulefilelink = "ids.cgi";
+               }
 
-                       # Output rule file name and checkbox
-                       print "<tr><td class='base' valign='top'><input type='checkbox' NAME='SNORT_RULE_$rulefile' $rulechecked> <a href='$rulefilelink'>$rulefile</a></td></tr>";
-                       print "<tr><td class='base' valign='top'>";
+               # Output rule file name and checkbox
+               print "<tr><td class='base' valign='top'><input type='checkbox' NAME='SNORT_RULE_$rulefile' $rulechecked> <a href='$rulefilelink'>$rulefile</a></td></tr>";
+               print "<tr><td class='base' valign='top'>";
 
-                       # Check for empty 'Description'
-                       if ($snortrules{$rulefile}{'Description'} eq '') {
-                               print "<table width='100%'><tr><td class='base'>No description available</td></tr>";
-                       } else {
-                               # Output rule file 'Description'
-                               print "<table width='100%'><tr><td class='base'>$snortrules{$rulefile}{'Description'}</td></tr>";
-                       }
+               # Check for empty 'Description'
+               if ($snortrules{$rulefile}{'Description'} eq '') {
+                       print "<table width='100%'><tr><td class='base'>No description available</td></tr>";
+               } else {
+                       # Output rule file 'Description'
+                       print "<table width='100%'><tr><td class='base'>$snortrules{$rulefile}{'Description'}</td></tr>";
+               }
 
-                       # Check for display flag
-                       if ($displayrulefilerules) {
-                               # Rule file definition rule display
-                               print "<tr><td class='base' valign='top'><table border='0'><tr>";
+               # Check for display flag
+               if ($displayrulefilerules) {
+                       # Rule file definition rule display
+                       print "<tr><td class='base' valign='top'><table border='0'><tr>";
 
-                               # Local vars
-                               my $ruledefdisplaycnt = 0;
-                               my $ruledefcnt = keys %{$snortrules{$rulefile}{"Definition"}};
-                               $ruledefcnt++;
-                               $ruledefcnt = $ruledefcnt / 2;
-
-                               # Loop over rule file rules
-                               foreach my $ruledef (sort {$a <=> $b} keys(%{$snortrules{$rulefile}{"Definition"}})) {
-                                       # Local vars
-                                       my $ruledefchecked = '';
-
-                                       # If have display 2 rules, start new row
-                                       if (($ruledefdisplaycnt % 2) == 0) {
-                                               print "</tr><tr>";
-                                               $ruledefdisplaycnt = 0;
-                                       }
-
-                                       # Check for rules state
-                                       if ($snortrules{$rulefile}{'Definition'}{$ruledef}{'State'} eq 'Enabled') {
-                                               $ruledefchecked = 'CHECKED';
-                                       }
+                       # Local vars
+                       my $ruledefdisplaycnt = 0;
+                       my $ruledefcnt = keys %{$snortrules{$rulefile}{"Definition"}};
+                       $ruledefcnt++;
+                       $ruledefcnt = $ruledefcnt / 2;
 
-                                       # Create rule file rule's checkbox
-                                       $checkboxname = "SNORT_RULE_$rulefile";
-                                       $checkboxname .= "_$ruledef";
-                                       print "<td class='base'><input type='checkbox' NAME='$checkboxname' $ruledefchecked> $snortrules{$rulefile}{'Definition'}{$ruledef}{'Description'}</td>";
+                       # Loop over rule file rules
+                       foreach my $ruledef (sort {$a <=> $b} keys(%{$snortrules{$rulefile}{"Definition"}})) {
+                               # Local vars
+                               my $ruledefchecked = '';
 
-                                       # Increment count
-                                       $ruledefdisplaycnt++;
+                               # If have display 2 rules, start new row
+                               if (($ruledefdisplaycnt % 2) == 0) {
+                                       print "</tr><tr>";
+                                       $ruledefdisplaycnt = 0;
                                }
 
-                               # If do not have second rule for row, create empty cell
-                               if (($ruledefdisplaycnt % 2) != 0) {
-                                       print "<td class='base'></td>";
+                               # Check for rules state
+                               if ($snortrules{$rulefile}{'Definition'}{$ruledef}{'State'} eq 'Enabled') {
+                                       $ruledefchecked = 'CHECKED';
                                }
 
-                               # Close display table
-                               print "</tr></table></td></tr>";
-               }
+                               # Create rule file rule's checkbox
+                               $checkboxname = "SNORT_RULE_$rulefile";
+                               $checkboxname .= "_$ruledef";
+                               print "<td class='base'><input type='checkbox' NAME='$checkboxname' $ruledefchecked> $snortrules{$rulefile}{'Definition'}{$ruledef}{'Description'}</td>";
+
+                               # Increment count
+                               $ruledefdisplaycnt++;
+                       }
+
+                       # If do not have second rule for row, create empty cell
+                       if (($ruledefdisplaycnt % 2) != 0) {
+                               print "<td class='base'></td>";
+                       }
 
                        # Close display table
-                       print "</table>";
+                       print "</tr></table></td></tr>";
+               }
+
+               # Close display table
+               print "</table>";
 
-                       # Increment ruledisplaycnt
+               # Increment ruledisplaycnt
                $ruledisplaycnt++;
-               }
-       print "</td></tr></table></td></tr></table>";
-       print <<END
+       }
+print "</td></tr></table></td></tr></table>";
+print <<END
 <table width='100%'>
 <tr>
        <td width='100%' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
@@ -500,8 +499,7 @@ if ( -e "${General::swroot}/snort/enable" || -e "${General::swroot}/snort/enable
 </form>
 END
 ;
-       &Header::closebox();
-}
+&Header::closebox();
 
 &Header::closebigbox();
 &Header::closepage();