#!/usr/bin/perl # list_rules.cgi # Display a list of all active rules require './itsecur-lib.pl'; &can_use_error("rules"); &header($text{'rules_title'}, "", undef, undef, undef, undef, &apply_button()); print "
\n"; # 0-No. 1-Source,2-Destination, 3-Services, 4-Time, 5-Action, 6-Enabled, 7-Comment local @CW=( "5%", "15%", "15%", "20%", "5%", "5%", "5%", "20%"); $C_drop="#FFCCcc"; $C_reject="#FFDDAA"; $C_accept=""; $C_disabled="#FF3333"; $C_separator="#ffffcc"; local $Row_Color=""; @rules = &list_rules(); @servs = &list_services(); $edit = &can_edit("rules"); $times = &supports_time() && &list_times() > 0; if (@rules) { if ($edit) { print "$text{'rules_add'}\n"; print " " x 2; print "$text{'rules_sadd'}\n"; print "
\n"; print "
\n"; } $cols = $times ? 8 : 7; print "\n"; print " ", " ", " ", " ", " ", ($times ? " " : ""), " ", " ", ($config{'show_desc'} ? " " : ""), "\n"; foreach $r (@rules) { if ($r->{'sep'}){ $Row_Color="bgcolor=\"$C_separator\" "; } elsif (!$r->{'enabled'}){ $Row_Color="bgcolor=\"$C_disabled\" "; } elsif ( $r->{'action'} eq "drop" ){ $Row_Color="bgcolor=\"$C_drop\" "; } elsif ( $r->{'action'} eq "reject" ){ $Row_Color="bgcolor=\"$C_reject\" "; } else { $Row_Color=""; } # case('accept') {} # case('allow') {} # case('drop') {} #case('reject') {} #case('ignore') {} print "\n"; if ($r->{'sep'}) { # Actually a separator - just show it's description print "\n"; } else { # Show full rule details print "\n"; print "\n"; print "\n"; print "\n"; if ($times) { print "\n"; } print "\n"; print "\n"; if ($config{'show_desc'}) { print "\n"; } else { if ($r eq $rules[0] || !$edit) { print "\n"; } else { print "", "\n"; } } } print "\n"; } print "
$text{'rule_num'}$text{'rule_source'}$text{'rule_dest'}$text{'rules_service'}$text{'rule_time'}$text{'rule_action'}$text{'rule_enabled'}$text{'rules_desc'}$text{'rules_move'}
$r->{'desc'}"; if ($edit) { print "{'index'}> "; } print "$r->{'num'}", &group_names_link($r->{'source'}, 'rules'), "", &group_names_link($r->{'dest'}, 'rules', &allow_action($r) ? 'dest' : undef), "",&protocol_names($r->{'service'},\@servs),"",$r->{'time'} eq '*' ? $text{'rule_anytime'} : $r->{'time'},"",$text{'rule_'.$r->{'action'}}, $r->{'log'} ? " $text{'rules_log'}" : "","",$r->{'enabled'} ? $text{'yes'} : "$text{'no'}", "",$r->{'desc'} eq "*" ? "
" : $r->{'desc'},"
\n"; } else { print "", "\n"; } if ($r eq $rules[$#rules] || !$edit) { print "
\n"; } else { print "$text{'rules_none'}

\n"; } if ($edit) { print "$text{'rules_add'}\n"; print " " x 2; print "$text{'rules_sadd'}\n"; print "

\n"; } if ($edit && @rules) { print "\n"; print "\n"; print " \n"; print "\n"; print "\n"; print " \n"; print "\n"; print "

\n"; } print "
\n"; &footer("", $text{'index_return'});