nftables 仅允许来自特定 IP 地址的 Redis

nftables 仅允许来自特定 IP 地址的 Redis

我正在配置 REDIS 服务器,并且希望仅允许来自一组特定 IP 地址的连接。

这是一个 Debian 10 服务器,推荐使用的框架是 nft,我过去没有使用过。

默认规则集是这样的:

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}

我需要在该文件中添加什么规则才能允许从 IP 到 Redis 的传入连接,1.1.1.12.2.2.2丢弃其他所有内容?

REDIS 正在使用端口6379

答案1

如果其他人偶然发现同样的问题,我的主要问题是我以错误的顺序使用规则。

我在接受规则之前添加了删除规则,这似乎是相反的。

这是删除除 2 之外的所有 IP 地址的示例规则:

ip saddr 1.1.1.1 tcp dport 6379 accept
ip saddr 2.2.2.2 tcp dport 6379 accept
tcp dport 6379 drop

完整的规则文件:

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
                # allow connection to redis from
                ip saddr 1.1.1.1 tcp dport 6379 accept
                ip saddr 2.2.2.2 tcp dport 6379 accept
                tcp dport 6379 drop
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}

答案2

强烈推荐的一项是

        chain input {
           type filter hook input priority 0;
           policy drop;
           # required items below
        }

请注意,除非明确允许,否则所有内容都会被丢弃,这是管理防火墙的最安全方法。

相关内容