my %optionsfw=();
my %ifaces=();
-my $VERSION='0.9.9.11';
+my $VERSION='0.9.9.13';
my $color;
my $confignet = "${General::swroot}/fwhosts/customnetworks";
my $confighost = "${General::swroot}/fwhosts/customhosts";
$fwdfwsettings{'copyfwrule'}='on';
&newrule;
}
-if ($fwdfwsettings{'ACTION'} eq '')
+if ($fwdfwsettings{'ACTION'} eq '' or $fwdfwsettings{'ACTION'} eq 'reset')
{
&base;
}
if($optionsfw{'SHOWCOLORS'} eq 'on'){
#standard networks
if ($val eq 'GREEN'){
- $tdcolor="style='border: 1px solid $Header::colourgreen;'";
+ $tdcolor="style='background-color: $Header::colourgreen;color:white;'";
return;
}elsif ($val eq 'ORANGE'){
- $tdcolor="style='border: 1px solid $Header::colourorange;'";
+ $tdcolor="style='background-color: $Header::colourorange;color:white;'";
return;
}elsif ($val eq 'BLUE'){
- $tdcolor="style='border: 1px solid $Header::colourblue;'";
+ $tdcolor="style='background-color: $Header::colourblue;color:white;'";
return;
}elsif ($val eq 'RED' ||$val eq 'RED1' ){
- $tdcolor="style='border: 1px solid $Header::colourred;'";
+ $tdcolor="style='background-color: $Header::colourred;color:white;'";
return;
}elsif ($val eq 'IPFire' ){
- $tdcolor="style='border: 1px solid $Header::colourred;'";
+ $tdcolor="style='background-color: $Header::colourred;color:white;'";
return;
}elsif($val =~ /^(.*?)\/(.*?)$/){
my ($sip,$scidr) = split ("/",$val);
if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){
- $tdcolor="style='border: 1px solid $Header::colourorange;'";
+ $tdcolor="style='background-color: $Header::colourorange;color:white;'";
return;
}
if ( &General::IpInSubnet($sip,$netsettings{'GREEN_ADDRESS'},$netsettings{'GREEN_NETMASK'})){
- $tdcolor="style='border: 1px solid $Header::colourgreen;'";
+ $tdcolor="style='background-color: $Header::colourgreen;color:white;'";
return;
}
if ( &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){
- $tdcolor="style='border: 1px solid $Header::colourblue;'";
+ $tdcolor="style='background-color: $Header::colourblue;color:white;'";
return;
}
}elsif ($val eq 'Default IP'){
- $tdcolor="style='border: 1px solid $Header::colourred;'";
+ $tdcolor="style='background-color: $Header::colourred;color:white;'";
return;
}
#Check if a manual IP is part of a VPN
my ($a,$b) = split("/",$ovpnsettings{'DOVPN_SUBNET'});
my ($c,$d) = split("/",$val);
if (&General::IpInSubnet($c,$a,$b)){
- $tdcolor="style='border: 1px solid $Header::colourovpn;'";
+ $tdcolor="style='background-color: $Header::colourovpn;color:white;'";
return;
}
#Check if IP is part of OpenVPN static subnet
my ($a,$b) = split("/",$ccdnet{$key}[1]);
$b =&General::iporsubtodec($b);
if (&General::IpInSubnet($c,$a,$b)){
- $tdcolor="style='border: 1px solid $Header::colourovpn;'";
+ $tdcolor="style='background-color: $Header::colourovpn;color:white;'";
return;
}
}
if ($ccdhost{$key}[3] eq 'net'){
my ($a,$b) = split("/",$ccdhost{$key}[11]);
if (&General::IpInSubnet($c,$a,$b)){
- $tdcolor="style='border: 1px solid $Header::colourovpn;'";
+ $tdcolor="style='background-color: $Header::colourovpn;color:white;'";
return;
}
}
my ($a,$b) = split("/",$ipsecsettings{'RW_NET'});
$b=&General::iporsubtodec($b);
if (&General::IpInSubnet($c,$a,$b)){
- $tdcolor="style='border: 1px solid $Header::colourvpn;'";
+ $tdcolor="style='background-color: $Header::colourvpn;color:white;'";
return;
}
}
foreach my $key (sort keys %ipsecconf){
my ($a,$b) = split("/",$ipsecconf{$key}[11]);
if (&General::IpInSubnet($c,$a,$b)){
- $tdcolor="style='border: 1px solid $Header::colourvpn;'";
+ $tdcolor="style='background-color: $Header::colourvpn;color:white;'";
return;
}
}
}
#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: 1px solid $Header::colourovpn;'";
+ $tdcolor="style='background-color: $Header::colourovpn;color:white;'";
return;
}
if ($nettype eq 'ipsec_net_src' || $nettype eq 'ipsec_net_tgt'){
- $tdcolor="style='border: 1px solid $Header::colourvpn;'";
+ $tdcolor="style='background-color: $Header::colourvpn;color:white;'";
return;
}
#custom Hosts
foreach my $alias (sort keys %aliases)
{
if ($val eq $alias){
- $tdcolor="style='border: 1px solid $Header::colourred;'";
+ $tdcolor="style='background-color:$Header::colourred;color:white;'";
return;
}
}
<tr><td width='1%'><input type='checkbox' name='USE_NAT' id='USE_NAT' value='ON' $checked{'USE_NAT'}{'ON'}></td><td width='15%'>$Lang::tr{'fwdfw use nat'}</td><td colspan='5'></td></tr>
<tr><td colspan='2'></td><td width='1%'><input type='radio' name='nat' id='dnat' value='dnat' checked ></td><td width='50%'>$Lang::tr{'fwdfw dnat'}</td>
END
- print"<td width='8%'>IPFire: </td><td width='20%' align='right'><select name='dnat' style='width:140px;'>";
+ print"<td width='8%'>Firewall: </td><td width='20%' align='right'><select name='dnat' style='width:140px;'>";
print "<option value='ALL' $selected{'dnat'}{$Lang::tr{'all'}}>$Lang::tr{'all'}</option>";
print "<option value='Default IP' $selected{'dnat'}{'Default IP'}>Default IP</option>";
foreach my $alias (sort keys %aliases)
print"<tr><td colspan='8'><br></td></tr>";
#SNAT
print"<tr><td colspan='2'></td><td width='1%'><input type='radio' name='nat' id='snat' value='snat' $checked{'nat'}{'snat'}></td><td width='20%'>$Lang::tr{'fwdfw snat'}</td>";
- print"<td width='8%'>IPFire: </td><td width='20%' align='right'><select name='snat' style='width:140px;'>";
+ print"<td width='8%'>Firewall: </td><td width='20%' align='right'><select name='snat' style='width:140px;'>";
foreach my $alias (sort keys %aliases)
{
print "<option value='$alias' $selected{'snat'}{$alias}>$alias</option>";
print"<tr bgcolor='FFFFFF'><td colspan='13' height='1'></td></tr>";
}
print"</table>";
+ #SHOW FINAL RULE
print "<table width='100%'rules='cols' border='1'>";
my $col;
if ($config eq '/var/ipfire/forward/config'){
}
&show_defaultrules($col,$pol);
}elsif ($config eq '/var/ipfire/forward/outgoing'){
- my $pol='fwdfw '.$fwdfwsettings{'POLICY1'};
if ($fwdfwsettings{'POLICY1'} eq 'MODE1'){
$col="bgcolor='darkred'";
+ print"<tr><td $col width='20%' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td $col align='center'><font color='#FFFFFF' >$Lang::tr{'fwdfw pol block'}</font></td></tr>";
}else{
$col="bgcolor='green'";
+ print"<tr><td $col width='20%' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td $col align='center'><font color='#FFFFFF' >$Lang::tr{'fwdfw pol allow'}</font></td></tr>";
}
- print"<tr><td $col width='20%' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td $col><font color='#FFFFFF' align='center'>$Lang::tr{$pol}</font></td></tr>";
}else{
- print"<tr><td bgcolor='darkred' width='20%' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td bgcolor='darkred' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw MODE1'}</font></td></tr>";
+ print"<tr><td bgcolor='darkred' width='20%' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td bgcolor='darkred' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw pol block'}</font></td></tr>";
}
print"</table>";
print "<hr>";
my $pol='fwdfw '.$fwdfwsettings{'POLICY1'};
if ($fwdfwsettings{'POLICY1'} eq 'MODE1'){
$col="bgcolor='darkred'";
+ print"<tr><td $col align='center' width='20%'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td $col align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw pol block'}</font></td></tr>";
}else{
$col="bgcolor='green'";
+ print"<tr><td $col align='center' width='20%'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td $col align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw pol allow'}</font></td></tr>";
}
- print"<tr><td $col align='center' width='20%'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td $col align='center'><font color='#FFFFFF'>$Lang::tr{$pol}</font></td></tr>";
}else{
- print"<tr><td bgcolor='darkred' align='center' width='20%'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td align='center'>$Lang::tr{'fwdfw MODE1'}</font></td></tr>";
+ print "<table width='100%' rules='cols' border='1'>";
+ print"<tr><td bgcolor='darkred' align='center' width='20%'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td align='center' bgcolor='darkred'><font color='#FFFFFF'>$Lang::tr{'fwdfw pol block'}</font></td></tr>";
}
print"</table><br><br>";
}
my $col=shift;
my $pol=shift;
#STANDARD RULES (From WIKI)
- print"</table><br>";
- print "<table width='100%' rules='cols' border='1' >";
- if ($col eq "bgcolor='green'"){
- my $blue = "<font color=$Header::colourblue> $Lang::tr{'blue'}</font> ($Lang::tr{'fwdfw pol block'})" if (&Header::blue_used());
- my $orange = "<font color=$Header::colourorange> $Lang::tr{'orange'}</font> ($Lang::tr{'fwdfw pol block'})" if (&Header::orange_used());
- my $blue1 = "<font color=$Header::colourblue> $Lang::tr{'blue'}</font> ($Lang::tr{'fwdfw pol allow'})" if (&Header::blue_used());
- my $orange1 = "<font color=$Header::colourorange> $Lang::tr{'orange'}</font> ($Lang::tr{'fwdfw pol allow'})" if (&Header::orange_used());
- print"<tr><td align='center'><font color='#000000'>$Lang::tr{'green'}</td><td align='center'> <font color=$Header::colourred> $Lang::tr{'red'}</font> ($Lang::tr{'fwdfw pol allow'})</td>";
- print"<td align='center'>$orange1</td>" if (&Header::orange_used());
- print"<td align='center'>$blue1</td>" if (&Header::blue_used());
- print"</tr>";
- if (&Header::orange_used()){
- print"<tr><td align='center' width='20%'><font color='#000000'>$Lang::tr{'orange'}</td><td align='center'> <font color=$Header::colourred> $Lang::tr{'red'}</font> ($Lang::tr{'fwdfw pol allow'})</td><td align='center'><font color=$Header::colourgreen> $Lang::tr{'green'}</font> ($Lang::tr{'fwdfw pol block'})</td>";
- print"<td align='center'>$blue</td>" if (&Header::blue_used());
- print"</tr>";
- }
- if (&Header::blue_used()){
- print"<tr><td align='center'><font color='#000000'>$Lang::tr{'blue'}</td><td align='center'> <font color=$Header::colourred> $Lang::tr{'red'}</font> ($Lang::tr{'fwdfw pol allow'})</td>";
- print"<td align='center'>$orange</td>" if (&Header::orange_used());
- print"<td align='center'><font color=$Header::colourgreen> $Lang::tr{'green'}</font> ($Lang::tr{'fwdfw pol block'})</td>";
- print"</tr>";
- }
- print"<tr><td $col align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'} </font></td><td $col colspan='3' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw pol allow'}</font></td></tr>";
- }elsif($col eq "bgcolor='darkred'"){
- print"<tr><td $col width='20%' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td $col align='center'><font color='#FFFFFF'>$Lang::tr{$pol}</font></td></tr>";
- }
+ print"</table>";
+ if ($col eq "bgcolor='green'"){
+ print "<br><table width='100%' rules='cols' border='1' >";
+ my $blue = "<font color=$Header::colourblue> $Lang::tr{'blue'}</font> ($Lang::tr{'fwdfw pol block'})" if (&Header::blue_used());
+ my $orange = "<font color=$Header::colourorange> $Lang::tr{'orange'}</font> ($Lang::tr{'fwdfw pol block'})" if (&Header::orange_used());
+ my $blue1 = "<font color=$Header::colourblue> $Lang::tr{'blue'}</font> ($Lang::tr{'fwdfw pol allow'})" if (&Header::blue_used());
+ my $orange1 = "<font color=$Header::colourorange> $Lang::tr{'orange'}</font> ($Lang::tr{'fwdfw pol allow'})" if (&Header::orange_used());
+ print"<tr><td align='center'><font color='#000000'>$Lang::tr{'green'}</td><td align='center'> <font color=$Header::colourred> $Lang::tr{'red'}</font> ($Lang::tr{'fwdfw pol allow'})</td>";
+ print"<td align='center'>$orange1</td>" if (&Header::orange_used());
+ print"<td align='center'>$blue1</td>" if (&Header::blue_used());
+ print"</tr>";
+ if (&Header::orange_used()){
+ print"<tr><td align='center' width='20%'><font color='#000000'>$Lang::tr{'orange'}</td><td align='center'> <font color=$Header::colourred> $Lang::tr{'red'}</font> ($Lang::tr{'fwdfw pol allow'})</td><td align='center'><font color=$Header::colourgreen> $Lang::tr{'green'}</font> ($Lang::tr{'fwdfw pol block'})</td>";
+ print"<td align='center'>$blue</td>" if (&Header::blue_used());
+ print"</tr>";
+ }
+ if (&Header::blue_used()){
+ print"<tr><td align='center'><font color='#000000'>$Lang::tr{'blue'}</td><td align='center'> <font color=$Header::colourred> $Lang::tr{'red'}</font> ($Lang::tr{'fwdfw pol allow'})</td>";
+ print"<td align='center'>$orange</td>" if (&Header::orange_used());
+ print"<td align='center'><font color=$Header::colourgreen> $Lang::tr{'green'}</font> ($Lang::tr{'fwdfw pol block'})</td>";
+ print"</tr>";
+ }
+ print"<tr><td $col align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'} </font></td><td $col colspan='3' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw pol allow'}</font></td></tr>";
+ }elsif($col eq "bgcolor='darkred'"){
+ print "<table width='100%' rules='cols' border='1' >";
+ print"<tr><td $col width='20%' align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw final_rule'}</td><td $col align='center'><font color='#FFFFFF'>$Lang::tr{'fwdfw pol block'}</font></td></tr>";
+ }
}