不正なアクセスやサーバーのハッキングは深刻な脅威であるため、ネットワーク セキュリティ技術の一部としてファイアウォールを実装する必要があります。 Iptables ルールの操作方法を知ることは、Linux システムでのこれらのリスクを軽減するための主要な資産の 1 つです。このチュートリアルでは、iptables のルールの表示や iptables ルールの削除など、基本的なファイアウォールの概念を理解する方法を説明します。 Ubuntu、これを達成するための簡単なコマンドを実行するのに役立ちます。 iptables ルールを一覧表示または削除する方法を説明する前に、iptables ルールとは何なのか、そしてなぜそれを使用するのかについて説明しましょう。
イプタブルズとは何ですか?
iptables は、次のトラフィックを許可またはブロックするコマンドライン ファイアウォール ユーティリティです。 ポリシーチェーン。システム上で接続を確立しようとすると、iptables はルールに一致するルールをリストから探し、ネットワーク セキュリティの適切なアシスタントを提供します。接続用の接続が見つからない場合は、デフォルトのアクションが使用されます。
iptables はほとんどの場合、どのデバイスにもプリインストールされています。 Linuxディストリビューション。次のコマンドを使用して更新またはインストールできます。
sudo apt-get install iptables
なぜ Iptables を使用するのでしょうか?
Linux コマンド ライン ファイアウォールとしての iptables を使用すると、システム管理者は構成可能なテーブル ルールを介して受信トラフィックと送信トラフィックを処理できます。 iptables は、一連の組み込みルールまたはユーザー定義ルールを含むチェーンを持つ一連のテーブルを使用します。
前のセクションで述べたように、iptables はほとんどの Linux システムのネットワーク セキュリティにおいて重要な役割を果たします。この記事の残りの部分は、iptables の表示方法や iptables ルールの削除方法などの概念を含む、iptables のすべてのルールのリストの説明に主に焦点を当てています。
より具体的には、この記事では、いくつかの重要な iptables タスクについて説明し、ルールの一覧表示、パケットおよびバイト カウンタの削除、iptables ルールの削除、チェーンのフラッシュ、およびすべてのチェーンの削除とすべてのトラフィックの受け入れ方法を示します。
Ubuntu の Iptables の完全ガイド
iptables show ルールを実行する前に、iptables コマンドがインストールされた Linux サーバーを使用する必要があることに注意してください。これらの要件に加えて、sudo 権限を持っていることが不可欠です。ファイアウォールを使用する場合は、SSH トラフィック (デフォルトではポート:22) をブロックしてサーバーからロックアウトされないよう注意してください。ファイアウォールの設定が原因でアクセスできなくなった場合は、帯域外コンソール経由で接続して修正する必要がある場合があります。
こちらもお読みください: Linux で SSH ポートを変更する方法 | SSH ポートの簡単なステップバイステップ ガイド
仕様ごとのルールのリスト表示
アクティブな iptables ルールを表示できます テーブルの中で またはとして ルール仕様のリスト。ほぼ両方の方法で、同じ情報が異なる形式で提供されます。仕様に従ってアクティブな iptables のすべてのルールをリストするには、次のコマンドを使用して iptables コマンドを実行する必要があります。 -Sオプション:
sudo iptables -S
この iptables show rules コマンドを実行すると、次のような出力が表示されます。

特定のチェーンをリストする
show iptables の出力を INPUT、OUTPUT、または TCPでは、-S オプションの直後にチェーン名を指定できます。たとえば、次の iptables show rules コマンドは、TCP チェーンでの指定に役立ちます。
sudo iptables -S TCP

前に説明したように、iptables のルール表示を実行するには別の方法があります。それは、iptables ルールをルールのテーブルとして表示することです。このテクニックを見てみましょう。
ルールをテーブルとしてリストする
コマンドを使用して iptables ルールをテーブルに表示すると、さまざまなルールを比較するのに役立ちます。次の show iptables コマンドを実行する必要があります。 -L オプション これらのアクティブなルールをすべてテーブルに出力するには、次のようにします。
sudo iptables -L
このコマンドは、チェーンごとに並べ替えられた現在のルールをすべて表示します。出力を INPUT、OUTPUT、TCP などの特定のチェーンに制限する方法があります。 -L オプションの直後にチェーン名を指定する必要があります。以下は、iptables show ルールを INPUT チェーンに制限する例です。
sudo iptables -L INPUT

上記の出力の最初の行には、チェーン名 (この場合は INPUT) とそのデフォルト ポリシー (DROP) が表示されます。次の行には、テーブルの各列のヘッダーとチェーンのルールが含まれています。それらをすべて学習できるように、それらを見ていきます。
- ターゲット: パケットがルールに一致する場合、ターゲットはパケットに対して何を行うべきかを決定します。パケットを受け入れ、ドロップし、ログに記録したり、別のチェーンに送信して、より多くのルールと比較したりすることができます。
- prot: プロトコル (TCP、udp、ICMP、またはすべてなど)
- opt: IP オプションを示します (使用頻度は低い)
- ソース: トラフィックの送信元 IP アドレス/サブネットを表示します。
- destination: トラフィックの宛先 IP アドレス/サブネットを示します。
ラベルのない列はルールのオプションを示しており、前の列で示されていないルールの一部です。この情報には、送信元ポートと宛先ポートからパケットの接続状態まで、あらゆるものが含まれます。
こちらもお読みください: VPS に OpenVPN をインストール – OpenVPN クライアントのセットアップ 🔑
パケット数と集計サイズを表示するにはどうすればよいですか?
iptables ルールをリストする場合、特定の iptables ルールに一致するパケットの数とパケットの合計サイズをバイト単位で表示できます。これは、パケットに対してどのルールが一致するかを理解するのに役立ちます。を使用する必要があります。 -L そして -v オプションを組み合わせて実行します これ。
以下は、-v オプションを使用して INPUT チェーンを再度使用する例です。
sudo iptables -L INPUT -v

リストに という名前の列がさらに 2 つあることに注目してください。 パケット そして バイト。 iptables show all rules コマンドを実行するためのさまざまな方法を学習しました。今度は、パケット数と集計サイズをリセットする方法を学習します。
パケット数と集約サイズをリセットするにはどうすればよいですか?
ルールのパケットおよびバイト カウンタをクリアまたはゼロにする場合は、-Z オプションを使用する必要があります。また、再起動が発生した場合にもリセットされるため、サーバーが既存のルールに一致する新しいトラフィックを受信しているかどうかを確認する場合に役立ちます。
すべてのチェーンとルールのカウンターをクリアするには、 -Zオプション それ自体:
sudo iptables -Z
特定のチェーン内のすべてのルールのカウンターを削除するには、-Z オプションを使用してチェーンを指定する必要があります。たとえば、次のコマンドは INPUT チェーン カウンタをクリアするために使用されます。
sudo iptables -Z INPUT
特定のルールのカウンタを削除する場合は、チェーン名とルール番号を正確に指定する必要があります。たとえば、次のコマンドを実行して、INPUT チェーンの最初のルールのカウンターをゼロにできます。
sudo iptables -Z INPUT 1
iptables show all rules コマンドと、iptables パケットおよびバイト カウンタをリセットする方法を知ることに加えて、iptables ルールを削除する方法も知っておくとよいでしょう。
こちらもお読みください: VPS に PPTP 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 ルールを削除する方法があります。 チェーンをフラッシングする。ここでは、これを行うためのさまざまな方法について説明します。先に進む前に、ドロップまたは拒否のデフォルト ポリシーでチェーンをフラッシュするときに、SSH 経由でサーバーからロックアウトされないように注意してください。なぜなら、そうする場合、アクセスを修正するためにコンソール経由で接続する必要がある可能性があるからです。
単一チェーンをフラッシュする
特定のチェーンをフラッシュするには、つまりチェーン内のすべてのルールを削除するには、 -F または同等のもの –フラッシュオプション および選択したチェーンの名前。 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 テーブルとマングルテーブルをフラッシュし、すべてのチェーンをフラッシュする必要があります (-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 <インデックス> コマンド。 の <インデックス> は、このコマンドにルールを挿入する順序番号です。次のコマンドを使用すると、入力するインデックス番号を理解できます。
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 と firewalld: システム構成
Firewalld と iptables は、異なる構成とデフォルトのストレージ設定を利用します。 iptables では、すべての変更は古いルールをすべてフラッシュして新しいルールを読み取ることを意味するため、システムを再起動する必要があります。ただし、firewalld を使用すると、ルールは再作成されません。代わりに、行われた相違点と変更は既存のルールを変更するために適用され、実行時にルールが有効になるのを確認できます。
iptables と firewalld: ユーザー インターフェイス
Firewalld はグラフィック ユーザー インターフェイス (GUI) を使用します。ただし、iptables はコマンド ライン インターフェイス (CLI) を利用しているため、一部の人にとって iptables を使用して Linux カーネル ファイアウォール ルールにアクセスするのは難しい場合があり、firewalld をより簡単なオプションにしています。 iptables は短いコマンドのみを使用するため、応答時間が短いと考えるのが最善です。これらすべてはさておき、どちらにもそれぞれの使用例があるため、より快適に作業できる方を選択してください。
最終的な考え: iptables のルールの表示
iptables は、Linux オペレーティング システム用に特別に作成された柔軟性の高いファイアウォール ユーティリティです。あなたが初心者の Linux マニアであろうと、プロのシステム管理者であろうとは関係ありません。 iptables ルールが役に立つ方法があります。この記事では、Linux の機能を簡単にレビューすることを目的として、主に、iptables show rules や delete iptables rules など、このファイアウォール ユーティリティの基本的なコマンドについて説明しました。さらに、弊社の Linux VPS ホスティング ソリューション この素晴らしいオペレーティング システムの真の可能性を活用するために。 Cloudzy では、Web ホスティング、Web アプリのデプロイ、さらにはコードの開発、テスト、自動化のための環境のセットアップなど、複数のユースケースに適したさまざまな KVM ベースの Linux VPS プランを提供しています。
よくある質問
すべての Linux iptables ルールを仕様別にリストするにはどうすればよいですか?
現在アクティブなすべての iptables ルールをその仕様または機能別にリストしたい場合は、iptables コマンドに続けて -S フラグ。の活用に注意してください 須藤 この場合のキーワード:
sudo iptables -S
iptables ルールを削除するにはどうすればよいですか?
特定のチェーンを削除するには、チェーン内のすべてのルールが削除されます。 -F または –flush オプションとチェーンの名前を使用します。 OUTPUT チェーン内のすべてのルールを削除したいとします。どうすればよいでしょうか?さて、次のコマンドを実行する必要があります。
sudo iptables -F 出力
iptables は Ubuntu でどのように機能しますか?
iptables ファイアウォールは、ネットワーク トラフィックを一連のルールと比較します。 iptables ルールは、ルールに一致するパケットの特性と、パケットが一致した場合に実行するアクションを指定します。もちろん、どのパケットが特定のルールに一致するかを設定するためのオプションは数多くあります。
iptables ルールはすぐに有効になりますか?なぜ?
はい、iptables ルールは即座に有効になります。これは、スクリプトが INPUT チェーンと OUTPUT チェーンに追加され、ルールがそれらのチェーンの最後に追加されるためです。