Nftables

通過過濾器或變數匹配網路前綴的 nftables 命名集

  • September 5, 2019

我想匹配一組網路。匿名集工作正常,但我想創建前綴集以在需要時重用它。

nft add set filter AllowedSSH { type ipv4_addr\;} // type for addreses
nft add element filter AllowedSSH { 10.0.0.0/8 } // not working
nft add element filter AllowedSSH { 10.0.0.1 } // works by IP

我應該使用哪種正確類型的過濾器來執行此操作?

變數樣式也不起作用:

nft define networks = { 10.0.0.0/8 }
nft add rule ip filter input ip saddr $networks tcp dport 22 accept
Error: syntax error, unexpected dport, expecting end of file or newline or semicolon
add rule ip filter input ip saddr tcp dport 53 counter accept
                                 ^^^^^

NFT 版本:

[root@foo ~]# nft -v
nftables v0.8 (Joe Btfsplk)

提前致謝。

如果要將前綴添加到集合中,則應指定interval標誌。

在您的範例中,它將如下所示:

nft add set filter AllowedSSH { type ipv4_addr\; flags interval\; }
nft add element filter AllowedSSH { 10.0.0.0/8 }
nft add element filter AllowedSSH { 192.168.0.0/24 }

nft list set filter AllowedSSH
table ip filter {
   set AllowedSSH {
       type ipv4_addr
       flags interval
       elements = { 10.0.0.0/8, 192.168.0.0/24 }
   }
}

引用自:https://serverfault.com/questions/978092