]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - html/cgi-bin/forwardfw.cgi
Forward Firewall: added GPL header to all files
[people/teissler/ipfire-2.x.git] / html / cgi-bin / forwardfw.cgi
index fd00c156d3fd1210f81fb26b715d097d170777da..88e16086f9af0b2c74228a1d34f9a6a962c9726c 100755 (executable)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2012                                                                                                 #
+# Copyright (C) 2013                                                          #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -18,7 +18,8 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
 #                                                                             #
 ###############################################################################
-
+# Author: Alexander Marx (amarx@ipfire.org)                                   #
+###############################################################################
 
 use strict;
 use Sort::Naturally;
@@ -64,7 +65,7 @@ my %aliases=();
 my %optionsfw=();
 my %ifaces=();
 
-my $VERSION='0.9.9.12';
+my $VERSION='0.9.9.13';
 my $color;
 my $confignet          = "${General::swroot}/fwhosts/customnetworks";
 my $confighost         = "${General::swroot}/fwhosts/customhosts";
@@ -378,7 +379,7 @@ if ($fwdfwsettings{'ACTION'} eq 'copyrule')
        $fwdfwsettings{'copyfwrule'}='on';
        &newrule;
 }
-if ($fwdfwsettings{'ACTION'} eq '')
+if ($fwdfwsettings{'ACTION'} eq '' or $fwdfwsettings{'ACTION'} eq 'reset')
 {
        &base;
 }
@@ -433,7 +434,9 @@ sub checksource
                }
 
                if ($fwdfwsettings{'isip'} ne 'on'){
-                       if (&General::validmac($fwdfwsettings{'src_addr'})){$fwdfwsettings{'ismac'}='on';}
+                       if (&General::validmac($fwdfwsettings{'src_addr'})){
+                               $fwdfwsettings{'ismac'}='on';
+                       }
                }
                if ($fwdfwsettings{'isip'} eq 'on'){
                        ##check if ip is valid
@@ -445,12 +448,6 @@ sub checksource
                        $ip=&General::ip2dec($ip);
                        $ip=&General::dec2ip($ip);
                        #check if net or broadcast
-                       my @tmp= split (/\./,$ip);
-                       if (($tmp[3] eq "0") || ($tmp[3] eq "255"))
-                       {
-                               $errormessage=$Lang::tr{'fwhost err hostip'}."<br>";
-                               return $errormessage;
-                       }
                        $fwdfwsettings{'src_addr'}="$ip/$subnet";
                        if(!&General::validipandmask($fwdfwsettings{'src_addr'})){
                                $errormessage.=$Lang::tr{'fwdfw err src_addr'}."<br>";
@@ -1250,36 +1247,36 @@ sub getcolor
        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 
@@ -1288,7 +1285,7 @@ sub getcolor
                        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
@@ -1296,7 +1293,7 @@ sub getcolor
                                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;
                                }
                        }
@@ -1305,7 +1302,7 @@ sub getcolor
                                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;
                                        }
                                }
@@ -1315,7 +1312,7 @@ sub getcolor
                                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;
                                }
                        }
@@ -1323,18 +1320,18 @@ sub getcolor
                        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
@@ -1349,7 +1346,7 @@ sub getcolor
                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;
                        }
                }
@@ -1535,7 +1532,7 @@ sub newrule
        #------SOURCE-------------------------------------------------------
        print<<END;
                <table width='100%' border='0'>
-               <tr><td width='1%'><input type='radio' name='grp1' value='src_addr'  checked></td><td width='60%'>$Lang::tr{'fwdfw sourceip'}<input type='TEXT' name='src_addr' value='$fwdfwsettings{'src_addr'}' size='16' maxlength='17' ></td><td width='1%'><input type='radio' name='grp1' id='ipfire_src' value='ipfire_src'  $checked{'grp1'}{'ipfire_src'}></td><td><b>Firewall</b></td>
+               <tr><td width='1%'><input type='radio' name='grp1' value='src_addr'  checked></td><td width='60%'>$Lang::tr{'fwdfw sourceip'}<input type='TEXT' name='src_addr' value='$fwdfwsettings{'src_addr'}' size='16' maxlength='18' ></td><td width='1%'><input type='radio' name='grp1' id='ipfire_src' value='ipfire_src'  $checked{'grp1'}{'ipfire_src'}></td><td><b>Firewall</b></td>
 END
                print"<td align='right'><select name='ipfire_src' style='width:200px;'>";
                print "<option value='ALL' $selected{'ipfire_src'}{'ALL'}>$Lang::tr{'all'}</option>";
@@ -1593,7 +1590,7 @@ END
                &Header::openbox('100%', 'left', $Lang::tr{'fwdfw target'});
                print<<END;
                <table width='100%' border='0'> 
-               <tr><td width='1%'><input type='radio' name='grp2' value='tgt_addr'  checked></td><td width='60%' nowrap='nowrap'>$Lang::tr{'fwdfw targetip'}<input type='TEXT' name='tgt_addr' value='$fwdfwsettings{'tgt_addr'}' size='16' maxlength='17'><td width='1%'><input type='radio' name='grp2' id='ipfire' value='ipfire'  $checked{'grp2'}{'ipfire'}></td><td><b>Firewall</b></td>
+               <tr><td width='1%'><input type='radio' name='grp2' value='tgt_addr'  checked></td><td width='60%' nowrap='nowrap'>$Lang::tr{'fwdfw targetip'}<input type='TEXT' name='tgt_addr' value='$fwdfwsettings{'tgt_addr'}' size='16' maxlength='18'><td width='1%'><input type='radio' name='grp2' id='ipfire' value='ipfire'  $checked{'grp2'}{'ipfire'}></td><td><b>Firewall</b></td>
 END
                print"<td align='right'><select name='ipfire' style='width:200px;'>";
                print "<option value='ALL' $selected{'ipfire'}{'ALL'}>$Lang::tr{'all'}</option>";
@@ -2393,7 +2390,6 @@ END
                                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>";
                        }
                }else{
-                       print"uzlputz daneben";
                        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>";