私の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 ruleset
flush ruleset
nftablesサービスを再起動するsystemctl restart nftables
か()ファイルを直接再ロードして(nft -f /etc/nftables.conf
)内容を復元します。