X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Fforwardfw.cgi;h=7e1f4f4272578e7a849c1651d5102873fb911eac;hb=3b2ad4a1bddd2185da6bd500be39ee19694399a7;hp=584f7f093adc6702ecd95ad3fcd0c90e83165788;hpb=ed618226bb7f03b3a12155d8f2d1bcdb58adb566;p=people%2Fteissler%2Fipfire-2.x.git
diff --git a/html/cgi-bin/forwardfw.cgi b/html/cgi-bin/forwardfw.cgi
index 584f7f093..7e1f4f427 100755
--- a/html/cgi-bin/forwardfw.cgi
+++ b/html/cgi-bin/forwardfw.cgi
@@ -31,6 +31,7 @@
###############################################################################
use strict;
+use Sort::Naturally;
no warnings 'uninitialized';
# enable only the following on debugging purpose
#use warnings;
@@ -77,7 +78,7 @@ my %aliases=();
my %optionsfw=();
my %ifaces=();
-my $VERSION='0.9.9.3';
+my $VERSION='0.9.9.8';
my $color;
my $confignet = "${General::swroot}/fwhosts/customnetworks";
my $confighost = "${General::swroot}/fwhosts/customhosts";
@@ -107,23 +108,15 @@ my @protocols;
&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
&General::readhash($fwoptions, \%optionsfw);
&General::readhash($ifacesettings, \%ifaces);
-
+&General::readhash("$configovpn", \%ovpnsettings);
+&General::readhash("$configipsecrw", \%ipsecsettings);
+&General::readhasharray("$configipsec", \%ipsecconf);
&Header::showhttpheaders();
&Header::getcgihash(\%fwdfwsettings);
&Header::openpage($Lang::tr{'fwdfw menu'}, 1, '');
&Header::openbigbox('100%', 'center',$errormessage);
#### ACTION #####
-if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'save'})
-{
- my $MODE = $fwdfwsettings{'POLICY'};
- my $MODE1 = $fwdfwsettings{'POLICY1'};
- %fwdfwsettings = ();
- $fwdfwsettings{'POLICY'} = "$MODE";
- $fwdfwsettings{'POLICY1'} = "$MODE1";
- &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings);
- &reread_rules;
-}
if ($fwdfwsettings{'ACTION'} eq 'saverule')
{
&General::readhasharray("$configfwdfw", \%configfwdfw);
@@ -180,8 +173,6 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){
$fwdfwsettings{'oldrulenumber'}=$maxkey;
foreach my $key (sort keys %confignatfw){
- #print"$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'snatport'},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}
";
- #print"$confignatfw{$key}[0],$confignatfw{$key}[2],$confignatfw{$key}[3],$confignatfw{$key}[4],$confignatfw{$key}[5],$confignatfw{$key}[6],$confignatfw{$key}[7],$confignatfw{$key}[8],$confignatfw{$key}[9],$confignatfw{$key}[10],$confignatfw{$key}[11],$confignatfw{$key}[12],$confignatfw{$key}[13],$confignatfw{$key}[14],$confignatfw{$key}[15],$confignatfw{$key}[17],$confignatfw{$key}[19],$confignatfw{$key}[20],$confignatfw{$key}[21],$confignatfw{$key}[22],$confignatfw{$key}[23],$confignatfw{$key}[24],$confignatfw{$key}[25],$confignatfw{$key}[26],$confignatfw{$key}[27],$confignatfw{$key}[28],$confignatfw{$key}[29],$confignatfw{$key}[30],$confignatfw{$key}[31],$confignatfw{$key}[32]
";
if ("$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'snatport'},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}"
eq "$confignatfw{$key}[0],$confignatfw{$key}[2],$confignatfw{$key}[3],$confignatfw{$key}[4],$confignatfw{$key}[5],$confignatfw{$key}[6],$confignatfw{$key}[7],$confignatfw{$key}[8],$confignatfw{$key}[9],$confignatfw{$key}[10],$confignatfw{$key}[11],$confignatfw{$key}[12],$confignatfw{$key}[13],$confignatfw{$key}[14],$confignatfw{$key}[15],$confignatfw{$key}[17],$confignatfw{$key}[19],$confignatfw{$key}[20],$confignatfw{$key}[21],$confignatfw{$key}[22],$confignatfw{$key}[23],$confignatfw{$key}[24],$confignatfw{$key}[25],$confignatfw{$key}[26],$confignatfw{$key}[27],$confignatfw{$key}[28],$confignatfw{$key}[29],$confignatfw{$key}[30],$confignatfw{$key}[31],$confignatfw{$key}[32]"){
$errormessage.=$Lang::tr{'fwdfw err ruleexists'};
@@ -315,27 +306,6 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
if($fwdfwsettings{'nosave2'} ne 'on'){
&saverule(\%configinputfw,$configinput);
}
- #print "Source: $fwdfwsettings{'grp1'} -> $fwdfwsettings{$fwdfwsettings{'grp1'}}
";
- #print "Sourceport: $fwdfwsettings{'USE_SRC_PORT'}, $fwdfwsettings{'PROT'}, $fwdfwsettings{'ICMP_TYPES'}, $fwdfwsettings{'SRC_PORT'}
";
- #print "Target: $fwdfwsettings{'grp2'} -> $fwdfwsettings{$fwdfwsettings{'grp2'}}
";
- #print "Dienst: $fwdfwsettings{'USESRV'}, $fwdfwsettings{'grp3'} -> $fwdfwsettings{$fwdfwsettings{'grp3'}}
";
- #print "BEMERKUNG: $fwdfwsettings{'ruleremark'}
";
- #print " Regel AKTIV: $fwdfwsettings{'ACTIVE'}
";
- #print " Regel LOG: $fwdfwsettings{'LOG'}
";
- #print " ZEITRAHMEN: $fwdfwsettings{'TIME'}
";
- #print " MO: $fwdfwsettings{'TIME_MON'}
";
- #print " DI: $fwdfwsettings{'TIME_TUE'}
";
- #print " MI: $fwdfwsettings{'TIME_WED'}
";
- #print " DO: $fwdfwsettings{'TIME_THU'}
";
- #print " FR: $fwdfwsettings{'TIME_FRI'}
";
- #print " SA: $fwdfwsettings{'TIME_SAT'}
";
- #print " SO: $fwdfwsettings{'TIME_SUN'}
";
- #print " VON: $fwdfwsettings{'TIME_FROM'} bis $fwdfwsettings{'TIME_TO'}
";
- #print "
";
- #print"ALT: $fwdfwsettings{'oldgrp1a'} $fwdfwsettings{'oldgrp1b'} NEU: $fwdfwsettings{'grp1'} $fwdfwsettings{$fwdfwsettings{'grp1'}}
";
- #print"ALT: $fwdfwsettings{'oldgrp2a'} $fwdfwsettings{'oldgrp2b'} NEU: $fwdfwsettings{'grp2'} $fwdfwsettings{$fwdfwsettings{'grp2'}}
";
- #print"ALT: $fwdfwsettings{'oldgrp3a'} $fwdfwsettings{'oldgrp3b'} NEU: $fwdfwsettings{'grp3'} $fwdfwsettings{$fwdfwsettings{'grp3'}}
";
- #print"DIENSTE Checkalt:$fwdfwsettings{'oldusesrv'} DIENSTE Checkneu:$fwdfwsettings{'USESRV'} DIENST ALT:$fwdfwsettings{'oldgrp3a'},$fwdfwsettings{'oldgrp3b'} DIENST NEU:$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}}
";
}elsif($fwdfwsettings{$fwdfwsettings{'grp1'}} eq 'IPFire' ){
# OUTGOING PART
$fwdfwsettings{'config'}=$configoutgoing;
@@ -424,7 +394,7 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
}
}
#check if we just close a rule
- if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'} ) {
+ if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) {
if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){
$fwdfwsettings{'nosave2'} = 'on';
$errormessage='';
@@ -446,27 +416,6 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
if ($fwdfwsettings{'nosave2'} ne 'on'){
&saverule(\%configfwdfw,$configfwdfw);
}
- #print "Source: $fwdfwsettings{'grp1'} -> $fwdfwsettings{$fwdfwsettings{'grp1'}}
";
- #print "Sourceport: $fwdfwsettings{'USE_SRC_PORT'}, $fwdfwsettings{'PROT'}, $fwdfwsettings{'ICMP_TYPES'}, $fwdfwsettings{'SRC_PORT'}
";
- #print "Target: $fwdfwsettings{'grp2'} -> $fwdfwsettings{$fwdfwsettings{'grp2'}}
";
- #print "Dienst: $fwdfwsettings{'USESRV'}, $fwdfwsettings{'grp3'} -> $fwdfwsettings{$fwdfwsettings{'grp3'}}
";
- #print "BEMERKUNG: $fwdfwsettings{'ruleremark'}
";
- #print " Regel AKTIV: $fwdfwsettings{'ACTIVE'}
";
- #print " Regel LOG: $fwdfwsettings{'LOG'}
";
- #print " ZEITRAHMEN: $fwdfwsettings{'TIME'}
";
- #print " MO: $fwdfwsettings{'TIME_MON'}
";
- #print " DI: $fwdfwsettings{'TIME_TUE'}
";
- #print " MI: $fwdfwsettings{'TIME_WED'}
";
- #print " DO: $fwdfwsettings{'TIME_THU'}
";
- #print " FR: $fwdfwsettings{'TIME_FRI'}
";
- #print " SA: $fwdfwsettings{'TIME_SAT'}
";
- #print " SO: $fwdfwsettings{'TIME_SUN'}
";
- #print " VON: $fwdfwsettings{'TIME_FROM'} bis $fwdfwsettings{'TIME_TO'}
";
- #print "
";
- #print"ALT: $fwdfwsettings{'oldgrp1a'} $fwdfwsettings{'oldgrp1b'} NEU: $fwdfwsettings{'grp1'} $fwdfwsettings{$fwdfwsettings{'grp1'}}
";
- #print"ALT: $fwdfwsettings{'oldgrp2a'} $fwdfwsettings{'oldgrp2b'} NEU: $fwdfwsettings{'grp2'} $fwdfwsettings{$fwdfwsettings{'grp2'}}
";
- #print"ALT: $fwdfwsettings{'oldgrp3a'} $fwdfwsettings{'oldgrp3b'} NEU: $fwdfwsettings{'grp3'} $fwdfwsettings{$fwdfwsettings{'grp3'}}
";
- #print"DIENSTE Checkalt:$fwdfwsettings{'oldusesrv'} DIENSTE Checkneu:$fwdfwsettings{'USESRV'} DIENST ALT:$fwdfwsettings{'oldgrp3a'},$fwdfwsettings{'oldgrp3b'} DIENST NEU:$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}}
";
}
if ($errormessage){
&newrule;
@@ -477,51 +426,6 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
&base;
}
}
-if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'reset'})
-{
- 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],,);
- &checkcounter($configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],,);
- }
- system("rm ${General::swroot}/forward/outgoing");
- &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings);
- unless (-e "${General::swroot}/forward/outgoing") { system("touch ${General::swroot}/forward/outgoing"); }
- my $MODE=$fwdfwsettings{'POLICY'};
- %fwdfwsettings = ();
- $fwdfwsettings{'POLICY'}=$MODE;
- $fwdfwsettings{'POLICY1'}='MODE2';
- &General::writehash("${General::swroot}/forward/settings", \%fwdfwsettings);
- &reread_rules;
- }
-}
if ($fwdfwsettings{'ACTION'} eq $Lang::tr{'fwdfw newrule'})
{
&newrule;
@@ -579,7 +483,6 @@ if ($fwdfwsettings{'ACTION'} eq 'movedown')
if ($fwdfwsettings{'ACTION'} eq 'copyrule')
{
$fwdfwsettings{'copyfwrule'}='on';
- #$fwdfwsettings{'updatefwrule'}='on';
&newrule;
}
if ($fwdfwsettings{'ACTION'} eq '')
@@ -591,9 +494,9 @@ sub addrule
{
&error;
if (-f "${General::swroot}/forward/reread"){
- print "