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

推薦する

シェルでパスワードなしでMySQLデータベースに素早くログインする方法

背景Shell の mysql-client を介して MySQL データベースにログインする場合、...

MySQL データベース接続例外の概要 (収集する価値あり)

Centos にプロジェクトをデプロイするときに奇妙な問題が見つかりました。データベース接続で例外...

MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

テーブルの幅を固定して、テキストによって幅が変わらないように設定

ページ内のテーブルの幅を width="600px" に設定した後も、幅が固定さ...

JavaScript を使用してソートアルゴリズムを実装する方法

目次バブルソート選択ソート挿入ソート要約するバブルソートバブルソートは、シーケンスの右側から始めて、...

mysql indexof関数の使用手順

以下のように表示されます。 LOCATE(部分文字列、文字列)文字列 str 内の部分文字列 sub...

Vueベースのカスタムコンポーネントを実装してアイコンを導入する

序文プロジェクト開発では、アイコンを使用する方法はたくさんあります。iconfont で適切なアイコ...

MySQL がユーザー名とパスワードの漏洩を引き起こす可能性のある Riddle の脆弱性を公開

MySQL バージョン 5.5 および 5.6 を標的とする Riddle 脆弱性により、中間者攻撃...

HTMLからPDFへの変換のための純粋なクライアント側と純粋なサーバー側の実装ソリューション

必要ユーザーがフォームに入力して「保存」をクリックすると、PDF ドキュメントを直接ダウンロードでき...

HTML タグ sup と sub の応用の紹介

HTML タグ: 上付き文字HTML では、<sup> タグは上付き文字のテキストを定義...

リモート接続を許可するようにMySQLを変更する方法

MySQLリモート接続の問題に関しては、会社で働いているときに誰かのコンピュータに保存されているMy...

MySQL トリガー: 複数のトリガー操作の作成例の分析

この記事では、例を使用して、MySQL で複数のトリガー操作を作成する方法について説明します。ご参考...

コード標準では、SQL ステートメントに結合が多すぎないようにする必要があるのはなぜですか?

無料ポイントインタビュアー:Linuxを使ったことはありますか?私:はいインタビュアー:メモリ使用量...

MySQL データ操作 - DML ステートメントの使用

例示するDML(データ操作言語)とは、データベースの追加、削除、変更を行うための操作命令のことです。...

MySQL でよく使用される SQL 文を表示する (詳細な説明)

#mysql -uroot -pパスワードを入力してくださいmysql> show full...