}
if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'reset'})
{
- &General::readhasharray("$configfwdfw", \%configfwdfw);
- foreach my $key (sort keys %configfwdfw){
- &checkcounter($configfwdfw{$key}[3],$configfwdfw{$key}[4],,);
- &checkcounter($configfwdfw{$key}[5],$configfwdfw{$key}[6],,);
- &checkcounter($configfwdfw{$key}[14],$configfwdfw{$key}[15],,);
- }
- &General::readhasharray("$configinput", \%configinputfw);
- foreach my $key (sort keys %configinputfw){
- &checkcounter($configinputfw{$key}[3],$configinputfw{$key}[4],,);
- &checkcounter($configinputfw{$key}[5],$configinputfw{$key}[6],,);
- &checkcounter($configinputfw{$key}[14],$configinputfw{$key}[15],,);
- }
-
- system("rm ${General::swroot}/forward/config");
- system("rm ${General::swroot}/forward/input");
- &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings);
- unless (-e "${General::swroot}/forward/config") { system("touch ${General::swroot}/forward/config"); }
- unless (-e "${General::swroot}/forward/input") { system("touch ${General::swroot}/forward/input"); }
- my $MODE1=$fwdfwsettings{'POLICY1'};
- %fwdfwsettings = ();
- $fwdfwsettings{'POLICY'}='MODE2';
- $fwdfwsettings{'POLICY1'}=$MODE1;
- &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings);
- &reread_rules;
-
-}
-if ($fwdfwsettings{'ACTION'} eq 'resetoutgoing')
-{
- &General::readhasharray("$configoutgoing", \%configoutgoingfw);
+ if($fwdfwsettings{'poltype'} eq 'forward'){
+ &General::readhasharray("$configfwdfw", \%configfwdfw);
+ foreach my $key (sort keys %configfwdfw){
+ &checkcounter($configfwdfw{$key}[3],$configfwdfw{$key}[4],,);
+ &checkcounter($configfwdfw{$key}[5],$configfwdfw{$key}[6],,);
+ &checkcounter($configfwdfw{$key}[14],$configfwdfw{$key}[15],,);
+ }
+ &General::readhasharray("$configinput", \%configinputfw);
+ foreach my $key (sort keys %configinputfw){
+ &checkcounter($configinputfw{$key}[3],$configinputfw{$key}[4],,);
+ &checkcounter($configinputfw{$key}[5],$configinputfw{$key}[6],,);
+ &checkcounter($configinputfw{$key}[14],$configinputfw{$key}[15],,);
+ }
+
+ system("rm ${General::swroot}/forward/config");
+ system("rm ${General::swroot}/forward/input");
+ &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings);
+ unless (-e "${General::swroot}/forward/config") { system("touch ${General::swroot}/forward/config"); }
+ unless (-e "${General::swroot}/forward/input") { system("touch ${General::swroot}/forward/input"); }
+ my $MODE1=$fwdfwsettings{'POLICY1'};
+ %fwdfwsettings = ();
+ $fwdfwsettings{'POLICY'}='MODE2';
+ $fwdfwsettings{'POLICY1'}=$MODE1;
+ &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings);
+ &reread_rules;
+ }else{
+ &General::readhasharray("$configoutgoing", \%configoutgoingfw);
foreach my $key (sort keys %configoutgoingfw){
&checkcounter($configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],,);
&checkcounter($configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],,);
$fwdfwsettings{'POLICY1'}='MODE2';
&General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings);
&reread_rules;
-
+ }
}
if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw newrule'})
{
if ($fwdfwsettings{'POLICY1'} eq 'MODE2'){ $selected{'POLICY1'}{'MODE2'} = 'selected'; } else { $selected{'POLICY1'}{'MODE2'} = ''; }
&hint;
&addrule;
- print "<br><hr><br><br>";
+ print "<br><br>";
&Header::openbox('100%', 'center', $Lang::tr{'fwdfw pol title'});
print <<END;
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
<table width='100%' border='0'>
- <tr><td colspan='3' style='font-weight:bold;color:red;'>FORWARD </td></tr>
- <tr><td colspan='3'>$Lang::tr{'fwdfw pol text'}</td></tr>
+ <tr><td colspan='3' style='font-weight:bold;color:red;' align='left'>FORWARD </td></tr>
+ <tr><td colspan='3' align='left'>$Lang::tr{'fwdfw pol text'}</td></tr>
<tr><td colspan='3'><hr /></td></tr>
<tr><td width='15%' align='left'> <select name='POLICY' style="width: 100px">
<option value='MODE1' $selected{'POLICY'}{'MODE1'}>$Lang::tr{'fwdfw pol block'}</option>
<option value='MODE2' $selected{'POLICY'}{'MODE2'}>$Lang::tr{'fwdfw pol allow'}</option></select>
- <td width='45%' align='left'><input type='submit' name='ACTION' value=$Lang::tr{'save'} />
- <td width='45%' align='left'>
+ <input type='submit' name='ACTION' value=$Lang::tr{'save'} /></td><td width='45%' align='right'>
+
END
- print "$Lang::tr{'outgoing firewall reset'}: <input type='submit' name='ACTION' value='$Lang::tr{'reset'}' />";
+ print "$Lang::tr{'outgoing firewall reset'}: <input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /><input type='hidden' name='poltype' value='forward' /></td></tr>";
print "</table></form>";
print"<br><br>";
print <<END;
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
<table width='100%' border='0'>
- <tr><td colspan='3' style='font-weight:bold;color:red;'>OUTGOING </td></tr>
- <tr><td colspan='3'>$Lang::tr{'fwdfw pol text1'}</td></tr>
+ <tr><td colspan='3' style='font-weight:bold;color:red;' align='left'>OUTGOING </td></tr>
+ <tr><td colspan='3' align='left'>$Lang::tr{'fwdfw pol text1'}</td></tr>
<tr><td colspan='3'><hr /></td></tr>
<tr><td width='15%' align='left'> <select name='POLICY1' style="width: 100px">
<option value='MODE1' $selected{'POLICY1'}{'MODE1'}>$Lang::tr{'fwdfw pol block'}</option>
<option value='MODE2' $selected{'POLICY1'}{'MODE2'}>$Lang::tr{'fwdfw pol allow'}</option></select>
- <td width='45%' align='left'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></form>
- <td width='45%' align='left'>
+ <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td><td width='45%' align='right'>
+
END
- print "$Lang::tr{'outgoing firewall reset'}: <form method='post' action='$ENV{'SCRIPT_NAME'}' style='display:inline'><input type='submit' value='$Lang::tr{'reset'}' /><input type='hidden' name='ACTION' value='resetoutgoing' />";
+ print "$Lang::tr{'outgoing firewall reset'}: <input type='submit' name='ACTION' value='$Lang::tr{'reset'}' /><input type='hidden' name='poltype' value='outgoing' /></tr>";
print "</table></form>";
&Header::closebox();
}
$fwdfwsettings{'SRC_PORT'}=~ s/\|/,/g;
print<<END;
</select></td><td align='right'><input type='text' name='SRC_PORT' value='$fwdfwsettings{'SRC_PORT'}' maxlength='20' size='18' ></td></tr>
- <tr><td></td><td></td><td></td><td></td><td nowrap='nowrap'>$Lang::tr{'fwhost icmptype'}</td><td colspan='2'><select name='ICMP_TYPES'>
+ <tr><td></td><td></td><td></td><td></td><td nowrap='nowrap'>$Lang::tr{'fwhost icmptype'}</td><td colspan='2'><select name='ICMP_TYPES' style='width:230px;'>
END
&General::readhasharray("${General::swroot}/fwhosts/icmp-types", \%icmptypes);
print"<option>All ICMP-Types</option>";
}
}
print<<END;
- </select></td></tr></table><hr>
+ </select></td></tr></table><br><hr>
END
&Header::closebox();
}
print<<END;
</select></td></tr>
- <tr><td colspan='2'></td><td><input type='radio' name='grp3' value='cust_srvgrp' $checked{'grp3'}{'cust_srvgrp'}></td><td nowrap='nowrap'>$Lang::tr{'fwhost cust srvgrp'}:</td><td colspan='2'><select name='cust_srvgrp'style='min-width:230px;' >
+ <tr><td colspan='2'></td><td><input type='radio' name='grp3' value='cust_srvgrp' $checked{'grp3'}{'cust_srvgrp'}></td><td nowrap='nowrap'>$Lang::tr{'fwhost cust srvgrp'}:</td><td colspan='2'><select name='cust_srvgrp' style='min-width:230px;' >
END
&General::readhasharray("$configsrvgrp", \%customservicegrp);
my $helper;
$fwdfwsettings{'TGT_PORT'} =~ s/\|/,/g;
print<<END;
</select></td><td align='right'><input type='text' name='TGT_PORT' value='$fwdfwsettings{'TGT_PORT'}' maxlength='20' size='18' ></td></tr>
- <tr><td colspan='2'></td><td></td><td>$Lang::tr{'fwhost icmptype'}</td><td colspan='2'><select name='ICMP_TGT'>
+ <tr><td colspan='2'></td><td></td><td>$Lang::tr{'fwhost icmptype'}</td><td colspan='2'><select name='ICMP_TGT' style='min-width:230px;'>
END
&General::readhasharray("${General::swroot}/fwhosts/icmp-types", \%icmptypes);
print"<option>All ICMP-Types</option>";
}
print<<END;
</select></td></tr>
- </table><hr><br><br>
+ </table><br><hr>
END
+ &Header::closebox;
#---Activate/logging/remark-------------------------------------
&Header::openbox('100%', 'left', $Lang::tr{'fwdfw additional'});
print<<END;
</table><table width='100%'>
<tr><td width='1%'><input type='checkbox' name='ACTIVE' value='ON' $checked{'ACTIVE'}{'ON'}></td><td>$Lang::tr{'fwdfw rule activate'}</td></tr>
<tr><td width='1%'><input type='checkbox' name='LOG' value='ON' $checked{'LOG'}{'ON'} ></td><td>$Lang::tr{'fwdfw log rule'}</td></tr>
- </table><hr><br>
+ </table><br><hr>
END
&Header::closebox();
#---ADD TIMEFRAME-----------------------------------------------
}
print<<END;
</select></td></tr>
- </table><hr>
+ </table><br><hr>
END
- &Header::closebox();
+
#---ACTION------------------------------------------------------
if($fwdfwsettings{'updatefwrule'} ne 'on'){
print<<END;
my $title1=shift;
my $go='';
&General::get_aliases(\%aliases);
+ &General::readhasharray("$confighost", \%customhost);
&General::readhasharray("$config", $hash);
if( ! -z $config){
+ if ($title1 eq $Lang::tr{'external access'} || $title1 eq 'Outgoing'){print"<br><br>";}
&Header::openbox('100%', 'left',$title);
my $count=0;
my ($gif,$log);
my @tmpsrc=();
my $coloryellow='';
print"<b>$title1</b><br>";
- print"<table width='100%' cellspacing='1' rules='none'; padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;'>";
- print"<tr><td align='center'><b>#</td><td ></td><td align='center'><b>$Lang::tr{'fwdfw source'}</td><td><b>Log</td><td align='center'><b>$Lang::tr{'fwdfw target'}</td><td align='center'><b>$Lang::tr{'protocol'}</b></td><td align='center'><b>$Lang::tr{'remark'}</td><td align='center' colspan='6'><b>$Lang::tr{'fwdfw action'}</td></tr>";
+ print"<table width='100%' cellspacing='0' style=' padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;'>";
+ print"<tr><td align='center'><b>#</td><td ></td><td align='center'><b>$Lang::tr{'fwdfw source'}</td><td><b>Log</td><td align='center'><b>$Lang::tr{'fwdfw target'}</td><td align='center'><b>$Lang::tr{'protocol'}</b></td><td align='center'><b>$Lang::tr{'fwdfw time'}</td><td align='center' colspan='6'><b>$Lang::tr{'fwdfw action'}</td></tr>";
foreach my $key (sort {$a <=> $b} keys %$hash){
+ $tdcolor='';
@tmpsrc=();
#check if vpn hosts/nets have been deleted
if($$hash{$key}[3] =~ /ipsec/i || $$hash{$key}[3] =~ /ovpn/i){
$$hash{$key}[2]='';
}
}
- $$hash{$key}[3]='';
- $$hash{$key}[5]='';
+ #$$hash{$key}[3]='';
+ #$$hash{$key}[5]='';
}
$$hash{'ACTIVE'}=$$hash{$key}[2];
$count++;
}
print"<tr bgcolor='$color' >";
print<<END;
- <td align='right' width='15'>$key</td>
+ <td align='right' width='15'><b>$key</b></td>
END
if ($$hash{$key}[0] eq 'ACCEPT'){
$ruletype='A';
$rulecolor=$color{'color16'};
}
print"<td bgcolor='$rulecolor' align='center' width='20'><span title='$tooltip'><b>$ruletype</b></span></td>";
- &getcolor($$hash{$key}[4]);
+ &getcolor($$hash{$key}[3],$$hash{$key}[4],\%customhost);
print"<td align='center' width='160' $tdcolor>";
if ($$hash{$key}[3] eq 'std_net_src'){
print &get_name($$hash{$key}[4]);
<input type='hidden' name='ACTION' value='$Lang::tr{'fwdfw togglelog'}' />
</td></form>
END
- &getcolor($$hash{$key}[6]);
+ &getcolor($$hash{$key}[5],$$hash{$key}[6],\%customhost);
print<<END;
<td align='center' width='160' $tdcolor>
END
}else{
print $$hash{$key}[6];
}
+ $tdcolor='';
&gettgtport(\%$hash,$key);
print"</td>";
#Get Protocol
print"<td align='center' width='100'>$weekdays   $$hash{$key}[26] - $$hash{$key}[27]</td>";
}
}else{
- print"<td></td>";
+ print"<td align='center'>24/7</td>";
}
if($$hash{$key}[2] eq 'ON'){
$gif="/images/on.gif"
print"<td width='25'><input type='image' img src='/images/down.gif' style='visibility:hidden;'></td></tr>";
}
#REMARK
- print"<tr bgcolor='$color'><td colspan='13' style='border-bottom: 1px solid black'>";
- print"<b>$Lang::tr{'remark'}:</b> $$hash{$key}[16]</td></tr>";
+ if ($optionsfw{'SHOWREMARK'} eq 'on'){
+ print"<tr bgcolor='$color'><td colspan='13'>";
+ print"<b>$Lang::tr{'remark'}:</b> $$hash{$key}[16]</td></tr>";
+ }
}
print"</table>";
&Header::closebox();
+ print "<hr>";
}
}
sub getcolor
{
+ my $nettype=shift;
my $val=shift;
+ my $hash=shift;
if($optionsfw{'SHOWCOLORS'} eq 'on'){
+ #VPN networks
+ if ($nettype eq 'ovpn_n2n_src' || $nettype eq 'ovpn_n2n_tgt' || $nettype eq 'ovpn_net_src' || $nettype eq 'ovpn_net_tgt'|| $nettype eq 'ovpn_host_src' || $nettype eq 'ovpn_host_tgt'){
+ $tdcolor="style='border: 2px solid $Header::colourovpn;'";
+ return;
+ }
+ if ($nettype eq 'ipsec_net_src' || $nettype eq 'ipsec_net_tgt'){
+ $tdcolor="style='border: 2px solid $Header::colourvpn;'";
+ return;
+ }
+ #custom Hosts
+ if ($nettype eq 'cust_host_src' || $nettype eq 'cust_host_tgt'){
+ foreach my $key (sort keys %$hash){
+ if ($$hash{$key}[0] eq $val){
+ $val=$$hash{$key}[2];
+ }
+ }
+ }
+ #ALIASE
foreach my $alias (sort keys %aliases)
{
if ($val eq $alias){
return;
}
}
+ #standard networks
if ($val eq 'GREEN'){
- $tdcolor="style='border: 2px solid green;'";
+ $tdcolor="style='border: 2px solid $Header::colourgreen;'";
}elsif ($val eq 'ORANGE'){
- $tdcolor="style='border: 2px solid orange;'";
+ $tdcolor="style='border: 2px solid $Header::colourorange;'";
}elsif ($val eq 'BLUE'){
- $tdcolor="style='border: 2px solid blue;'";
+ $tdcolor="style='border: 2px solid $Header::colourblue;'";
+ }elsif ($val eq 'RED'){
+ $tdcolor="style='border: 2px solid $Header::colourred;'";
}elsif ($val eq 'IPFire' ){
- $tdcolor="style='border: 2px solid red;'";
+ $tdcolor="style='border: 2px solid $Header::colourred;'";
}elsif($val =~ /^(.*?)\/(.*?)$/){
my ($sip,$scidr) = split ("/",$val);
if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){
- $tdcolor="style='border: 2px solid orange;'";
+ $tdcolor="style='border: 2px solid $Header::colourorange;'";
}
if ( &General::IpInSubnet($sip,$netsettings{'GREEN_ADDRESS'},$netsettings{'GREEN_NETMASK'})){
- $tdcolor="style='border: 2px solid green;'";
+ $tdcolor="style='border: 2px solid $Header::colourgreen;'";
}
if ( &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){
- $tdcolor="style='border: 2px solid blue;'";
- }
- if ( &General::IpInSubnet($sip,$netsettings{'RED_ADDRESS'},$netsettings{'RED_NETMASK'})){
- $tdcolor="style='border: 2px solid red;'";
+ $tdcolor="style='border: 2px solid $Header::colourblue;'";
}
}elsif ($val eq 'Default IP'){
$tdcolor="style='border: 2px solid red;'";