diff --git a/Shorewall/Perl/Shorewall/Misc.pm b/Shorewall/Perl/Shorewall/Misc.pm index 983a7d104..aff43ad81 100644 --- a/Shorewall/Perl/Shorewall/Misc.pm +++ b/Shorewall/Perl/Shorewall/Misc.pm @@ -919,6 +919,13 @@ sub add_common_rules ( $ ) { p => "udp --dport $ports" , imatch_dest_dev( $interface ) ) if get_interface_option( $interface, 'bridge' ); + + unless ( $family == F_IPV6 || get_interface_option( $interface, 'allip' ) ) { + add_ijump( $filter_table->{input_chain( $interface ) } , + j => 'ACCEPT' , + p => "udp --dport $ports" , + s => NILIPv4 . '/32' ); + } } } diff --git a/Shorewall/Perl/Shorewall/Zones.pm b/Shorewall/Perl/Shorewall/Zones.pm index 63dc8ebcc..37a3e0577 100644 --- a/Shorewall/Perl/Shorewall/Zones.pm +++ b/Shorewall/Perl/Shorewall/Zones.pm @@ -782,7 +782,11 @@ sub add_group_to_zone($$$$$) ipsec => $type & IPSEC ? 'ipsec' : 'none' , exclusions => \@exclusions }; - $interfaces{$interface}{options}{routeback} ||= ( $type != IPSEC && $options->{routeback} ); + if ( $type != IPSEC ) { + my $optref = $interfaces{$interface}{options}; + $optref->{routeback} ||= $options->{routeback}; + $optref->{allip} ||= $allip; + } } #