50% off 全プラン、期間限定。料金は $2.48/mo
14分残り
セキュリティとネットワーク

Linux Iptables ルールのリスト化と削除 — 初心者向けチートシート

リリー・カーネル By リリー・カーネル 14分読む 更新日:2023年9月18日
Iptables ルールのリスト化と削除に関するガイドライン

不正アクセスとサーバーへのハッキングは深刻な脅威です。そのため、ファイアウォールをネットワークセキュリティ手法の一部として導入する必要があります。iptables ルールの操作方法を理解することは、Linux システムでこれらのリスクを軽減するための基本的なスキルです。このチュートリアルは、iptables ルールの表示と削除などの基本的なファイアウォール概念に精通するために役立ちます。 Ubuntuこれは、簡単なコマンドを実行してこれを達成するのに役立ちます。iptables ルールをリストアップまたは削除する方法について説明する前に、iptables ルールが何であり、なぜ使用するのかについて説明しましょう。

Iptablesとは何ですか?

iptables はコマンドラインファイアウォールユーティリティで、以下を通じてトラフィックを許可またはブロックします ポリシーチェーンシステム上で接続が試みられると、iptablesはリスト内のマッチするルールを探し、ネットワークセキュリティの堅固なサポートになります。ルールが見つからない場合は、デフォルトアクションにフォールバックします。

iptables はほとんどのシステムにデフォルトでインストール済みです Linuxディストリビューション。次のコマンドで更新またはインストールできます:

sudo apt-get install iptables

Iptables を使用する理由は何ですか?

Linux コマンドラインファイアウォールとして、iptables はシステム管理者が設定可能なテーブルルールを通じて受信および送信トラフィックを管理できます。Iptables は、ビルトインまたはユーザー定義ルールを含むチェーンを持つテーブルのセットを使用します。

前のセクションで説明したように、iptables は Linux システムのネットワークセキュリティにおいて重要な役割を果たしています。このあとの内容では、iptables のすべてのルール一覧を表示する方法、iptables ルールの表示と削除の概念など、これらの操作について主に説明します。

より詳しくは、この記事では iptables の基本的なタスクをいくつか紹介します。ルールの一覧表示、パケットとバイトカウンターの削除、iptables ルールの削除、チェーンのクリア、すべてのチェーンの削除とすべてのトラフィックの許可といった操作方法を説明します。

Ubuntu における Iptables 完全ガイド

iptablesのルールを確認する前に、Linuxサーバーを使用していることと、iptablesコマンドがインストールされていることを確認してください。これらの要件に加えて、sudo権限が必要です。ファイアウォール設定時は、SSHトラフィック(デフォルトではポート22)をブロックしてサーバーへのアクセスを失わないよう注意してください。ファイアウォール設定が原因でアクセスできなくなった場合、アウトオブバンドコンソール経由で接続して修正する必要があります。

参考記事: SSH ポートを Linux で変更する方法 | SSH ポート設定ガイド

仕様別にルールをリストアップ

アクティブな iptables ルールを確認できます 表形式で または ルール仕様のリスト。ほぼ両方のコマンドは異なる形式で同じ情報を提供しますが、アクティブなiptablesのすべてのルールを仕様ごとに一覧表示するには、iptablesコマンドを以下のオプション付きで実行する必要があります。 -S オプション:

sudo iptables -S

このiptables show rulesコマンドを実行すると、以下のような出力が表示されます:

show list rules コマンドの実行結果
show list rules コマンドの実行結果

特定のチェーンをリスト表示する

show iptables の出力を INPUT、OUTPUT などの特定のチェーンに限定したい場合は TCPの場合、-S オプションの直後にチェーン名を指定できます。例えば、以下の iptables show rules コマンドは TCP チェーンを指定するのに役立ちます。

sudo iptables -S TCP

TCP チェーンを指定してリストアップした出力
TCP チェーンを指定してリストアップした出力

前述の通り、iptables のルール表示を実現するもう1つの方法があります。つまり、iptables のルールをルール表の形で見る方法です。この手法について説明しましょう。

テーブル形式でルールをリストアップ

コマンドを使って iptables のルールをテーブル形式で表示すると、様々なルールを比較できます。以下の iptables 表示コマンドを実行する必要があります。 -Lオプション これらすべてのアクティブなルールをテーブル形式で出力するには:

sudo iptables -L

このコマンドはチェーン別に整列した現在のすべてのルールを表示します。INPUT、OUTPUT、TCP など特定のチェーンに出力を限定する方法があります。-L オプションの直後にチェーン名を指定する必要があります。iptables のルール表示を INPUT チェーンに限定した例を示します:

sudo iptables -L INPUT

iptables のルール表示を INPUT チェーンに限定した出力
iptables のルール表示を INPUT チェーンに限定した出力

上記出力の1行目はチェーン名(この場合は INPUT)とそのデフォルトポリシー(DROP)を示しています。次の行はテーブル内の各列のヘッダとチェーンのルールが含まれています。これらについて説明します:

  • Target: パケットがルールに該当する場合、ターゲットはそのパケットに対して何を行うかを決定します。パケットを受け入れたり、ドロップしたり、ログに記録したり、さらに多くのルールと照合するために別のチェーンに送信したりできます。
  • prot: プロトコル(TCP、udp、ICMP、all など)
  • opt: IP オプションを示します(ほとんど使用されません)
  • source: トラフィックのソース IP アドレス/サブネットを表示します 
  • destination: トラフィックの宛先 IP アドレス/サブネットを表示します

ラベルのない列はルールのオプションを示し、前の列に示されていないルールの任意の部分です。この情報は、ソースおよび宛先ポートからパケットの接続状態まで、何でもあり得ます。

参考記事: VPSにOpenVPNをインストール - OpenVPNクライアント設定 🔑

パケット数と合計サイズを表示するには?

iptables のルールをリストアップするとき、各 iptables ルールに該当するパケット数と合計バイト数を表示できます。これはどのルールがパケットに一致しているかを理解するのに役立ちます。 -L-v オプションを一緒に使用する必要があります。 それ

INPUT チェーンを再度使用し、-v オプションを付ける例を示します:

sudo iptables -L INPUT -v

パケットカウントと合計サイズの表示
パケットカウントと合計サイズの表示の出力

リストに pkts bytesという2つの新しい列が追加されたことに注意してください。iptables のすべてのルール表示コマンドを実行する様々な方法を学習しました。次はパケットカウントと合計サイズをリセットする方法を知る時が来ました。

パケット数と合計サイズをリセットするには?

ルールのパケットおよびバイトカウンターをクリアまたはゼロにしたい場合は、-Z オプションを使用する必要があります。また、再起動が発生するとリセットされます。これは、サーバーが既存ルールに一致する新しいトラフィックを受信しているかどうかを確認したい場合に便利です。

以下を使用して、すべてのチェーンとルールのカウンターをクリアできます: -Z オプション 単独で

sudo iptables -Z

特定のチェーン内のすべてのルールのカウンターを削除するには、-Z オプションを使用してチェーンを指定する必要があります。例えば、以下のコマンドは INPUT チェーンのカウンターをクリアするために使用されます:

sudo iptables -Z INPUT

特定のルールのカウンターを削除したい場合は、チェーン名とルール番号を正確に指定する必要があります。例えば、INPUT チェーンの最初のルールのカウンターをゼロにするには、以下のコマンドを実行できます:

sudo iptables -Z INPUT 1

iptables のすべてのルール表示コマンドとパケットおよびバイトカウンターをリセットする方法を知ることに加えて、iptables ルールを削除する方法を知ることは有用です。

参考記事: VPSにPTPP VPNサーバーをインストールする方法

iptables ルールを削除するには?

複数のコマンドを使用して Iptables ルールを削除したり、チェーン内のすべてのルールを削除したりできます。ここではこれらの方法について説明します。

仕様別にルールを削除

Iptables ルールを削除する方法の1つは、ルール仕様を使用することです。これにより、iptables コマンドを -D オプション とルール仕様で実行できます。この方法を使用してルールを削除する場合、ルールリストの出力である iptables -S を参考にして利用できます。

たとえば、無効な受信パケットを破棄するルール (-A INPUT -m conntrack –ctstate INVALID -j DROP) を削除するには、次のコマンドを実行します。

sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

-A オプションはルール作成時の位置を指定するもので、ここでは除外する必要があります。

チェーンと番号でルールを削除

Iptables ルールを削除するもう1つの方法は、チェーンと行番号を使用することです。次のコマンドを入力して、ルールの行番号を確認し、テーブル形式でルールをリストアップし、 –line-numbers オプション:

sudo iptables -L --line-numbers

チェーンと番号でルールを削除
チェーンと番号によるルール削除の出力

実行後、すべての Iptables ルールには行番号が表示され、num ヘッダーで示されます。

削除するルールがわかり、そのチェーンと行番号を把握したら、iptables -D コマンドをチェーンとルール番号で使用する必要があります。たとえば、無効なパケットを破棄する入力ルールを削除する場合、INPUT チェーンのルール 3 であることがわかります。次のコマンドを実行してください。

sudo iptables -D INPUT 3

チェーンをフラッシュするには?

チェーン内のすべての Iptables ルールを削除する方法があります。これを チェーンをフラッシュすると呼びます。ここではこれを行うさまざまな方法について説明します。詳しく説明する前に、デフォルトポリシーが drop または deny のチェーンをフラッシュする場合、SSH 経由でサーバーからロックアウトされないように注意してください。ロックアウトされた場合、コンソール経由で接続してアクセスを修正する必要があります。

単一チェーンのフラッシュ

特定のチェーンをフラッシュする、つまりチェーン内のすべてのルールを削除するには、 -F または同等のもの –flush オプション と選択したチェーンの名前を使用します。INPUT チェーン内のすべてのルールを削除する場合はどうしますか?簡単です。次のコマンドを実行してください。

sudo iptables -F INPUT

すべてのチェーンをフラッシュ

すべてのチェーンを削除またはフラッシュするには、-F または同等の –flush オプションを単独で使用できます。

sudo iptables -F

すべてのルールをフラッシュし、すべてのチェーンを削除し、すべてを受け入れるには?

この時点で、すべてのファイアウォールルール、テーブル、チェーンをフラッシュし、すべてのネットワークトラフィックを許可する方法について説明します。このプロセスは事実上ファイアウォールを無効にすることに注意してください。したがって、ファイアウォール設定を最初からやり直す場合のみ、このセクションに従ってください。

まず、組み込みチェーンの各々のデフォルトポリシーを ACCEPT に設定する必要があります。これを行う主な理由は、SSH によってサーバーからロックアウトされないようにするためです。

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

次に、nat テーブルと mangle テーブルをフラッシュし、すべてのチェーンを (-F)フラッシュし、デフォルト以外のチェーンをすべて削除します。 (-X) こんな感じで:

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

前のコマンドを実行した後、ファイアウォールはすべてのネットワークトラフィックを許可します。ルールを現在表示したい場合は、ルールがないことが表示されます。INPUT、FORWARD、OUTPUT チェーンなど、3つのデフォルトチェーンのみが残ります。

Ubuntu で iptables を設定する方法

基本的なファイアウォール動作と同様に、Iptables ルールは各チェーンにリストされている順序で読み込まれます。つまり、正しい順序でルールを設定する必要があります。新しいルールを追加すると、ルールリストの最後に追加されます。特定のリスト位置に新しいルールを追加するには、 iptables -I <index> -command を使用して挿入します。<index> このコマンドでルールを挿入する順序番号です。入力するインデックス番号を確認するには、次のコマンドを使用できます。

sudo iptables -L --line-numbers

各ルール行の最初の番号は、チェーン内での位置を示しています。特定の既存ルールの上に新しいルールを追加するには、その既存ルールのインデックス番号を使用する必要があります。例えば、チェーンの最上部に新しいルールを追加したい場合は、以下のコマンドをインデックス番号1で実行します。

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

iptables と firewalld の違いは何ですか?

iptablesとfirewalldは、パケットフィルタリング(静的フィルタリング)用に特別に設計されたLinuxシステムのファイアウォール管理に役立つ実践的なツールです。パケットフィルタリングは、入出力情報パケットを管理することで特定のネットワークへのアクセスをユーザーが制御できるファイアウォール戦略です。あらかじめ設定されたファイアウォールルールに基づいて、送信元と宛先のプロトコル、ポート、IPアドレスに従って、パケットを通過させるか拒否するかのいずれかが行われます。これらのルールは非常に効率的なセキュリティメカニズムを提供し、パケットフィルタリングはシステムLAN(ローカルエリアネットワーク)の外部からルーティングされたデバイスに対する優れた防御となります。

firewalldはもともとiptablesを処理するために導入されたソフトウェアであり、ユーザーがそれをより簡単に操作できるようにするためのものです。firewalldとiptablesの導入を踏まえて、両者をより詳しく比較してみましょう。

iptables vs firewalld: システム設定

firewalldとiptablesは異なる設定とデフォルトストレージ設定を使用しています。iptablesの場合、変更があるたびに古いルールをすべてフラッシュして新しいルールを読み込む必要があるため、システムはリブートする必要があります。しかし、firewalldを使用する場合、ルールは再作成されず、代わりに相違点と変更が既存ルールに適用されるため、実行時に効果を確認することができます。

iptables vs firewalld: ユーザーインターフェース

firewalldはグラフィカルユーザーインターフェース(GUI)を使用しています。一方、iptablesはコマンドラインインターフェース(CLI)を使用しており、一部のユーザーにとってLinuxカーネルのファイアウォールルールにアクセスするのが困難な場合があり、firewalldがより簡潔な選択肢となります。iptablesは短いコマンドのみを使用するため応答時間が短いという点は考慮する価値があります。これらのことはさておき、どちらにも用途があるため、自分がより快適に操作できるものを選択してください。

最後に: iptables でルールを確認する

iptablesはLinuxオペレーティングシステム用に特別に開発された、非常に柔軟なファイアウォールユーティリティです。Linuxの初心者であろうと、プロのシステム管理者であろうと、iptablesルールが役に立つ方法があります。この記事は主にこのファイアウォールユーティリティの基本的なコマンド(iptablesルール表示とiptablesルール削除を含む)について述べており、Linuxの機能を簡潔にレビューすることを目的としています。さらに、以下のサービスを利用することができます。 Linux VPSホスティングソリューション このすばらしいオペレーティングシステムの真の潜在能力を引き出すために。Cloudzyでは、ウェブホスティング、ウェブアプリのデプロイ、コード開発、テスト、自動化環境の構築など、様々なユースケースに対応するKVM搭載のLinux VPSプランを提供しています。

よくあるご質問

Linux の iptables ルールをすべて仕様別に一覧表示するには?

現在アクティブなiptablesルールをすべて、その仕様または機能別にリストアップしたい場合は、iptablesコマンドの後に -Sフラグを使用することで可能です。この場合、 sudo キーワードの使用に注意してください。

sudo iptables -S

iptables のルールを削除するには?

特定のチェーンを削除する場合、チェーン内のすべてのルールが削除されるため、以下の操作が必要です。 -Fまたはflushオプションとチェーン名を使用します。 OUTPUT チェーン内のすべてのルールを削除したいとしましょう。どうすればいいでしょうか?以下のコマンドを実行する必要があります。

 sudo iptables -F OUTPUT

Ubuntu での iptables はどのように機能しますか?

iptablesファイアウォールは、ネットワークトラフィックをルールセットと比較します。iptablesルールは、ルールと一致するパケットの特性を指定し、パケットが一致した場合に実行するアクションを指定しています。もちろん、特定のルールと一致するパケットを設定するための多くのオプションがあります。

iptables のルールは即座に適用されますか?それはなぜですか?

はい、iptablesルールは即座に有効になります。スクリプトはINPUTおよびOUTPUTチェーンに追加され、ルールはこれらのチェーンの末尾に追加されているためです。

共有

ブログから最新記事

読み続ける。

MikroTik L2TP VPN ガイド用の Cloudzy タイトル画像。ノートパソコンがシールドアイコン付きの光る青と金色のデジタルトンネルを介してサーバーラックに接続している様子を表示。
セキュリティとネットワーク

MikroTik L2TP VPN セットアップ (IPsec 付き): RouterOS ガイド (2026)

このMikroTik L2TP VPN セットアップでは、L2TPがトンネリングを、IPsecが暗号化と整合性を担当します。この2つを組み合わせることで、サードパーティ製ツール不要でネイティブクライアント互換性が得られます

レクサ サイラスレクサ サイラス 9分で読む
SSH警告メッセージを表示するターミナルウィンドウ。リモートホスト識別が変更されたことを示し、ダークティール背景に「Fix Guide」タイトルと Cloudzy ブランディングが表示されています
セキュリティとネットワーク

警告: リモートホスト識別が変更されました。その対処方法をご紹介

SSH はセキュアなネットワークプロトコルで、システム間に暗号化されたトンネルを作成します。グラフィックスなしにリモートコンピュータアクセスが必要な開発者の間で今も広く使われています

レクサ サイラスレクサ サイラス 10分の読み取り
Linux 名前解決エラーに対応するため、DNS サーバートラブルシューティングガイドのイラスト。警告シンボルとダーク背景上の青色サーバーが表示されています
セキュリティとネットワーク

一時的な名前解決エラー: その意味と対処方法

Linux を使用する際、Webサイトへのアクセス、パッケージ更新、インターネット接続が必要なタスク実行時に一時的な名前解決エラーが発生することがあります

レクサ サイラスレクサ サイラス 12分で読める

デプロイの準備はできていますか? $2.48/月からの価格

2008年創業の独立系クラウド。AMD EPYC、NVMe、40 Gbps。14日間返金保証。