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) 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) 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) 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
(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!