LINUX での IPTABLES ファイアウォールの基本的な使用方法のチュートリアル

LINUX での IPTABLES ファイアウォールの基本的な使用方法のチュートリアル

序文

パブリック IP を持つ本番 VPS の場合、必要なポートのみが開かれ、IP とポートを制御するために ACL (アクセス制御リスト) が使用されます。

ここではLinuxファイアウォールnetfilterのユーザーモードツールを使用できます

Iptables には 4 つのテーブルがあります: raw–>mangle (メッセージの元のデータを変更する)–>nat (アドレス変換を定義する)–>filter (許可または不許可のルールを定義する)

各テーブルは複数のチェーンで構成できます。

* フィルターの場合、通常はINPUT、FORWARD、OUTPUTの3つのチェーンでのみ実行できます。

* NATの場合、通常はPREROUTING、OUTPUT、POSTROUTINGの3つのチェーンでのみ実行できます。

* マングルでは、PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTINGの5つのチェーンすべてを使用できます。

フィルター テーブルの 3 つのチェーンの詳細な説明:

* INPUTチェーン: 宛先アドレスがローカルであるすべてのパケットをフィルタリングします

* FORWARDチェーン: このマシンを通過するすべてのデータパケットをフィルタリングします

* OUTPUTチェーン: ローカルマシンによって生成されたすべてのデータパケットをフィルタリングします

類推で学ぶ:

[例]: すべての訪問をフィルタリング:
iptables -t フィルター -A 入力 -s 0.0.0.0/0.0.0.0 -d XXXX -j ドロップ

[例]: SSH iptables のポート 22 を開く -I INPUT -s 0.0.0.0/0.0.0.0 -d XXXX -p tcp --dport 22 -j ACCEPT

[例]: ポート80を開く iptables -A INPUT -s 0.0.0.0/0.0.0.0 -d XXXX -p tcp --dport 80 -j ACCEPT


[例]: 124からのデータは174 IPを通過することが禁止されています
iptables -A 出力 -p tcp -s 45.32.102.124 -d 157.240.22.174 -j 拒否 

[例] 現在有効な iptables ルールを印刷します (-n は IP アドレスを表示します)
iptables -L -n

Linux iptables ファイアウォールでポート範囲を指定する

iptables -I 入力 -p tcp --dport 700:800 -j ドロップ 
iptables -I 入力 -s 11.129.35.45 -p tcp --dport 700:800 -j 受け入れる

1. 700:800は700から800までのすべてのポートを意味します

2. :800は800以下のすべてのポートを意味します

3. 700: 700以上のポートを示します

この例の効果は、ホワイトリスト メカニズムを使用して、ポート 700 ~ 800 が IP アドレス 11.129.35.45 に対してのみ開かれることです。

Snat、Dnat iptables の使用法:

送信元アドレス変換 (Snat): iptables -t nat -A -s プライベート IP -j Snat –to-source パブリック IP

宛先アドレス変換 (Dnat): iptables -t nat -A -PREROUTING -d パブリック IP -j Dnat –to-destination プライベート IP

iptablesコマンドの詳細な説明

よく使用される iptables コマンド オプションは次のとおりです。

-P: デフォルトのポリシーを設定します (デフォルトのドアを閉めるか開くかを設定します)。例: iptables -P INPUT (DROP|ACCEPT)
-F: FLASH、ルールチェーンをクリアします(各チェーンの管理権限に注意してください)
-N:NEW は、ユーザーが新しいチェーンを作成することをサポートします。たとえば、iptables -N inbound_tcp_web は、Web をチェックするために TCP テーブルに接続することを意味します。
-X: ユーザー定義の空のチェーンを削除するために使用します
-Z: チェーンをクリア
-A: 追加
-I num: 挿入、現在のルールを番号として挿入
-R num: リプレイはルール番号を置き換え/変更します
-D num: 削除、削除するルールの数を明示的に指定
-L: 「iptables -L -n -v」などのルールの詳細を表示します。
-sは送信元IPアドレスを示します
-dはターゲットIPアドレスを示します
DROPは破棄(拒否)を意味します
ACCEPTは受け入れを意味する
-p は tcp などの適用可能なプロトコルを示します。

その他の例:

[例] iptables ルールを追加して、ドメイン名が www.sexy.com の Web サイトへのユーザーのアクセスを禁止します。

iptables -I FORWARD -d www.sexy.com -j DROP

[例] iptables ルールを追加して、IP アドレス 20.20.20.20 の Web サイトへのユーザーのアクセスを禁止します。

iptables -I 転送 -d 20.20.20.20 -j ドロップ

[例] IP アドレス 192.168.1.X を持つクライアントがインターネットにアクセスできないようにする iptables ルールを追加します。

iptables -I FORWARD -s 192.168.1.X -j DROP

[例] 192.168.1.0 サブネット内のすべてのクライアントがインターネットにアクセスできないようにする iptables ルールを追加します。

iptables -I FORWARD -s 192.168.1.0/24 -j DROP

[例] 192.168.1.0 サブネット内のすべてのクライアントが FTP プロトコルを使用してダウンロードすることを禁止します。

iptables -I FORWARD -s 192.168.1.0/24 -p tcp –dport 21 -j DROP

[例] すべてのクライアントが 192.168.1.x の Web サーバーにアクセスするように強制します。

iptables -t nat -I PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 192.168.1.x:80

[例] ICMPプロトコルの使用は禁止されています。

iptables -I 入力 -i ppp0 -p icmp -j ドロップ

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • ファイアウォールの iptables 戦略を使用して Linux サーバー上のポートを転送する方法
  • Linux iptables の一般的なファイアウォール ルールの詳細な説明
  • Linuxはiptablesを使用して複数のIPからのサーバーへのアクセスを制限します
  • Linux iptablesコマンドの詳細な説明
  • Linux ファイアウォールの iptables ルールを表示、追加、削除、変更する方法の概要
  • Linux ファイアウォール iptables で IP を禁止およびブロック解除するための一般的なコマンドの詳細な説明
  • Linux での iptables によるポートのブロックとオープンの例
  • Linux iptables とインターフェースを使用してコンテナ ネットワークを管理する Docker の詳細な説明
  • Linux VPS サーバー共通サービス iptables 戦略
  • iptables を使用して Linux を構成し、すべてのポートのログインを禁止し、指定されたポートを開く方法
  • 新しくインストールした Linux システムの /etc/sysconfig ディレクトリに iptables ファイルが存在しない問題の解決方法
  • Alibaba Cloud Linux サーバーで iptables を使用してセキュリティ ポリシーを設定する方法
  • Linuxはiptablesを通じてTCP接続と周波数を制限することでDDOS攻撃を防御します
  • Linux サーバーで iptables+Denyhost によるブルートフォース攻撃に抵抗する設定方法
  • Linux ファイアウォール iptables 入門チュートリアル
  • Linux で iptables ファイアウォール ルールを追加する例
  • Linuxファイアウォールiptablesの詳細な紹介、設定方法と事例

<<:  React と Threejs を使用して VR パノラマ プロジェクトを作成する詳細なプロセス

>>:  OR キーワードを使用した MySql 複数条件クエリ ステートメント

推薦する

CentOS8 yum/dnfで国内ソースを設定する方法

CentOS 8 ではソフトウェア パッケージのインストール プログラムが変更され、yum 構成方法...

MySQL Binlog ログ処理ツールの比較分析

目次運河マクスウェルデータバスAlibaba Cloud のデータ転送サービス (DTS)運河ポジシ...

Linux seqコマンドの使い方の詳しい説明

01. コマンドの概要seq コマンドは整数のシーケンスを生成するために使用されます。 02. コマ...

Vueはアンカー配置機能を実装します

この記事では、アンカー配置を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

HTML のボタン タグをクリックしてページにジャンプする 3 つの方法

方法1: onclickイベントを使用する <input type="button&...

Vue でコミュニケーションを実装する 8 つの方法

目次1. コンポーネント通信1. Props 親コンポーネント ---> 子コンポーネント通信...

Docker インストール rocketMQ チュートリアル (最も詳細)

RocketMQ は、Alibaba が設計した分散型のキューベースのメッセージング ミドルウェア...

HTML入力ファイルコントロールはアップロードされるファイルの種類を制限します

入力ファイルの HTML コントロールを Web ページに追加します。 <input id=&...

6つのレイアウトでのFrameLayoutの使用

序文前回はLinearLayoutについて説明しました。今回はFrameLayoutの使い方を説明し...

CentOS 7 に mysql5.7 の解凍バージョンをインストールするチュートリアル

1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...

Centos7 システムでの MySQL マスター スレーブ同期構成スキーム

序文最近、高可用性プロジェクトに取り組む際には、データの同期が必要になっています。ノードが 2 つし...

JavaScript は詳細なコードで星座クエリ機能を実装します

目次1. タイトル2. コード3. 結果IV. 結論1. タイトルテキスト ボックスに誕生日の値を入...

grep を使用して MySQL エラー ログ情報を取得する方法の詳細な説明

MySQL のメンテナンスを容易にするために、エラー情報を収集するためのインターフェースを提供するス...

Javascript実践におけるコマンドモードの詳しい説明

目次意味構造例カスタムショートカットキー元に戻すとやり直し録音と再生マクロ要約する意味リクエストをオ...

スーパーバイザーを使用して nginx + tomcat コンテナを管理する例

必要: docker を使用して nginx + tomcat デュアル プロセスを起動します。実際...