use IO::File;
use Net::IP;
use PVE::Tools qw(run_command lock_file);
+use Encode;
# dynamically include PVE::QemuServer and PVE::OpenVZ
# to avoid dependency problems
}
if (!(defined($options->{dhcp}) && $options->{dhcp} == 0)) {
- ruleset_addrule($ruleset, $chain, "-p udp -m udp --dport 67:68 -j ACCEPT");
+ if ($direction eq 'OUT') {
+ ruleset_addrule($ruleset, $chain, "-p udp -m udp --sport 68 --dport 67 -j PVEFW-SET-ACCEPT-MARK");
+ } else {
+ ruleset_addrule($ruleset, $chain, "-p udp -m udp --sport 67 --dport 68 -j ACCEPT");
+ }
}
if ($options->{tcpflags}) {
my ($type, $action, $iface, $source, $dest, $proto, $dport, $sport);
# we can add single line comments to the end of the rule
- my $comment = $1 if $line =~ s/#\s*(.*?)\s*$//;
+ my $comment = decode('utf8', $1) if $line =~ s/#\s*(.*?)\s*$//;
# we can disable a rule when prefixed with '|'
my $disable = 1 if $line =~ s/^\|//;
}
}
- # fixme: this is an optimization? if so, we should also drop INVALID packages?
- ruleset_insertrule($ruleset, "PVEFW-FORWARD", "-m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT");
-
# fixme: what log level should we use here?
my $loglevel = get_option_log_level($hostfw_options, "log_level_out");