我希望应用防火墙规则的出口,以控制来自码头容器的DHCP输出。我不希望DHCP容器共享主机的网络堆栈,因为添加CAP_NET_ADMIN
有效地提供了网络堆栈的容器控制。
我注意到这里在内核5.7中向netfilter添加了一个出口钩子(uname -r
说我有5.10)。
根据这提交中的信息,我添加了下表:
table netdev filterfinal_lan {
chain egress {
type filter hook egress device enp1s0 priority 0; policy accept;
}
}
然而,当我试图应用配置时,它告诉我它没有被识别:
/etc/nftables.conf:107:20-25: Error: unknown chain hook
type filter hook egress device enp1s0 priority 0; policy accept;
^^^^^^
我不确定nftable的哪个版本支持出口挂钩,但我的nft --version
是nftables v0.9.8 (E.D.S.)
。关于出口钩子的信息似乎很难理解。
使用这个钩子需要什么?
发布于 2022-08-08 20:00:42
实际上,nftable的出口钩子是在5.16内核中添加的,改进的支持(fwd
)是在5.17中添加的。
之前有几次尝试,其中一次是NACK-ed,同时它最初被提交,使得它出现在5.7版本的Kernel新手中,而且很明显,即使nftable的wiki链接到Linux5.7而不是Linux5.16的Kernelnewbies也是错误的。
以下是2020年3月(内核5.7左右)的相关邮件列表链接:
主题: Re:[修补程序00/29] Netfilter更新next :大卫米勒发件人: Alexei Starovoitov alexei.starovoitov@gmail.com Date: Tue,2020 3月17日20:55:46 -1000 On Tue,2020年3月17日下午2:42 Pablo Neira Ayuso pablo@netfilter.org写道:
勉强:阿列克谢·斯多沃托夫( Alexei Starovoitov ),ast@kernel.org,对不起,我刚看到这是在把这个拉回请求后才看到的。请有人通过回复或类似的方式来处理这个问题。
它随后在commit:网络过滤器:重新引入出口钩中被恢复。此还原可能没有在所有相关邮件列表中发布,这增加了一些混乱。
快进两年了。问题和关注(其中包括与tc/qdisc的交互)已经得到解决,出口再次添加在5.16内核(2022年1月9日)。5.16有以下条目:
Netfilter
Linux内核驱动程序数据库:
配置_奈夫泰尔_出口,出口:Netfilter出口支持...
同样,只有在nf-next中提交了内核支持(因此在5.16发布之前),才正式添加了对egress的nftable用户土地支持,并且在nftables 1.0.1发布中提供了:
这个版本包含了LinuxKern5.16-Rc1发行版的新特性:...
OP的规则集在具有相关内核选项CONFIG_NETFILTER_EGRESS
的内核上被接受,该内核选项必须是nftable >= 1.0.1中的版本>= 5.16。
https://unix.stackexchange.com/questions/712571
复制相似问题