nftablesはデフォルトでポート22または他のポートを受け入れますか?

nftablesはデフォルトでポート22または他のポートを受け入れますか?

新しいDebian 12(AWS EC2)にnftablesをインストールしました。ポート22/tcpを介してインスタンス(外部EC2 IP)に接続します。 EC2に言及した理由は、EC2が奇妙なトリックを実行する可能性があるためです。その後、nftableをインストールしました。

    sudo apt install nftables
    sudo systemctl enable nftables
    sudo systemctl start nftables

現在の設定は空です。

    flush ruleset

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

私の問題は簡単です。パケットを許可するルールがない場合は、セッションがブロックされ、再開できる必要があることを読んで予想しました。これが真実ではないのはなぜですか、私のセッションを許可するのはなぜですか?

実際にストリームがブロックされたのは、明示的にストリームをブロックしたときにのみ可能であることがわかりました。

答え1

私のセッションはパッキングを許可するルールなしでブロックする必要があります。

デフォルトでは、ルールセットはすべてを許可します。

policy drop;実際にすべての接続をブロックするには、各行の後に追加する必要がありますtype filter ...。各ルールを1行に入力する場合、セミコロンはオプションです。

このような厳格なルールを持つことは本当に賢明ではありません。少なくともループバック接続を許可する必要があります。そうしないと、多くのプログラムが不明な方法で動作しません。

入力用、iif lo accept出力用oif lo accept

そして、すべてのチェーンが接続を確立できるようにする必要があります。ct state established,related accept- ルールはすべてのチェーンに対して同じです。

答え2

デフォルトではnftablesチェーンは作成されません。つまり、すべてのパケットが許可され、許可されます。

3つを作成しました。~によるとチェーンinput forwardoutput
これらのデフォルトポリシーを指定しないと、acceptチェーンが存在しないのと同じです。

デフォルトでは、すべてのパケットをブロックするには、次のようにデフォルトの作業ポリシーを設定する必要がありますdrop

# Sees incoming packets that are addressed to and have now been routed to the local system and processes running there
add chain filter input {
    type filter hook input priority filter; policy drop;
}

# Sees packets that originated from processes in the local machine
add chain filter output {
    type filter hook output priority filter; policy drop;
}

次に、特定のトラフィックを許可するためにこれらのチェーンにルールを明示的に追加します。

  • チェーン作成の詳細については、次を参照してください。ここ
  • あなたは見つける必要がありますnftablesウィキペディアファイアウォールの開発に最も便利です。

関連情報