Don't allow a source interface in a DNAT/REDIRECT rule with source == firewall

Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
Tom Eastep 2012-08-01 10:01:08 -07:00
parent 691a9bf793
commit 542f279544

View File

@ -632,12 +632,13 @@ sub handle_nat_rule( $$$$$$$$$$$$ ) {
# #
# And generate the nat table rule(s) # And generate the nat table rule(s)
# #
my $firewallsource = $sourceref && ( $sourceref->{type} & ( FIREWALL | VSERVER ) );
expand_rule ( ensure_chain ('nat' , expand_rule ( ensure_chain ('nat' ,
( $action_chain ? ( $action_chain ? $action_chain :
$action_chain : $firewallsource ? 'OUTPUT' :
( $sourceref->{type} == FIREWALL ? 'OUTPUT' : dnat_chain $sourceref->{name} ) ) ,
dnat_chain $sourceref->{name} ) ) ), $firewallsource ? OUTPUT_RESTRICT : PREROUTE_RESTRICT ,
PREROUTE_RESTRICT ,
$rule , $rule ,
$source , $source ,
$origdest , $origdest ,