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

推薦する

HBuilderX で Tomcat 外部サーバーを設定して、JSP インターフェイスを表示および編集する方法の詳細な説明

1. 最初の方法は、ローカルのTomcatを起動してJSPを表示することです。 tomcatのweb...

jQueryはシャトルボックス機能を実現する

この記事では、シャトルボックス機能を実現するためのjQueryの具体的なコードを参考までに紹介します...

Linux の Makefile とは何ですか? どのように機能しますか?

この便利なツールでプログラムをより効率的に実行およびコンパイルしますMakefile は自動コンパイ...

Centos 6.5 での mysql-community-server. 5.7.18-1.el6 のインストール

次のコマンドを使用して、MySQL Serverがインストールされているかどうかを確認します。 [r...

Alibaba Cloud で静的ウェブサイトを素早く構築する方法

序文:ジュニアプログラマーとして、私は自分自身の個人ウェブサイトを構築し、それを他の人に見せることを...

Linux カーネル デバイス ドライバー 高度な文字デバイス ドライバーのメモ

/****************** * 高度な文字デバイス ドライバー ***********...

Linux でハードディスクのサイズを確認し、ハードディスクをマウントする方法

Linux には、マウントされたハードディスクとマウントされていないハードディスクの 2 種類のハー...

ネイティブjsは9マスグリッドのドラッグアンドドロップを実現します

ネイティブJSを使用して9つの正方形のグリッドを記述し、9つのグリッドの位置をドラッグして変更する効...

MySQL での or ステートメントの使用例

1. MySQL での or 構文の使用、および MySQL 構文で or を使用する際の注意点。 ...

マウス追従ゲームを実現するjs

この記事では、マウス追従ゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内...

この記事では、イベント委任を使用してJavaScriptメッセージボード機能を実装する方法について説明します。

イベント委任を使用してメッセージ ボード機能を実装します。 <!DOCTYPE html>...

MySQL における count(*)、count(1)、count(col) の違いのまとめ

序文count 関数は、テーブルまたは配列内のレコードをカウントするために使用されます。count(...

MySQLデータベースインデックスの欠点と適切な使用

目次インデックスの適切な使用1. 通常のインデックスのデメリット2. 主キーインデックスの落とし穴3...

js を使用してネットワークカメラを呼び出し、一般的なエラーを処理します

最近、業務上の理由により、Web ページ上のさまざまなネットワーク カメラにアクセスしてデバッグする...

SASSで変数のデフォルト値を使用する方法

SASS で定義された変数では、後で設定された値によって古い値が上書きされます。 $色: 赤; $色...