我需要帮助创建规则。根据 CPanel 的说法,firewall-d 破坏了从 CentOS > Alma Linux 的迁移。他们不再支持 CentOS,所以我最终硬着头皮迁移了。一切都进行得很顺利,直到我发现了firewall-d,因为我所有的ipsets以及我将新的罪犯添加到我的阻止列表中的过程都中断了。他们建议我转向 nftables。在研究并尝试了一些事情之后,我无法确切地弄清楚我在寻找什么。
我想添加超时元素(1 天),就像 CPanel 对 cphulk 所做的那样。
我做了一些实验:
nft add table inet filter
nft add set inet filter jerk_ips { type ipv4_addr \; }
nft add chain inet filter jerk_ips '{ type filter hook input priority 0 ; }'
nft add rule inet filter jerk_ips ip saddr xxx.xxx.xxx.xxx drop
- xxx.xxx.xxx.xxx = 某些有问题的 IP 地址
我只是非常困惑这一切是如何运作的。我在网上阅读了很多内容,但它假设您知道所有这些嵌套的东西都是有效的,这就是我读到的有关“集合”的地方,并且在“集合”中您可以放置一个名为“超时”的标志。
我的最终结果是像往常一样简单地解析我的日志文件,找到违规者,阻止他们,但由于我正在重做所有事情,我认为我会添加 24 小时/1 天自动删除,因为我相信这样做更容易nftables 现在比在firewall-d 中使用fireall-cmd 更好。
任何帮助,将不胜感激。
谢谢。
nftables wiki有一个几乎完整的示例:
添加到集合定义
flags timeout ;
(可能还有正确的 shell 转义/引用)可以使元素自动过期。这里添加元素时提供了超时:在元素后面声明,遵循以下语法
nft(8)
:还可以设置默认超时:当添加的元素未提供超时时,将应用默认超时。除了 之外
flags timeout
,在创建集合时还必须按照以下语法给出默认超时值nft(8)
:所以代替OP:
使用(此处添加引号以避免 shell 解释,从而删除多个
\
):获得 1 天的默认超时。仍然可以在需要时按照首先显示的内容添加一些具有不同超时的元素。
这里 1d = 24h = 1440m = 86400s