Heim  >  Artikel  >  Betrieb und Instandhaltung  >  ACL-Konfiguration basierend auf IP-Adresse und geografischem Standort im Nginx-Reverse-Proxy

ACL-Konfiguration basierend auf IP-Adresse und geografischem Standort im Nginx-Reverse-Proxy

WBOY
WBOYOriginal
2023-06-10 10:39:251645Durchsuche

Nginx ist ein Open-Source-Hochleistungs-Webserver und Reverse-Proxy-Server, der in tatsächlichen Produktionsumgebungen weit verbreitet ist. Seine Reverse-Proxy-Funktion kann uns bei der Implementierung von Funktionen wie Verkehrskontrolle, Lastausgleich und Sicherheitsschutz helfen. Bei der Durchführung eines Reverse-Proxys müssen jedoch andere Faktoren berücksichtigt werden, wie z. B. die IP-Adresse des Clients und geografische Standortinformationen, damit wir den Zugriff besser kontrollieren und die Sicherheit der Website gewährleisten können.

Daher wird in diesem Artikel erläutert, wie man ACL basierend auf IP-Adresse und geografischem Standort im Nginx-Reverse-Proxy konfiguriert, um eine detailliertere Zugriffskontrolle zu erreichen.

1. Was ist ACL? Bevor wir die spezifische Konfigurationsmethode vorstellen, müssen wir zunächst verstehen, was ACL ist. ACL (Access Control List) ist eine Zugriffskontrollliste, eine Richtlinie zur Steuerung des Datenflusses auf Netzwerkgeräten. Mithilfe von ACL kann der Datenverkehr anhand verschiedener Bedingungen klassifiziert und eingeschränkt werden, um Netzwerksicherheit und Datenverkehrskontrolle zu gewährleisten.

In Nginx können wir ACL basierend auf IP-Adresse, geografischem Standort und anderen Bedingungen konfigurieren, um den Zugriff zu steuern. Daher können wir beim Ausführen eines Reverse-Proxys die entsprechende ACL basierend auf der IP-Adresse und den Standortinformationen des Clients konfigurieren, um die Anforderungen des Clients besser zu steuern.

2. ACL-Konfiguration basierend auf der IP-Adresse

Was ist eine IP-Adresse?
  1. IP-Adresse ist die Abkürzung für Internet Protocol Address, also die Internetprotokolladresse. Als Kennung, die einen eindeutigen Computer im Internet identifiziert, besteht es aus 32 Binärbits, die normalerweise als 4 Dezimalzahlen dargestellt werden, von denen jede einen Wert zwischen 0 und 255 hat und durch einen Punkt getrennt ist (z. B. 127,0 .0.1).

Klassifizierung von IP-Adressen
  1. IP-Adressen können nach Faktoren wie Nutzungsumfang, Vergaberegeln und Adressformat klassifiziert werden. Übliche Klassifizierungsmethoden sind wie folgt:

(1) Je nach Verwendungszweck wird in öffentliche IP-Adressen und private IP-Adressen unterteilt. Öffentliche IP-Adressen werden für die Verbindung zum Internet verwendet, und private IP-Adressen werden für das Intranet verwendet Kommunikation.

(2) Gemäß den Zuteilungsregeln wird es in statische IP-Adresse und dynamische IP-Adresse unterteilt. Eine statische IP-Adresse ist eine feste IP-Adresse, die vom Netzwerkadministrator manuell festgelegt wird und normalerweise für Geräte mit festem Standort wie Server verwendet wird. Eine dynamische IP-Adresse ist eine IP-Adresse, die von einem Netzwerkdienstanbieter dynamisch zugewiesen wird und sich im Laufe der Zeit ändert.

(3) Je nach Adressformat wird es in IPv4-Adresse und IPv6-Adresse unterteilt. IPv4-Adresse ist ein derzeit weit verbreitetes 32-Bit-Adressformat. IPv6-Adresse ist eine neue Generation von IP-Adressen, die das 128-Bit-Adressformat verwendet und als Ersatz für IPv4-Adressen verwendet wird.

IP-adressenbasierte ACL-Konfiguration in Nginx
  1. In Nginx können wir eine Reverse-Proxy-ACL-Konfiguration basierend auf der IP-Adresse des Clients durchführen. Die spezifische Konfiguration lautet wie folgt:

(1) Einschränkung auf eine einzelne IP-Adresse

Wenn Sie den Zugriff nur auf eine einzelne IP-Adresse beschränken müssen, können Sie die folgende Konfiguration verwenden:

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

In der obigen Konfiguration lautet die Allow-Anweisung wird verwendet, um den Zugriff einzuschränken, und die Deny-Direktive wird verwendet, um den Zugriff zu verweigern. Nur Clients mit der IP-Adresse 192.168.1.100 dürfen zugreifen, anderen Clients wird der Zugriff verweigert.

(2) Einschränkungen für mehrere IP-Adressen

Wenn Sie den Zugriff auf mehrere IP-Adressen einschränken müssen, können Sie die folgende Konfiguration verwenden:

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

In der obigen Konfiguration sind Clients mit den IP-Adressen 192.168.1.100 und 192.168.1.101 zulässig Um darauf zuzugreifen, werden andere Clients abgelehnt.

(3) Einschränkung basierend auf dem IP-Adresssegment

Wenn Sie den Zugriff auf ein bestimmtes IP-Adresssegment einschränken müssen, können Sie die folgende Konfiguration verwenden:

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

In der obigen Konfiguration werden Clients mit dem IP-Adresssegment 192.168.1.0 /24 dürfen zugreifen, andere Clients werden abgewiesen. Darunter bedeutet „/24“ Maske, was bedeutet, dass die ersten 24 Bits die Netzwerkadresse und die letzten 8 Bits die Hostadresse sind.

3. ACL-Konfiguration basierend auf dem geografischen Standort

MaxMind GeoIP2
  1. Für die Implementierung der ACL-Konfiguration basierend auf dem geografischen Standort in Nginx ist MaxMind GeoIP2 erforderlich. MaxMind GeoIP2 ist eine geografische IP-Standortdatenbank, die umfangreiche geografische Standortinformationen bereitstellt. Über GeoIP2 können wir die IP-Adresse des Kunden Informationen wie Stadt, Region, Land und seinem ISO-Code zuordnen.

GeoIP2-Installation
  1. Die Installation von GeoIP2 ist hauptsächlich in vier Schritte unterteilt:

(1) Abhängigkeitspakete installieren

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

(2) GeoIP2 herunterladen

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

(3) GeoIP2 entpacken und installieren

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

(4) Herunterladen GeoIP2-Bibliothek und GeoIP2-Stadt

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

ACL-Konfiguration basierend auf dem geografischen Standort in Nginx
  1. Nach der Installation von GeoIP2 müssen wir es in Nginx entsprechend konfigurieren. Die spezifischen Schritte sind wie folgt:

(1) GeoIP2-bezogene Konfiguration in der Nginx-Konfigurationsdatei hinzufügen

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

In der obigen Konfiguration haben wir den Datenbankpfad von GeoIP2 angegeben und Informationen zu Stadt, Land, Längen- und Breitengrad usw. konfiguriert . zur späteren Verwendung.

(2) Verwendung von GeoIP2 am Nginx-Standort

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

In der obigen Konfiguration ermitteln wir die geografischen Standortinformationen des Kunden und erlauben nur Kunden aus China (Ländercode ist CN) den Zugriff.

IV. Zusammenfassung

Durch die Einleitung dieses Artikels haben wir etwas über die ACL-Konfiguration basierend auf IP-Adresse und geografischem Standort im Nginx-Reverse-Proxy sowie über die Verwendung von MaxMind GeoIP2 für die Abfrage geografischer Standortinformationen und die Zugriffskontrolle erfahren. Diese Funktionen können uns dabei helfen, den Kundenzugriff besser zu kontrollieren und sicherere und effizientere Dienste bereitzustellen. Ich hoffe, dieser Artikel ist für die Leser hilfreich.

Das obige ist der detaillierte Inhalt vonACL-Konfiguration basierend auf IP-Adresse und geografischem Standort im Nginx-Reverse-Proxy. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn