Hi, On Sat, Mar 26, 2022 at 12:09:26PM +0200, Topi Miettinen wrote: > Hi, > > I'd like to use cgroupv2 expressions in firewall rules. But since the rules > are loaded very early in the boot, the expressions are rejected since the > target cgroups are not realized until much later. > > Would it be possible to add new cgroupv2 expressions which defer the check > until actual use? For example, 'cgroupv2name' (like iifname etc.) would > check the cgroup path string at rule use time? > > Another possibility would be to hook into cgroup directory creation logic in > kernel so that when the cgroup is created, part of the path checks are > performed or something else which would allow non-existent cgroups to be > used. Then the NFT syntax would not need changing, but the expressions would > "just work" even when loaded early. Could you use inotify/dnotify/eventfd to track these updates from userspace and update the nftables sets accordingly? AFAIK, this is available to cgroupsv2. > Indirection through sets ('socket cgroupv2 level @lvl @cgname drop') might > work in some cases, but it would need support from cgroup manager like > systemd which would manage the sets. This would also probably not be > scalable to unprivileged users or containers. > > This also applies to old cgroup (v1) expression but that's probably not > worth improving anymore. > > Related work on systemd side: > https://github.com/systemd/systemd/issues/22527 > > -Topi