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 複数条件クエリ ステートメント

推薦する

CUDA10.0 のインストールと Ubuntu での問題

Tensorflow バージョンと Cuda および CUDNN の対応: https://tens...

HTML コードの書き方に関する提案のまとめ

リソースファイルのプロトコルを省略する画像、メディアファイル、スタイル、スクリプトの URL では、...

要素の高さを下から上へ、上から下へ制御する CSS メソッド

よくある質問から議論を始めましょう。CSS を使用して要素の高さを [ブラウザ コンテンツ ウィンド...

HTML 選択タグにおける単一選択と複数選択の詳細な説明

select 要素は、単一選択または複数選択のメニューを作成します。フォームが送信されると、ブラウザ...

MySQLデータベースでスロークエリログを有効にする方法の詳細な説明

データベースはスロークエリログを有効にします設定ファイルを変更する設定ファイルmy.iniに次の2つ...

リアクトルーティングガード(ルーティングインターセプション)の実装

React は Vue とは異なります。ルートにメタ文字を設定することでルートインターセプションを実...

IE6/7 における a.getAttribute(href,2) 問題の分析と解決

簡単な説明<br />IE6および7では、一般的なaタグ(HTMLで記述され、DOM操作...

jQueryのanimateアニメーションメソッドとアニメーションキューイング問題の解決方法の詳しい説明

目次animate() アニメーションメソッドアニメーションキューイングdelay() メソッドアニ...

Mysql でサーバーの UUID を変更する方法

問題の原因:スレーブサーバーがクローンマスターサーバーである場合、server-uuidの値は同じで...

MySQL テーブルがロックされているかどうかを照会する方法

具体的な方法: (推奨チュートリアル:MySQLデータベース学習チュートリアル)テーブルロックの状態...

ReactでCSSをエレガントに書く方法

目次1. インラインスタイル2. インポート方法を使用する3.cssモジュールのエクスポート4. ス...

Node.js管理ツールnvmの詳細なインストール手順

いいえnvmはnodejsの複数のバージョンを管理する役割を担っています。インストール: https...

Viteプロジェクトを作成する手順

目次序文yarn create は何をしますか?ソースコード分析プロジェクトの依存関係テンプレート構...

jsネイティブ構文プロトタイプ、__proto__、コンストラクタの徹底的な理解

目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...

初めてDockerイメージを構築、実行、公開、取得するための詳細な手順

1. はじめに以前は、Python アプリケーションの作成を開始したい場合、最初のステップはマシンに...