すべての着信トラフィックを記録するルールを追加するにはどうすればよいですか?

すべての着信トラフィックを記録するルールを追加するにはどうすればよいですか?

私のOSのnftablesステータス:

sudo systemctl status nftables
● nftables.service - nftables
     Loaded: loaded (/lib/systemd/system/nftables.service; disabled; vendor preset: enabled)
     Active: active (exited) since Fri 2022-11-04 11:01:47 HKT; 1s ago
       Docs: man:nft(8)
             http://wiki.nftables.org
    Process: 3780 ExecStart=/usr/sbin/nft -f /etc/nftables.conf (code=exited, status=0/SUCCESS)
   Main PID: 3780 (code=exited, status=0/SUCCESS)
        CPU: 7ms

Nov 04 11:01:47 debian systemd[1]: Starting nftables...
Nov 04 11:01:47 debian systemd[1]: Finished nftables.

今、すべての着信トラフィックを記録したいと思います。

sudo nft add rule filter input log
Error: Could not process rule: No such file or directory
add rule filter input log
         ^^^^^^

構成ファイルのリストnftables.conf:

cat /etc/nftables.conf
#!/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

テーブルは次の場所にあります。inet 家族(IPv4 + IPv6の組み合わせを表します)したがって、inetファミリーパラメータが必要です。そうでない場合、デフォルトは次のとおりですip

指定された識別子にアドレス系列がない場合、そのip系列はデフォルトで使用されます。

ip filterテーブルやチェーンがないため、ip filter inputこのコマンドは次のようになります。

nft add rule filter input log

失敗する。

正しいコマンドは(rootまたは使用)ですsudo。以下のすべてのコマンドはrootとして実行するか、またはを使用して実行する必要がありますsudo

nft add rule inet filter input log

...しかし、上記のコマンドは、あまりにも多くのログを生成し、ログが保存されているファイルシステムをフラッディングするため、通常は危険であり、準備ができていない限り、そのまま使用しないでください。

実際のファイアウォールがない状況では、すでに存在するフローのパケット部分を記録しないことが最善です。確立されたconntrack 状態) は、新しく関連する (たとえば、ICMP エラーが再送信される) 無効なパケットを残します。これは以下を使用して行われます。つながる役に立ちます。そして良い測定のために限界ログ数(例:1分あたり最大20個)トリプルも追加しました。counterログステートメントに到達する前にnft list ruleset追加された各フィルタのボリュームの違いに関する統計を表示(使用)できるステートメント。必要ありません。

nft add rule inet filter input counter ct state != established counter limit rate 20/minute counter log

後で再利用できるようにファイルを保存するには、/etc/nftables.confコマンド出力を使用して(削除しないでください)古いファイルを編集できます。nft -s list rulesetflush rulesetnftablesサービスを再起動するsystemctl restart nftablesか()ファイルを直接再ロードして(nft -f /etc/nftables.conf)内容を復元します。

関連情報