nftablesはチェーン内のすべてのルールを削除します。

nftablesはチェーン内のすべてのルールを削除します。

mytableFOBチェーンには多くの規則がありますmychain

> sudo nft -a list table mytable
table ip mytable { # handle 8
        chain mychain { # handle 1
                type filter hook input priority filter; policy accept;
                tcp dport 5550 accept # handle 18
                tcp dport 5551 accept # handle 19
                tcp dport 5552 accept # handle 20
                tcp dport 5553 accept # handle 21
                tcp dport 5554 accept # handle 22
        }
}

~によるとnftables wiki指定されたチェーンからすべてのルールを削除することが可能でなければなりません。ただし、次のコマンドはエラーを返します。

> sudo nft delete rule mytable mychain
Error: syntax error, unexpected newline, expecting handle
delete rule mytable mychain
                           ^

mychainルールハンドルを繰り返さずにすべてのルールを削除する正しいコマンドは何ですか?

答え1

nftables Wikiにはまだいくつかのバグが隠されています。実際の構文は非常に論理的です。

  • すべてのコンテンツを削除

    nft flush ruleset
    
  • テーブルを空にします(ip指定されていない場合、デフォルトはファミリに設定されます)。例えばmy table

    nft flush table mytable
    
  • テーブルを削除します(これにより、テーブルも最初に空になります)。例えばmytable

    nft delete table mytable
    
  • クリアチェーン(同じ本。)。例えばmytable mychain

    nft flush chain mytable mychain
    
  • チェーンを削除します(同じ)。例えばmytable mychain

    nft delete chain mytable mychain
    
  • ルールを削除します(これはハンドル参照でのみ実行できます)。例えばtcp dport 5550 accept # handle 18

    nft delete rule mytable mychain handle 18
    

覚えておくべきことはこの作戦の目的です。でしたいチェーンレベルの場合、キーワードがあるのは正常ですchain

もし疑いがあれば、nftマンページ通常、より正確ですが、情報がどこにあるかを事前に知っておく必要があります。チェーン代わりに部分ルール部分:

チェーン

{追加|作成}チェーン[ファミリ]テーブルチェーン[{タイプタイプフックフック[デバイス]]優先順位[ポリシーポリシー;]}]
{削除|リスト|フラッシュ}チェーン[家族]テーブル チェーン
チェーン[ファミリ]テーブルハンドルハンドル
削除チェーン[ファミリ]テーブルチェーン新しい名前の名前変更

[...]
フラッシュ指定されたチェーンのすべてのルールを更新します。

関連情報