はじめに
この実験では、Linux でネットワークパケットフィルタがアクティブかどうかを確認する方法を学びます。iptables
を使用した従来の方法でファイアウォールルールを一覧表示し、新しい nftables
フレームワークのルールセットを一覧表示することで調査します。最後に、/proc/sys/net
ディレクトリ内の関連ファイルを調べることでフィルタ設定を検証し、Linux システムでのネットワークパケットフィルタリングの状態を判断する方法を包括的に理解します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
この実験では、Linux でネットワークパケットフィルタがアクティブかどうかを確認する方法を学びます。iptables
を使用した従来の方法でファイアウォールルールを一覧表示し、新しい nftables
フレームワークのルールセットを一覧表示することで調査します。最後に、/proc/sys/net
ディレクトリ内の関連ファイルを調べることでフィルタ設定を検証し、Linux システムでのネットワークパケットフィルタリングの状態を判断する方法を包括的に理解します。
このステップでは、iptables
コマンドを使用して現在のファイアウォールルールを表示する方法を学びます。iptables
は、Linux カーネルファイアウォールを設定するために使用される従来のコマンドラインユーティリティです。
ファイアウォールはネットワークセキュリティに不可欠です。一連のルールに基づいて、着信および発信ネットワークトラフィックを制御します。これらのルールによって、特定の接続を許可するかブロックするかが決まります。
現在の iptables
ルールを一覧表示するには、-L
オプションを使用します。このオプションは、iptables
に指定されたチェイン内のルールを一覧表示するよう指示します。
まだ開いていない場合は、ターミナルを開きます。次のコマンドを入力して Enter キーを押します。
sudo iptables -L
ファイアウォールルールを表示するには管理者権限が必要なので、sudo
を使用する必要があります。
次のような出力が表示されます。
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
この出力は、3 つのデフォルトチェイン (INPUT
、FORWARD
、OUTPUT
) のルールを示しています。
INPUT
: ローカルマシンを宛先とするトラフィックを制御します。FORWARD
: マシンを通過するトラフィック(ルーティングに使用)を制御します。OUTPUT
: ローカルマシンから発信されるトラフィックを制御します。policy ACCEPT
は、特定のルールに一致しない場合、これらのチェインではデフォルトでトラフィックが許可されることを意味します。
特定のルールが設定されている場合、それらは各チェインの下に一覧表示され、ターゲット(例:ACCEPT、DROP)、プロトコル(例:tcp、udp)、ソースおよび宛先の IP アドレス、ポートなどの詳細が表示されます。
現時点では、デフォルトの設定はシンプルですが、iptables
を使用して現在のルールを表示することに成功しました。
続ける をクリックして次のステップに進みます。
このステップでは、iptables
の後継である nftables
を調べます。iptables
は依然として広く使用されていますが、nftables
はパケットフィルタリングとネットワークアドレス変換 (NAT) により柔軟で効率的なフレームワークを提供します。
nftables
は nft
コマンドラインユーティリティを使用してルールセットを管理します。ルールセットは、ネットワークトラフィックの処理方法を定義するテーブル、チェイン、およびルールの集合です。
現在の nftables
ルールセットを表示するには、list ruleset
コマンドを使用します。
ターミナルに次のコマンドを入力して Enter キーを押します。
sudo nft list ruleset
再び、ファイアウォールルールを表示するには管理者権限が必要なので、sudo
が必要です。
次のような出力が表示される場合があります。また、nftables
ルールが設定されていない場合は空になることもあります。
table ip filter {
chain INPUT {
type filter hook input priority 0; policy accept;
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}
この出力は、ip
アドレスファミリの filter
という名前のテーブルを持つ基本的な nftables
ルールセットを示しています。このテーブル内には、iptables
と同様に、INPUT
、FORWARD
、OUTPUT
の 3 つのチェインがあります。
table ip filter
: IPv4 トラフィック用の filter
という名前のテーブルを定義します。chain INPUT { ... }
: 入力チェインを定義します。type filter hook input priority 0;
: これが入力ネットワークパスにフックされたフィルタチェインであり、優先度が 0 であることを指定します。policy accept;
: このチェインのデフォルトポリシーをトラフィックを許可するように設定します。特定のルールが定義されている場合、それらはチェインブロック内に一覧表示されます。
iptables -L
と nft list ruleset
の出力を比較することで、どのファイアウォールシステムがシステム上のルールをアクティブに管理しているか、または両方が存在するかを把握することができます。最新のシステムでは、nftables
がデフォルトになりつつあります。
これで、nft
を使用して現在の nftables
ルールセットを表示することに成功しました。
続ける をクリックして次に進みます。
このステップでは、/proc/sys/net
ディレクトリ内のファイルを調べることで、いくつかのカーネルレベルのネットワークフィルタリング設定を調べます。/proc
ファイルシステムは、プロセスに関する情報やその他のシステム情報を提供する仮想ファイルシステムです。/proc/sys
ディレクトリには、実行時にカーネルパラメータを表示および変更できるファイルが含まれています。
具体的には、ネットワークフィルタリングと転送に関連する設定を見ていきます。
cd
コマンドを使用して関連するディレクトリに移動します。
cd /proc/sys/net/ipv4/conf/all/
/proc/sys/net/ipv4/conf/all/
ディレクトリには、すべてのネットワークインターフェイスに適用される設定ファイルが含まれています。
では、転送に関連するファイルの内容を表示しましょう。cat
コマンドを使用して forwarding
ファイルの内容を表示します。
cat forwarding
出力はおそらく 0
または 1
になります。
0
0
: IP 転送が無効になっていることを示します。これは、システムが異なるネットワークインターフェイス間でパケットを転送しないことを意味します。1
: IP 転送が有効になっていることを示します。これは、ルーターまたはゲートウェイとして機能するシステムに必要です。次に、ソースルートオプションを持つ着信パケットのフィルタリングに関連する設定を見てみましょう。このオプションは、時に悪意のある方法で使用されることがあります。accept_source_route
ファイルの内容を表示します。
cat accept_source_route
出力はおそらく 0
になります。
0
0
: システムがソースルートオプションを持つパケットを無視することを示します。これは一般的なセキュリティ対策です。1
: システムがソースルートオプションを持つパケットを受け入れることを示します。/proc/sys/net
内のこれらのファイルは、カーネルがネットワークトラフィックをどのように処理するように構成されているかを低レベルで示しています。iptables
や nftables
がフィルタリングのルールを管理する一方で、これらのカーネルパラメータは転送や特定のパケットオプションの扱いなどの基本的なネットワーク動作を制御します。
これで、/proc
ファイルシステムを使用してカーネルのネットワークフィルタリング設定を調べることに成功しました。
続ける をクリックして実験を完了します。
この実験では、一般的なファイアウォールツールの設定を調べることで、Linux でネットワークパケットフィルタが有効になっているかどうかを確認する方法を学びました。まず、iptables -L
コマンドを使用して、従来の iptables
ユーティリティで設定された現在のルールを一覧表示し、デフォルトのチェイン (INPUT、FORWARD、OUTPUT) とそれらのポリシーを理解しました。
次に、iptables
の現代的な代替手段である nftables
を、nft list ruleset
コマンドを使用してその設定を表示することで調べました。最後に、カーネルのネットワーク設定を公開する /proc/sys/net
ディレクトリ内の関連パラメータを確認することで、より低レベルでフィルタ設定を検証する方法を学びました。