ホームページ  >  記事  >  運用・保守  >  Nginx リバース プロキシの IP アドレスと地理的位置に基づく ACL 構成

Nginx リバース プロキシの IP アドレスと地理的位置に基づく ACL 構成

WBOY
WBOYオリジナル
2023-06-10 10:39:251645ブラウズ

Nginx は、実際の運用環境で広く使用されているオープンソースの高性能 Web サーバーおよびリバース プロキシ サーバーです。リバース プロキシ機能は、トラフィック制御、負荷分散、セキュリティ保護などの機能の実装に役立ちます。ただし、リバース プロキシを実行する場合は、アクセスをより適切に制御し、Web サイトのセキュリティを確保できるように、クライアントの IP アドレスや地理的位置情報などの他の要素を考慮する必要があります。

したがって、この記事では、より洗練されたアクセス制御を実現するために、Nginx リバース プロキシで IP アドレスと地理的位置に基づいて ACL を構成する方法を紹介します。

1. ACL とは

具体的な設定方法を紹介する前に、まず ACL とは何かを理解する必要があります。 ACL (Access Control List) はアクセス制御リストであり、ネットワーク デバイス上のデータ フローを制御するために使用されるポリシーです。 ACL を通じて、ネットワーク セキュリティとトラフィック制御の目的を達成するために、さまざまな条件に基づいてトラフィックを分類および制限できます。

Nginx では、IP アドレス、地理的位置、その他の条件に基づいて ACL を構成し、アクセスを制御できます。したがって、リバース プロキシを実行する場合、クライアントの IP アドレスと位置情報に基づいて対応する ACL を構成し、クライアントのリクエストをより適切に制御できます。

2. IP アドレスに基づく ACL 設定

  1. IP アドレスとは

IP アドレスは、Internet Protocol Address の略称です。インターネットプロトコルアドレス。インターネット上で一意のコンピュータを識別する識別子は、通常は 4 つの 10 進数で表される 32 の 2 進数で構成され、各ビットはピリオドで区切られた 0 ~ 255 の値をとります (たとえば、127.0 .0.1)。

  1. IP アドレスの分類

IP アドレスは、使用範囲、割り当て規則、アドレス形式などの要素に従って分類できます。

(1) 利用範囲に応じて、パブリックIPアドレスとプライベートIPアドレスに分けられ、パブリックIPアドレスはインターネットへの接続に使用され、プライベートIPアドレスはプライベートIPアドレスとなります。イントラネット通信に使用されます。

(2) 割り当てルールにより、静的IPアドレスと動的IPアドレスに分けられます。静的 IP アドレスは、ネットワーク管理者が手動で設定する固定 IP アドレスで、通常はサーバーなどの固定場所のデバイスに使用されます。動的 IP アドレスは、ネットワーク サービス プロバイダーによって動的に割り当てられる IP アドレスであり、時間の経過とともに変化します。

(3) アドレス形式により、IPv4 アドレスと IPv6 アドレスに分けられます。 IPv4 アドレスは現在広く使用されている 32 ビットのアドレス形式ですが、IPv6 アドレスは 128 ビットのアドレス形式を使用し、IPv4 アドレスに代わる新世代の IP アドレスです。

  1. Nginx での IP アドレスベースの ACL 構成

Nginx では、クライアントの IP アドレスに基づいてリバース プロキシ ACL 構成を実行できます。具体的な設定は次のとおりです。

(1) 単一 IP アドレス制限

単一 IP アドレスへのアクセスのみを制限する必要がある場合は、次の設定を使用できます。

location / {
    #allow access from IP address 192.168.1.100
    allow 192.168.1.100;
    deny all;
}

上記の構成では、allow ディレクティブはアクセスを制限するために使用され、deny ディレクティブはアクセスを拒否するために使用されます。 IP アドレス 192.168.1.100 を持つクライアントのみがアクセスを許可され、他のクライアントは拒否されます。

(2) 複数の IP アドレスの制限

複数の IP アドレスへのアクセスを制限する必要がある場合は、次の構成を使用できます。

location / {
    #allow access from IP address 192.168.1.100 and 192.168.1.101
    allow 192.168.1.100;
    allow 192.168.1.101;
    deny all;
}

上記の構成では、許可される IP アドレスは、192.168.1.100 および 192.168.1.101 のクライアントにアクセスが許可され、他のクライアントはアクセスが拒否されます。

(3) IP アドレス セグメントに基づく制限

特定の IP アドレス セグメントへのアクセスを制限する必要がある場合は、次の構成を使用できます。上記の設定では、IP アドレスがセグメント 192.168.1.0/24 のクライアントにアクセスを許可され、他のクライアントはアクセスを拒否されます。このうち「/24」はマスクの意味で、最初の24ビットがネットワークアドレス、最後の8ビットがホストアドレスという意味です。

3. 地理的位置に基づく ACL 構成

MaxMind GeoIP2
  1. Nginx で地理的位置に基づく ACL 構成を実装するには、MaxMind GeoIP2 が必要です。 MaxMind GeoIP2 は、豊富な地理的位置情報を提供する IP 地理的位置データベースです。 GeoIP2 を通じて、クライアントの IP アドレスを都市、地域、国、ISO コードなどの情報にマッピングできます。

GeoIP2 のインストール
  1. GeoIP2 のインストールは主に 4 つの手順に分かれています:

(1) 依存関係パッケージのインストール

location / {
    # allow access from IP address segments 192.168.1.0/24
    allow 192.168.1.0/24;
    deny all;
}

( 2) GeoIP2

yum -y install automake autoconf libtool gcc make pcre-devel zlib-devel

(3) 解凍して GeoIP2

wget https://github.com/maxmind/geoip-api-c/releases/download/v1.9.2/GeoIP-1.9.2.tar.gz

(4) 地理に基づいて GeoIP2-Library と GeoIP2-City

tar xzf GeoIP-1.9.2.tar.gz
cd GeoIP-1.9.2
./configure
make && make check && make install

Nginx をダウンロードします。ロケーション ACL 構成
  1. GeoIP2 をインストールした後、Nginx でそれに応じて構成する必要があります。具体的な手順は次のとおりです。

(1) Nginx 設定ファイルに GeoIP2 関連の設定を追加します。

mkdir /usr/share/GeoIP
cd /usr/share/GeoIP/
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz
tar -zxvf GeoLite2-City.tar.gz
tar -zxvf GeoLite2-Country.tar.gz

上記の設定では、GeoIP2 のデータベース パスを指定し、都市、国を設定しました。 、後で使用するための経度、緯度、およびその他の関連情報。

(2) Nginx ロケーションでの GeoIP2 の使用

# set geoip database path
geoip_country /usr/share/GeoIP/GeoLite2-Country.mmdb;
geoip_city /usr/share/GeoIP/GeoLite2-City.mmdb;

# enable nginx api
http {
    geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb {
        $geoip2_data_city_name city names en;
        $geoip2_data_country_iso_code country iso_code;
        $geoip2_data_latitude latitude;
        $geoip2_data_longitude longitude;
    }
}

上記の設定では、クライアントの地理的位置情報を判断し、中国 (国コードは CN) からのクライアントのみにアクセスを許可します。

4. 概要

この記事の導入部を通じて、Nginx リバース プロキシの IP アドレスと地理的位置に基づく ACL 構成と、MaxMind GeoIP2 を使用してクエリを実行する方法について学習しました。地理的位置情報へのアクセスを制御します。これらの機能は、クライアント アクセスをより適切に制御し、より安全で効率的なサービスを提供するのに役立ちます。この記事が読者のお役に立てば幸いです。

以上がNginx リバース プロキシの IP アドレスと地理的位置に基づく ACL 構成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。