Maison  >  Article  >  Opération et maintenance  >  Configuration ACL basée sur l'adresse IP et l'emplacement géographique dans le proxy inverse Nginx

Configuration ACL basée sur l'adresse IP et l'emplacement géographique dans le proxy inverse Nginx

WBOY
WBOYoriginal
2023-06-10 10:39:251645parcourir

Nginx est un serveur Web open source hautes performances et un serveur proxy inverse largement utilisé dans les environnements de production réels. Sa fonction de proxy inverse peut nous aider à mettre en œuvre des fonctions telles que le contrôle du trafic, l'équilibrage de charge et la protection de la sécurité. Cependant, d'autres facteurs doivent être pris en compte lors de l'exécution d'un proxy inverse, tels que l'adresse IP du client et les informations de localisation géographique, afin que nous puissions mieux contrôler l'accès et assurer la sécurité du site Web.

Par conséquent, cet article présentera comment configurer l'ACL en fonction de l'adresse IP et de l'emplacement géographique dans le proxy inverse Nginx pour obtenir un contrôle d'accès plus raffiné.

1. Qu'est-ce que l'ACL

Avant d'introduire la méthode de configuration spécifique, nous devons d'abord comprendre ce qu'est l'ACL. ACL (Access Control List) est une liste de contrôle d'accès, qui est une politique utilisée pour contrôler le flux de données sur les périphériques réseau. Grâce à l'ACL, le trafic peut être classé et restreint en fonction de différentes conditions pour atteindre des objectifs de sécurité du réseau et de contrôle du trafic.

Dans Nginx, nous pouvons configurer l'ACL en fonction de l'adresse IP, de l'emplacement géographique et d'autres conditions pour contrôler l'accès. Par conséquent, lors de l'exécution d'un proxy inverse, nous pouvons configurer l'ACL correspondante en fonction de l'adresse IP et des informations de localisation du client pour mieux contrôler les demandes du client.

2. Configuration ACL basée sur l'adresse IP

  1. Qu'est-ce qu'une adresse IP

L'adresse IP est la Adresse de protocole Internet Abréviation d'adresse de protocole Internet. En tant qu'identifiant identifiant un ordinateur unique sur Internet, il se compose de 32 bits binaires, généralement représentés par 4 nombres décimaux, chacun ayant une valeur comprise entre 0 et 255, séparés par un point (par exemple, 127,0 .0.1).

  1. Classification des adresses IP

Les adresses IP peuvent être classées en fonction de facteurs tels que leur champ d'utilisation, leurs règles d'attribution et leur format d'adresse. Les méthodes de classification courantes sont les suivantes :

(1) Selon le domaine d'utilisation, elle est divisée en adresse IP publique et adresse IP privée. L'adresse IP publique est utilisée pour se connecter à Internet et l'adresse IP privée est utilisée. L'adresse IP est utilisée pour la communication intranet.

(2) Selon les règles d'attribution, elle est divisée en adresse IP statique et adresse IP dynamique. Une adresse IP statique est une adresse IP fixe définie manuellement par l'administrateur réseau et généralement utilisée pour les appareils à emplacement fixe tels que les serveurs. Une adresse IP dynamique est une adresse IP attribuée dynamiquement par un fournisseur de services réseau et qui change au fil du temps.

(3) Selon le format d'adresse, elle est divisée en adresse IPv4 et adresse IPv6. L'adresse IPv4 est un format d'adresse 32 bits actuellement largement utilisé. L'adresse IPv6 est une nouvelle génération d'adresse IP qui utilise le format d'adresse 128 bits et est utilisée pour remplacer l'adresse IPv4.

  1. Configuration ACL basée sur l'adresse IP dans Nginx

Dans Nginx, nous pouvons effectuer une configuration ACL de proxy inverse en fonction de l'adresse IP du client. La configuration spécifique est la suivante :

(1) Restriction d'adresse IP unique

Si vous ne devez restreindre l'accès qu'à une seule adresse IP, vous pouvez utiliser la configuration suivante :

location / {
    #allow access from IP address 192.168.1.100
    allow 192.168.1.100;
    deny all;
}
#🎜🎜 #Dans la configuration ci-dessus, la directive allow est utilisée pour restreindre l'accès et la directive deny est utilisée pour refuser l'accès. Seuls les clients avec l'adresse IP 192.168.1.100 sont autorisés à accéder et les autres clients sont refusés.

(2) Restrictions d'adresses IP multiples

Si vous devez restreindre l'accès à plusieurs adresses IP, vous pouvez utiliser la configuration suivante :

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;
}

Dans la configuration ci-dessus, les clients avec les adresses IP 192.168.1.100 et 192.168.1.101 sont autorisés à accéder et les autres clients sont refusés.

(3) Restriction basée sur le segment d'adresse IP

Si vous devez restreindre l'accès à un certain segment d'adresse IP, vous pouvez utiliser la configuration suivante :

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

Ci-dessus Dans la configuration, les clients avec le segment d'adresse IP 192.168.1.0/24 sont autorisés à accéder et les autres clients sont refusés. Parmi eux, "/24" signifie masque, ce qui signifie que les 24 premiers bits sont l'adresse réseau et les 8 derniers bits sont l'adresse de l'hôte.

3. Configuration ACL basée sur la localisation géographique

    MaxMind GeoIP2
Implémentation de la localisation géographique basée sur la configuration Nginx ACL dépend de MaxMind GeoIP2. MaxMind GeoIP2 est une base de données de localisation géographique IP qui fournit de riches informations de localisation géographique. Grâce à GeoIP2, nous pouvons mapper l'adresse IP du client à des informations telles que la ville, la région, le pays et son code ISO.

    L'installation de GeoIP2
L'installation de GeoIP2 est principalement divisée en quatre étapes :

(1) Installer les packages de dépendances

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

(2) Téléchargez GeoIP2

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

(3) Décompressez et installez GeoIP2

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

(4) Téléchargez GeoIP2-Library et GeoIP2-City

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

    Configuration ACL basée sur la géolocalisation dans Nginx
Après avoir installé GeoIP2, nous devons le configurer en conséquence dans Nginx. Les étapes spécifiques sont les suivantes :

(1) Ajouter la configuration liée à GeoIP2 dans le fichier de configuration Nginx

# 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;
    }
}

Dans la configuration ci-dessus, nous avons spécifié le chemin de la base de données de GeoIP2 et configuré avec la ville, le pays, la longitude et la latitude et d'autres informations connexes pour une utilisation ultérieure.

(2) Utilisez GeoIP2 dans l'emplacement Nginx

location / {
    # allow access from China
    if ($geoip2_data_country_iso_code != CN) {
        return 403;
    }
}

Dans la configuration ci-dessus, nous jugeons les informations de localisation géographique du client et n'autorisons que celles de Chine (le code du pays est CN ) accès client.

4. Résumé

Grâce à l'introduction de cet article, nous avons découvert la configuration de l'ACL basée sur l'adresse IP et l'emplacement géographique dans le proxy inverse Nginx, et comment utiliser MaxMind GeoIP2 pour la recherche d'informations de localisation géographique et le contrôle d'accès. Ces fonctions peuvent nous aider à mieux contrôler l’accès des clients et à fournir des services plus sécurisés et plus efficaces. J'espère que cet article sera utile aux lecteurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn