Linuxを理解する nftables Command #
その nftables コマンドは、Linuxファイアウォールツールの強力な代替品です。 iptables, ip6tables, arptables, ebtables統一された構文により、 nftables ネットワークパケットフィルタリング、NAT、その他の高度なネットワーク設定を簡素化します。このコマンドは、 nft カーネルの netfilter サブシステムと通信してネットワーク ルールを管理するユーティリティ。
基本的な構文と構造 nft Command #
その nft コマンドは通常、次の構造に従います。
nft [OPTIONS] COMMAND
- OPTIONS: フラグのような
-a(ルールハンドルを表示)または-j(JSON 形式で出力されます)。 - COMMAND: 具体的な行動、例えば
add,delete,listまたはflushテーブル、チェーン、またはルールを管理するために使用されます。
nft コマンドチートシート表 #
| Command | 詳細説明 |
nft list tables |
すべてのテーブルを一覧表示する |
nft add table inet filter |
という名前で新しいテーブルを作成します filter に選出しました。 inet 家族 |
nft delete table inet filter |
削除 filter のテーブル inet 家族 |
nft list ruleset |
すべてのテーブル、チェーン、ルールを人間が読める形式で一覧表示する |
nft flush ruleset |
すべてのテーブル、チェーン、ルールを削除します(ルールセット全体をフラッシュします) |
nft add chain inet filter input { type filter hook input priority 0; } |
追加する input チェーンに filter テーブル付き input フック |
nft add rule inet filter input tcp dport 22 accept |
ポート22でSSHトラフィックの受信を受け入れる |
nft delete rule inet filter input handle <handle_number> |
ルールを削除する input ルールのハンドルを指定してチェーンする |
nft add rule inet filter forward counter |
カウンタールールを追加する forward トラフィック監視チェーン |
テーブルの追加と管理 #
In nftablesテーブルはチェーンとルールを格納するコンテナです。テーブルの作成と管理方法は次のとおりです。
テーブルを作成する #
nft add table inet my_table
このコマンドは、次の名前の新しいテーブルを作成します。 my_table 中で inet IPv4 と IPv6 の両方をサポートするファミリです。
テーブルを削除する #
nft delete table inet my_table
を削除します my_table inet 家族。
チェーン nftables #
チェーンとは、パケットの処理方法を定義する一連のルールです。各チェーンには特定の hookパケットフィルタリングの段階を決定する(例: input, outputまたは forward).
チェーンを作成する #
nft add chain inet my_table my_chain { type filter hook input priority 0; }
これにより、 input チェーンイン my_table 優先度が 0.
チェーンを削除する #
nft delete chain inet my_table my_chain
を削除します my_chain from my_table.
のルール nftables #
ルールは、特定の条件に一致するパケットに対するアクションを指定します。以下に、ルールの追加、一覧表示、および削除の例を示します。
ルールの追加 #
nft add rule inet my_table my_chain tcp dport 80 accept
このルールは、TCP ポート 80 (HTTP) 上のトラフィックを許可します。
掲載ルール #
nft list chain inet my_table my_chain
すべてのルールを表示する my_chain.
ルールの削除 #
nft delete rule inet my_table my_chain handle <handle_number>
ハンドル番号を指定してルールを削除します。ハンドル番号は次のように表示されます。 nft list chain inet my_table my_chain -a.
例: nftables 構成: 基本的なファイアウォールの設定 #
以下は、SSH と HTTP/HTTPS の受信を許可し、その他のすべてのトラフィックをブロックする基本的なファイアウォール構成です。
nft add table inet filter nft add chain inet filter input { type filter hook input priority 0\; policy drop\; } nft add rule inet filter input tcp dport 22 accept # SSH を許可 nft add rule inet filter input tcp dport 80 accept # HTTP を許可 nft add rule inet filter input tcp dport 443 accept # HTTPS を許可 nft add rule inet filter input ct state established,related accept # 確立された接続を許可
上級:接続追跡によるステートフルルール #
nftables 接続追跡のサポートが組み込まれており、ステートフル ルールを管理できます。
例: 関連する接続と確立された接続を許可する #
nft add rule inet filter input ct state established,related accept
これにより、すでに確立されている接続や既存の接続に関連する接続からのパケットが許可され、以前に許可された接続の不要な再処理が削減されます。
製品概要 #
その nftables コマンドは、ネットワークパケットフィルタリングのための最新かつ多用途なツールであり、統一された構文とファイアウォールルールを管理するための柔軟なオプションを提供します。 nftablesシンプルなセットアップと複雑なエンタープライズ環境の両方に適した、効率的で保守しやすいファイアウォール構成を作成できます。