`echo <something> | pfctl -mf -` overriding instead of modifying
Niklaas Baudet von Gersdorff
stdin at niklaas.eu
Thu May 26 19:50:55 UTC 2016
Max [2016-05-26 15:28 +0300] :
> Can you try something like
> exec.poststart = "/bin/sh /path/to/pf-config.sh $name $private_ip4
> $private_ip6"
>
> where pf-config.sh contains
> #!/bin/sh
> echo "rdr pass on vtnet0 inet proto { udp tcp } to vtnet0 port domain
> -> $2
> rdr pass on vtnet0 inet6 proto { udp tcp } to vtnet0 port domain ->
> $3" | pfctl -a "jails/$1" -Nf -
Thanks a lot for your input. I guess that would work but I managed to
solve it the following way:
exec.poststart += "echo 'rdr pass on vtnet0 inet6 proto { udp tcp } to vtnet0 port domain -> $private_ip6' | pfctl -a 'jails/$name-ipv6' -f -";
exec.poststart += "echo 'rdr pass on vtnet0 inet proto { udp tcp } to vtnet0 port domain -> $private_ip4' | pfctl -a 'jails/$name-ipv4' -f -";
exec.poststop += "pfctl -a jails/$name-ipv6 -F all";
exec.poststop += "pfctl -a jails/$name-ipv4 -F all";
The trick is to use two anchors. This way no rules are replaced and both
stay active.
Niklaas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-pf/attachments/20160526/944d22ee/attachment.sig>
More information about the freebsd-pf
mailing list