Forward Firewall: BUGFIX: When editing a rule and changing position, no other changes where saved.

added the DMZHOLES Rule to init.d/firewall (but chnaged DMZHOLES to FORWARDFW
This commit is contained in:
Alexander Marx
2013-01-14 13:56:36 +01:00
committed by Michael Tremer
parent 02da9f7baf
commit e44fa0792b
2 changed files with 94 additions and 89 deletions

View File

@@ -1408,7 +1408,41 @@ sub saverule
$$hash{$key}[27] = $fwdfwsettings{'TIME_TO'};
&General::writehasharray("$config", $hash);
}else{
#ruleposition check
foreach my $key (sort {$a <=> $b} keys %$hash){
if($key eq $fwdfwsettings{'key'}){
$$hash{$key}[0] = $fwdfwsettings{'RULE_ACTION'};
$$hash{$key}[1] = $fwdfwsettings{'chain'};
$$hash{$key}[2] = $fwdfwsettings{'ACTIVE'};
$$hash{$key}[3] = $fwdfwsettings{'grp1'};
$$hash{$key}[4] = $fwdfwsettings{$fwdfwsettings{'grp1'}};
$$hash{$key}[5] = $fwdfwsettings{'grp2'};
$$hash{$key}[6] = $fwdfwsettings{$fwdfwsettings{'grp2'}};
$$hash{$key}[7] = $fwdfwsettings{'USE_SRC_PORT'};
$$hash{$key}[8] = $fwdfwsettings{'PROT'};
$$hash{$key}[9] = $fwdfwsettings{'ICMP_TYPES'};
$$hash{$key}[10] = $fwdfwsettings{'SRC_PORT'};
$$hash{$key}[11] = $fwdfwsettings{'USESRV'};
$$hash{$key}[12] = $fwdfwsettings{'TGT_PROT'};
$$hash{$key}[13] = $fwdfwsettings{'ICMP_TGT'};
$$hash{$key}[14] = $fwdfwsettings{'grp3'};
$$hash{$key}[15] = $fwdfwsettings{$fwdfwsettings{'grp3'}};
$$hash{$key}[16] = $fwdfwsettings{'ruleremark'};
$$hash{$key}[17] = $fwdfwsettings{'LOG'};
$$hash{$key}[18] = $fwdfwsettings{'TIME'};
$$hash{$key}[19] = $fwdfwsettings{'TIME_MON'};
$$hash{$key}[20] = $fwdfwsettings{'TIME_TUE'};
$$hash{$key}[21] = $fwdfwsettings{'TIME_WED'};
$$hash{$key}[22] = $fwdfwsettings{'TIME_THU'};
$$hash{$key}[23] = $fwdfwsettings{'TIME_FRI'};
$$hash{$key}[24] = $fwdfwsettings{'TIME_SAT'};
$$hash{$key}[25] = $fwdfwsettings{'TIME_SUN'};
$$hash{$key}[26] = $fwdfwsettings{'TIME_FROM'};
$$hash{$key}[27] = $fwdfwsettings{'TIME_TO'};
last;
}
}
}
&General::writehasharray("$config", $hash);
if($fwdfwsettings{'oldrulenumber'} gt $fwdfwsettings{'rulepos'}){
my %tmp=();
my $val=$fwdfwsettings{'oldrulenumber'}-$fwdfwsettings{'rulepos'};
@@ -1463,42 +1497,6 @@ sub saverule
}
&General::writehasharray("$config", $hash);
&rules;
}else{
foreach my $key (sort {$a <=> $b} keys %$hash){
if($key eq $fwdfwsettings{'key'}){
$$hash{$key}[0] = $fwdfwsettings{'RULE_ACTION'};
$$hash{$key}[1] = $fwdfwsettings{'chain'};
$$hash{$key}[2] = $fwdfwsettings{'ACTIVE'};
$$hash{$key}[3] = $fwdfwsettings{'grp1'};
$$hash{$key}[4] = $fwdfwsettings{$fwdfwsettings{'grp1'}};
$$hash{$key}[5] = $fwdfwsettings{'grp2'};
$$hash{$key}[6] = $fwdfwsettings{$fwdfwsettings{'grp2'}};
$$hash{$key}[7] = $fwdfwsettings{'USE_SRC_PORT'};
$$hash{$key}[8] = $fwdfwsettings{'PROT'};
$$hash{$key}[9] = $fwdfwsettings{'ICMP_TYPES'};
$$hash{$key}[10] = $fwdfwsettings{'SRC_PORT'};
$$hash{$key}[11] = $fwdfwsettings{'USESRV'};
$$hash{$key}[12] = $fwdfwsettings{'TGT_PROT'};
$$hash{$key}[13] = $fwdfwsettings{'ICMP_TGT'};
$$hash{$key}[14] = $fwdfwsettings{'grp3'};
$$hash{$key}[15] = $fwdfwsettings{$fwdfwsettings{'grp3'}};
$$hash{$key}[16] = $fwdfwsettings{'ruleremark'};
$$hash{$key}[17] = $fwdfwsettings{'LOG'};
$$hash{$key}[18] = $fwdfwsettings{'TIME'};
$$hash{$key}[19] = $fwdfwsettings{'TIME_MON'};
$$hash{$key}[20] = $fwdfwsettings{'TIME_TUE'};
$$hash{$key}[21] = $fwdfwsettings{'TIME_WED'};
$$hash{$key}[22] = $fwdfwsettings{'TIME_THU'};
$$hash{$key}[23] = $fwdfwsettings{'TIME_FRI'};
$$hash{$key}[24] = $fwdfwsettings{'TIME_SAT'};
$$hash{$key}[25] = $fwdfwsettings{'TIME_SUN'};
$$hash{$key}[26] = $fwdfwsettings{'TIME_FROM'};
$$hash{$key}[27] = $fwdfwsettings{'TIME_TO'};
last;
}
}
}
&General::writehasharray("$config", $hash);
}
}
}

View File

@@ -242,6 +242,13 @@ case "$1" in
iptables_red
# DMZ pinhole chain. setdmzholes setuid prog adds rules here to allow
# ORANGE to talk to GREEN / BLUE.
/sbin/iptables -N DMZHOLES
if [ "$ORANGE_DEV" != "" ]; then
/sbin/iptables -A FORWARD -i $ORANGE_DEV -m state --state NEW -j FORWARDFW
fi
# PORTFWACCESS chain, used for portforwarding
/sbin/iptables -N PORTFWACCESS
/sbin/iptables -A FORWARD -m state --state NEW -j PORTFWACCESS