방화벽: nftable 카운터 규칙

방화벽: nftable 카운터 규칙

数ヶ月前、Debian が推奨するプログラムを使って Debian ノートブックのファイアウォールを Debian に移行しましiptablesたが、nftablesすべてがうまくいきました。数ヶ月が過ぎた今、私はその移行プロセスで生成されたルールセットを確認し、構文を学びようとしていますnftables。 Wikiが役に立つトレーニングリソースであることが見つかりませんでしたが、nftablesこの種の問題に対処する他のオンライントレーニングリソースも見つかりませんでした。

デフォルトの自動移行ルールセットには、次のものが含まれます。

table inet filter {
  chain INPUT {
    type filter hook input priority 0; policy drop;
    counter packets 123 bytes 105891 jump ufw-before-logging-input                                                                                                                                
    counter packets 123 bytes 105891 jump ufw-before-input
    counter packets 0 bytes 0 jump ufw-after-input
    counter packets 0 bytes 0 jump ufw-after-logging-input
    counter packets 0 bytes 0 jump ufw-reject-input                                                                                                                                               
    counter packets 0 bytes 0 jump ufw-track-input                                                                                                                                                
  }

最初の2つのcounterステートメントは私の注目を集めた例です。私の言葉は正しいですか?彼らは「ufw-before-fooセクションの規則にジャンプしますが、最初の123パケットと最初の105891バイトが受信された後にのみ可能です」と言います。

  1. パケット0バイト0ですぐに起動しないのはなぜですか?
  2. nftablesがサポートしているように見える> =構文を使用するとどうなりますか?
  3. この数字はランダムですか?移行中の欠陥によるものかもしれませんか?

上記のルールセットには、同様の問題がある可能性がある次のリンクへの移動が含まれています。以下はその一部です。

  chain ufw-before-input {
    iifname "lo" counter packets 26 bytes 3011 accept
    ct state related,established counter packets 64 bytes 63272 accept
    ct state invalid counter packets 0 bytes 0 jump ufw-logging-deny
    ct state invalid counter packets 0 bytes 0 drop
    ...
  }
  1. 以前に受信した 26 個または 64 個のパケットに基づいて承認を決定するのはなぜですか。
  2. ファイアウォールは、起動およびネットワーク検索/接続後にいつでも更新できますが、なぜ初期パケットをすべて破棄するのですか?

上記のように、これらの規則は何ヶ月も実施されているので、どのような悪影響を及ぼすのか疑問に思います。心に浮かぶ唯一の候補は、ラップトップが時々Wi-Fi接続を確立するのに苦労しますが(特にスリープモードで再起動した後)、近くの2番目のノートブックにはそのような問題はありません。

  1. これらのパケットドロップルールがWi-Fi接続のネゴシエーションに困難をもたらす可能性がありますか?

答え1

いいえ、説明ははるかに簡単です。カウンターステートメントにオプションのパラメーターがあります。データパックそしてバイトパケットがそのルールに達したときにカウンタによって計算されたパケット数とバイト数を表示します。カウンターにはフィルターがなく、どのしたがって、パケット(ループバックを含む)の値が増加するため、非常に早期に迅速に発生する可能性があります。変換を実行するツールは、iptablesベースカウンタを表示し、忠実度を保証するためにその値を変換することを選択します。

したがって、通常、ルールを作成するときにこれらの値を設定せずにcounter個別に単純な値を入力すると、すべてデフォルト値のゼロが得られます。この値は、パケットが通過するにつれて増加します。選択科目、特に名前付きカウンターに使用される場合状態保存オブジェクト(類似したものを使用して)表示してリセットすることも可能でありnft reset counters、ある種の会計では、ルールセットを作成するときにこれらの値を設定できます。これは通常、再起動する前に保存されたルールセットを復元するときです。これ指定されたバリアントで使用した場合のみリセット可能、匿名カウンタを「インライン」にする代わりに。ルールの一致を変更するために使用することはできません。他の選択肢はありません。表示するよりも。

発生するWi-Fiの問題できない何らかの理由で発生したカウンター氏名。

パケット数を使用してnftablesファイアウォールでルールの使用を制限したい場合は、必要に応じていくつかの異なる方法があります。

  • 別の状態保存オブジェクトシェア(익명으로도 사용 가능하지만,명명된 사용 시에만 재설정할 수 있습니다.). 그런 다음 규칙이 일치하지 않도록 하거나 개수에 따라 일치를 시작하도록 할 수 있습니다.

  • 가지다한계계산 명세서비율. 예를 들어 로그 규칙으로 인해 로그 파일이 너무 많아질 수 있다는 우려가 있는 경우 이를 사용하여 완료되는 로그의 양을 제한할 수 있습니다. 또한 특정 리소스의 속도를 제한할 수도 있습니다(종종 conntrack과 함께 다른 필터와 함께 사용됨).

  • 충분히 새로운 nftables(0.9.2?)와 커널(4.18?)을 사용하면CT 수 연결 추적 표현일반적으로 특정 리소스(ssh, 웹 서버...)에 대한 동시 액세스를 제한하기 위해 conntrack을 사용하여 설정된 연결 수를 계산합니다.

関連情報