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;
        }
}

1.1.1.1IPからRedisへの着信接続を許可し、2.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
        }

明示的に許可されない限り、すべてが削除されるため、これはファイアウォールを管理する最も安全な方法です。

関連情報