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を使用してシミュレートされたデータケースの詳細を生成します

推薦する

MySQL 8.0 における非同期レプリケーションの 3 つの方法について簡単に説明します。

この実験では、空のデータベース、オフライン、オンラインの 3 つのモードで、1 つのマスターと 2 ...

CSSオーバーフローメカニズムについての簡単な説明

CSS オーバーフローのメカニズムを詳細に学ぶ必要があるのはなぜですか?実際の開発プロセスでは、コン...

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

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

MySQL の null 可能フィールドは NULL に設定する必要がありますか、それとも NOT NULL に設定する必要がありますか?

MySQL を頻繁に使用する人は、次のような状況に遭遇する可能性があります。 1. フィールド タ...

知らないかもしれないmysqldumpパラメータ

前回の記事で、mysqldump バックアップ ファイルに記録されるタイムスタンプ データは UTC...

NginxはLua+Redisを使用してIPを動的にブロックします

1. 背景日常的なウェブサイトのメンテナンスでは、このような要件に頻繁に遭遇します。特定のクローラー...

Vue.js の watch メソッドと computed メソッドの違いの詳細な例

目次序文導入1. 作用機序2. 自然から3. 時計と計算の比較4. メソッドはデータロジックの関係を...

Vue.js で AntV X6 を使用する手順の例

目次0x0 はじめに0x1 インストール0x2 ノードサイドバー0x3 統合例0x0 はじめにプロジ...

DockerでLNMPアーキテクチャを展開する方法

環境要件: IPホスト名192.168.1.1ノード1プロジェクト計画:コンテナネットワークセグメン...

ウェブページでよく使用される共有コードの完全なリスト(フロントエンドに必須)

コードをコピーコードは次のとおりです。 1. 新浪微博<a href="http:/...

Unicodeの一般的な記号

Unicode は、世界中のすべてのテキストと記号に対応できる国際組織によって開発された文字エンコー...

JavaScript が Jingdong の虫眼鏡の特殊効果を模倣

この記事では、Jingdong虫眼鏡を模倣したJavaScriptの具体的なコードを参考までに共有し...

MySQL 8.0の落とし穴の詳細な説明

本日、MySQL 8.0 をアップデートしました。最初の問題: Navicatがデータベースに接続で...

Docker の詳細なイラスト

1. Dockerの紹介1.1 仮想化1.1.1 仮想化とは何ですか?コンピュータにおける仮想化とは...

CSS3 で実装された画像ホバートグルボタン

結果:実装コードhtml <ul class="スライド"> <...