&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>
</form>
END
;
- &Header::closebox();
-}
+&Header::closebox();
&Header::closebigbox();
&Header::closepage();