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

推薦する

Dockerコンテナにnginxを簡単にデプロイするプロセスの分析

1. コンテナにnginxサービスをデプロイするcentos:7 イメージはコンテナを実行し、このコ...

パーソナライズされたクリエイティブなウェブサイトデザインの例 (30)

そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...

VMware ESXi CLI の一般的なコマンドを調べる

目次【共通コマンド】 [一般的な esxi コマンドの概要] [esxcli コマンドの調査] ES...

ノードスクリプトで自動サインインと抽選機能を実現

目次1. はじめに2. 準備3. スクリプトプロジェクトの構築4. コードの作成と実行5. まとめと...

Vue でインデックスをキー属性値として使用することが推奨されないのはなぜですか?

目次序文キーの役割差分アルゴリズムにおけるキーの役割ヘッドノードを同期するテールノードを同期する新し...

MySQLのnull値に関する小さな問題

今日、null 値をテストしていたところ、小さな問題が見つかりました。ここに記録しました。以前にも遭...

Jira リバース プロキシを実装するための nginx について

概要: nginx リバース プロキシ jira を構成し、https を実装します。Tomcat ...

Centos 7 システムの Tomcat サーバーの詳細な分析

目次1. tomcatの起源1. Tomcat アプリケーションのシナリオ2. Tomcatに必要な...

Vue の新しいパートナー TypeScript クイックスタート実践記録

目次1. 公式の足場を使って構築する2. プロジェクトディレクトリ分析3. TypeScript の...

なぜCSSをヘッドタグに配置する必要があるのか

考えてみてください。なぜcss 、 javascriptのようにbodyタグの末尾ではなく、 hea...

MySQLのインデックスシステムがB+ツリーを使用する理由の分析

目次1. インデックスとは何ですか? 2. インデックスはなぜ必要なのでしょうか? 3. インデック...

きれいなJavaScriptコードの書き方を教える記事

目次1. 変数意味のある名前を使う不必要なコンテキストを追加しないようにするハードコードされた値を避...

MySQLストレージフィールドタイプのクエリ効率についての簡単な理解

検索パフォーマンスは最速から最遅まで次のとおりです (私が聞いたところによると)。 1 番目: ti...

Nginx 転送ソケットポート設定の詳細な説明

Nginx によるソケット ポート転送の一般的なシナリオ: オンライン学習アプリケーションでは、通常...

Tomcatサーバーのセキュリティ設定方法

Tomcat は、Java Community Process を通じて Sun が開発した、広く使...