![arptables-nft 持久性](https://linux22.com/image/12693/arptables-nft%20%E6%8C%81%E4%B9%85%E6%80%A7.png)
介绍
这是在带内核的 Debian Buster 上4.19.0-6
我已经安装iptables-persistent
和netfilter-persistent
版本1.0.11
并添加了一条基本规则来arptables-nft
阻止除默认网关之外的所有 LAN 地址,如下所示:
# arptables-nft -A INPUT -s ! 10.0.0.1 -j DROP
将规则保存到文件中可以像这样完成
$ sudo arptables-nft-save >> ~/Desktop/arptable-rules.save
$ less ~/Desktop/arptable-rules.save
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
-A INPUT ! -s 10.0.0.1 --h-length 6 --h-type 1 -j DROP
规则可以像这样恢复
$ sudo arptables-nft -F
$ sudo arptables-nft-restore < ~/Desktop/arptable-rules.save
$ sudo arptables-nft -L -n
Chain INPUT (policy ACCEPT)
! -s 10.0.0.1 --h-length 6 --h-type 1 -j DROP
Chain OUTPUT (policy ACCEPT)
但由于某种原因,它在重新启动后不会持续存在。我认为 arptables-nft 将成为 netfilter arp 表的一部分,但事实并非如此。除了制作启动脚本(例如使用 Debian 使脚本在启动时运行)它运行arptables-nft-restore
,也许还有一个运行的关闭脚本arptables-nft-save
,我不确定如何使arptable-nft
表规则在重新启动后保持不变。
问题
有什么方法可以让规则自动保存,就像它们使用nft
oriptables-persistent
以及它们处理表的方式一样?或者编写启动/关闭脚本会不会更麻烦?