Nginx で IP と IP 範囲をブロックする方法

Nginx で IP と IP 範囲をブロックする方法

前面に書かれた

Nginx は単なるリバース プロキシおよび負荷分散サーバーではなく、電流制限、キャッシュ、ブラックリストとホワイトリスト、グレースケールの公開など、多くの強力な機能も提供できます。以前の記事では、Nginx が提供するこれらの機能を紹介しました。友人は[Nginx 特別トピック]を参照して下さい。今日は、Nginx のもう 1 つの強力な機能である、IP と IP 範囲の無効化を紹介します。

IPとIP範囲を無効にする

Nginx の ngx_http_access_module モジュールは、設定内の IP または IP セグメントをブロックできます。構文は次のとおりです。

IPを拒否します。
サブネットを拒否します。
IP を許可します。
サブネットを許可します。
# すべての IP をブロック
すべてを否定する;
# すべての IP を許可
すべて許可する。

ルール間に矛盾がある場合は、最初に一致するルールが優先されます。

IPおよびIPセグメントの設定と無効化

以下の手順では、nginx ディレクトリが /usr/local/nginx/ にあることを前提としています。

まず、IP をブロックするための設定ファイル blockips.conf を作成し、次に vi blockips.conf を使用してこのファイルを編集し、ファイルにブロックする IP を入力します。

1.2.3.4 を拒否します。
91.212.45.0/24 を拒否します。
91.212.65.0/24 を拒否します。

次に、このファイルを保存し、nginx.conf ファイルを開いて、http 構成セクションに次の構成行を追加します。

blockips.conf をインクルードします。

nginx.conf ファイルを保存し、現在の nginx 構成ファイルが有効かどうかをテストします。

nginx の sbin ディレクトリに nginx の sbin ディレクトリを作成します。

設定に問題がなければ、次のように出力されます。

設定ファイル /usr/local/nginx/conf/nginx.conf の構文は正常です
設定ファイル /usr/local/nginx/conf/nginx.conf のテストは成功しました

設定に問題がある場合は、構文上の問題がどこにあるかを確認する必要があります。問題がない場合は、以下のコマンドを実行して、nginx に設定ファイルを再読み込みさせる必要があります。

/usr/local/nginx/sbin/nginx -s リロード

イントラネットIPのみ許可

すべての外部 IP を禁止し、内部 IP のみを許可するにはどうすればよいでしょうか?

次の設定ファイル

位置 / {
 # 1 つのワークステーションをブロックする
 192.168.1.1 を拒否します。
 # 192.168.1.0/24 内の誰でも許可する
 192.168.1.0/24 を許可します。
 # 世界の残りを落とす
 すべてを否定する;
}

上記の構成では、192.168.1.1 は禁止され、他のイントラネット セグメントは許可され、その後、すべて拒否によって他のすべての IP が禁止されます。

nginx の 403 ページのフォーマット

nginx の 403 ページをフォーマットするにはどうすればよいですか?

まず、次のコマンドを実行します。

/usr/local/nginx/html をコピーします
vi エラー403.html

次に、403 のファイルの内容を入力します。例:

<html>
<head><title>エラー 403 - IP アドレスがブロックされました</title></head>
<本文>
あなたの IP アドレスはブロックされています。これがエラーである場合は、IP アドレスを添えて binghe ([email protected]) までご連絡ください。
</本文>
</html>

SSI が有効になっている場合、ブロックされたクライアントの IP アドレスは次のように 403 に表示されます。

Your IP Address is <!--#echo var="REMOTE_ADDR" --> blocked.

error403 ファイルを保存し、nginx 構成ファイル vi nginx.conf を開いて、サーバー構成セクションに次の内容を追加します。

# サーバーのエラーページを静的ページにリダイレクトする
 エラーページ 403 /error403.html;
 場所 = /error403.html {
     ルートhtml;
 }

次に、設定ファイルを保存し、nginx -t コマンドを使用して設定ファイルが正しいかどうかをテストします。正しい場合は、nginx -s reload を使用して設定を読み込みます。

Nginx で IP と IP セグメントをブロックする方法についての記事はこれで終わりです。Nginx で IP と IP セグメントをブロックする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • NginxはLua+Redisを使用してIPを動的にブロックします
  • nginx で IP をブロックし、イントラネット IP アクセスを許可する例

<<:  MySQLデータベースは何をするのか

>>:  Vueはmockjsを使用してシミュレートされたデータケースの詳細を生成します

推薦する

スタックメニューを実装するためのjQueryプラグイン

jQueryプラグインの毎日の積み重ねメニュー、参考までに、具体的な内容は次のとおりです。スタックメ...

iframe パラメータの説明と例

<iframe src=”test.jsp” width=”100″ height=”50″ ...

docker を使用して Redis マスター/スレーブを構築する方法

1. Docker環境を構築する1. Dockerfileを作成する Centos:latest か...

どのような種類の MYSQL 接続クエリを知っていますか?

序文クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があり...

CSSトランジションは高さを変更することで要素を拡大したり縮小したりします。

一般的な開発ニーズとして、要素の一部を必要になるまで折りたたんでおきたいことが挙げられます。 Boo...

CSS3 グラデーション背景の互換性の問題

グラデーションの背景色を作成するときは、 linear-gradient() 関数を使用して線形グラ...

HTML、CSS、JSコメントの標準的な使用法の概要

必要なコメントを追加することは、責任感と道徳心のあるフロントエンド開発者が持つべき良い習慣であり、コ...

Linux システムで MySQL データベースの解凍バージョンをインストールして構成する方法

1. ファイルを現在のディレクトリに解凍しますコマンド: tar -zxvf mysql....ta...

MySql インデックスはクエリ速度を向上させる一般的な方法のコード例

インデックスを使用してクエリを高速化する1. はじめにWeb 開発には、ビジネス テンプレート、ビジ...

JavaScript 配列と非配列オブジェクトのディープ クローンとシャロー クローンの原則の詳細な説明

目次シャロークローニングとディープクローニングとは何ですか? 1. アレイのクローンを作成する1.1...

7つのMySQL JOINタイプのまとめ

始める前に、これから紹介する JOIN タイプを示すために 2 つのテーブルを作成します。テーブルを...

vuexサードパーティパッケージを使用してデータの永続性を実装する方法

目的: vuex で管理されている状態データを同時にローカルに保存できるようにします。独自のストレー...

ウェブページデザインのための4つの実践的なヒント

関連記事: Web コンテンツ ページを作成するための 9 つの実用的なヒント<br />...

ネイティブ js でカスタム スクロール バーを実装する

この記事の例では、カスタムスクロールバーを実装するためのjsの具体的なコードを参考までに共有していま...

CSS スタイルを変更してグレーの Web ページ (色なし、明るい白黒のみ) を実現するいくつかの方法

通常、清明節、国哀悼日、大地震の日、影響力のある偉人の死去または命日には、ウェブマスターとして、故人...