nftables.conf 包含设置和规则

问题描述 投票:0回答:1

在 Debian bookworm 上,我从文件 /etc/nftables.conf 成功运行了 nftables。它的骨架基本上看起来像:

#!/sbin/nft -f
flush ruleset
counter CNT_WHITE_LISTED_COUNTRIES{}
counter CNT_BLACK_LISTED_COUNTRIES{}
table inet filter {
    set countries-allowed {
        type ipv4_addr; flag interval; policy performance;
    }

    chain input {
    }

    chain forward {
    }

    chain output {
    }
}

我想为一些用户定义的国家(国家白名单)部署一个ipset,并将该ipset集成到文件/etc/nftables.conf中(NFT规则,以便自动接受所有IPv4地址。此外,应该有另一个规则丢弃并统计所有不是来自白名单国家/地区的数据包。请注意,此主配置文件应该是仅 NFT 配置文件,以便使防火墙设置尽可能简单。

尽管访问了https://wiki.nftables.org/wiki-nftables我不知道如何使用链“输入”来引用设置“允许的国家”并设置两个规则。

请注意,“systemctl restart nftables”已成功执行(即没有错误消息)。

有人可以告诉我解决方案吗?

我通过参考设置“允许的国家”在链“输入”中部署了各种规则组合,但没有成功。

rules nft nftables
1个回答
0
投票

对于类似的设置,我为每个国家/地区使用两个命名集(带有国家/地区代码缩写和 v6 或 v4)。 所以我的设置类似于:

#!/sbin/nft -f
flush ruleset
table inet filter {
    set admins {
        type ipv4_addr; flag interval; policy performance;
        elements = { 10.1.1.1 comment "admin-ip1", 10.1.1.2 comment "admin-ip2" }
    }
    set country-AA-v4 {
        type ipv4_addr; flag interval; policy performance;
    }
    set country-AA-v6 {
        type ipv6_addr; flag interval; policy performance;
    }
    set country-ZZ-v4 {
        type ipv4_addr; flag interval; policy performance;
    }
    set country-ZZ-v6 {
        type ipv6_addr; flag interval; policy performance;
    }

    chain countryfiter {
        ip saddr @country-ZZ-v4 counter return comment "use return instead of accept to allow further filtering in the input chain"
        ip saddr @country-ZZ-v6 counter return
        ip saddr @country-AA-v4 counter return
        ip saddr @country-AA-v6 counter return
        counter drop
    }

    chain input {
        # Pay attention - the policy is set to drop packets that 
        # do not have a accept rule
        type filter hook input priority filter; policy drop;
        ct state established,related counter accept
        ip saddr @admins counter accept
        ip saddr !=@admins counter jump countryfiter
        #additional rules here
        tcp dport 443 counter accept
        ip saddr @ssh_clients tcp dport 22 counter accept
        ct state new limit rate 1/minute counter log prefix "[nft DROP] " comment "rate limited logging of dropped packets"
        counter drop
    }

    chain forward {
    }

    chain output {
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.