So verhindern Sie mit Nginx die böswillige Auflösung von IP-Adressen

So verhindern Sie mit Nginx die böswillige Auflösung von IP-Adressen

Zweck der Verwendung von Nginx

Lassen Sie uns zunächst über den Hintergrund des Autors zur Verwendung von Nginx sprechen, indem wir den Alibaba Cloud ECS-Cloud-Server verwenden.

Nach der Initialisierung von ECS wird eine öffentliche IP-Adresse generiert. Die Standardzugriffs-IP-Adresse greift automatisch auf Port 80 zu. Zu diesem Zeitpunkt können Sie über die IP-Adresse direkt auf den auf Port 80 gestarteten Dienst zugreifen.

Wenn Sie den Domänennamen in die aktuelle IP-Adresse auflösen, können Sie über den Domänennamen direkt auf den Dienst am Port 80 zugreifen.

Dann tritt jedoch ein Problem auf: Jeder kann den Domänennamen in die IP-Adresse auflösen, was bedeutet, dass auf die Dienste auf Ihrem ECS über andere Domänennamen zugegriffen werden kann. Was den Zweck betrifft, ist diese Angriffsmethode zu offensichtlich. Sie wollen wahrscheinlich Domänennamen sammeln und diese dann verkaufen (ich vermute, wer viel Fantasie hat, teilt uns bitte seine Meinung mit).

Es gibt viele Möglichkeiten, diesen Angriff zu vermeiden. Den Antworten im Internet zufolge ist die Konfiguration von Nginx die bequemste und schnellste.

Die allgemeine Idee ist wie folgt: Der Webdienst wird mit einem Port ungleich 80 gestartet (kann nicht direkt über die IP-Adresse aufgerufen werden) und Nginx konfiguriert einen Forward-Proxy, um den Domänennamen an den Domänennamen + Port weiterzuleiten.

Ergebnis: Nach der Auflösung ist der direkte Zugriff über den eigenen Domänennamen möglich, der grundsätzlich auf die IP-Adresse + Port weitergeleitet wird. Für andere Domänennamen ist keine Portweiterleitung konfiguriert, deshalb werden sie blockiert.

Es gibt viele Szenarien für die Verwendung von Nginx, wie z. B. Reverse-Proxy, Lastenausgleich usw., und die Verhinderung böswilliger Analyse ist nur eines davon.

Vielleicht können wir in Zukunft unsere technischen Erfahrungen mit Nginx erweitern, aber Code ist nur ein Werkzeug. Technologie wird nur dann einen Mehrwert schaffen, wenn sie echte Probleme löst. Andernfalls ist sie nur Gerede auf dem Papier und bedeutungslos.

Ich habe schon einmal einen Artikel gelesen, in dem zwei Entwickler über die Auswahl einer Technologie diskutierten. Einer von ihnen entschied sich für das unpopuläre Lua, und der andere war verwirrt, warum sie sich nicht für eine beliebte Technologie mit besserer Leistung und besserer Entwicklungserfahrung entschieden hatten. Ihre Antwort war jedoch: Solange es unser Problem lösen kann.

Ich verfiel in tiefes Nachdenken. Außerdem verfolgte ich die Welle der Mikroservice-Architektur, die 2019 aufkam. Ich lernte viele neue Technologien und Begriffe und fühlte mich sehr erfüllt. Es ist jedoch schwierig, dies auf die tatsächliche Projektentwicklung anzuwenden. Hohe Parallelität und Mikrodienste sind entweder eine Technologie oder ein Kapital zum Angeben. Sie lösen praktische Probleme im Projekt oder Beschäftigungsprobleme. Es ist nichts falsch daran, zu lernen, aber bevor ich lerne, werde ich darüber nachdenken, ob ich das Gelernte anwenden werde oder ob es mich bindet.

Das ist alles für jetzt. Hier sind einige allgemeine Befehle für Nginx unter Linux und die Konfigurationsdatei, die ich kopiert habe (nginx.conf).

Liste der allgemeinen Befehle

yum install nginx //Nginx installieren (CentOS)

//Beim Booten automatisch starten systemctl enable nginx
systemctl deaktiviert nginx

//Überprüfen Sie den Nginx-Status systemctl status nginx

//Starten, stoppen, neu starten systemctl start nginx
systemctl stoppt nginx
systemctl startet nginx neu

//Konfiguration neu laden systemctl reload nginx

//Der Standardspeicherort der Konfigurationsdatei /etc/nginx Hauptkonfigurationsdatei nginx.conf

Verhindern Sie böswilliges Parsen der Konfiguration

 Server {
      hören Sie 80 Standardserver;
      Servername _;
      Zugriff_Abmeldung;
      Rückgabe 444;
    }
# Weitere Informationen zur Konfiguration finden Sie unter:
# * Offizielle englische Dokumentation: http://nginx.org/en/docs/
# * Offizielle russische Dokumentation: http://nginx.org/ru/docs/

Benutzer nginx;
Arbeiterprozesse automatisch;
Fehlerprotokoll /var/log/nginx/error.log;
pid /run/nginx.pid;

# Dynamische Module laden. Siehe /usr/share/doc/nginx/README.dynamic.
schließen Sie /usr/share/nginx/modules/*.conf ein;

Ereignisse {
  Arbeiterverbindungen 1024;
}

http {
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';

  Zugriffsprotokoll /var/log/nginx/access.log Haupt;

  sendfile an;
  tcp_nopush ein;
  tcp_nodelay ein;
  KeepAlive-Timeout 65;
  Typen_Hash_max_Größe 2048;

  /etc/nginx/mime.types einschließen;
  Standardtyp Anwendung/Oktett-Stream;

  # Laden Sie modulare Konfigurationsdateien aus dem Verzeichnis /etc/nginx/conf.d.
  # Siehe http://nginx.org/en/docs/ngx_core_module.html#include
  # für weitere Informationen.
  schließen Sie /etc/nginx/conf.d/*.conf ein;
    Server {
      hören Sie 80 Standardserver;
      Servername _;
      Zugriff_Abmeldung;
      Rückgabe 444;
    }
  Server {
    hören Sie 80;
    Servername www.zkrun.top;
    Standort / {
        Proxy-Passwort http://www.zkrun.top:8080;
    }

    Fehlerseite 404 /404.html;
      Standort = /40x.html {
    }

    Fehlerseite 500 502 503 504 /50x.html;
      Standort = /50x.html {
    }
  }

# Einstellungen für einen TLS-fähigen Server.
#
# Server {
# abhören 443 ssl http2 Standardserver;
# hören [::]:443 ssl http2 Standardserver;
# Servername _;
# root /usr/share/nginx/html;
#
# SSL-Zertifikat "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache geteilt:SSL:1m;
# SSL-Sitzungstimeout 10 m;
# ssl_ciphers HOCH:!aNULL:!MD5;
# ssl_prefer_server_ciphers ein;
#
# # Konfigurationsdateien für den Standardserverblock laden.
# /etc/nginx/default.d/*.conf einschließen;
#
# Standort / {
# }
#
# Fehlerseite 404 /404.html;
# Standort = /40x.html {
# }
#
# Fehlerseite 500 502 503 504 /50x.html;
# Standort = /50x.html {
# }
# }
}

Zusammenfassen

Dies ist das Ende dieses Artikels zur Verwendung von Nginx, um die böswillige Auflösung von IP-Adressen zu verhindern. Weitere Informationen zur Verwendung von Nginx, um die böswillige Auflösung von IP-Adressen zu verhindern, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Beispiel für die Konfiguration mehrerer SSL-Zertifikate für eine einzelne Nginx-IP-Adresse
  • Lösen Sie das Problem, dass die mit nginx erhaltene IP-Adresse 127.0.0.1 ist

<<:  So implementieren Sie die Verschlüsselung und Entschlüsselung vertraulicher Daten in einer MySQL-Datenbank

>>:  Eine kurze Diskussion über die Lösung von Axios zum Entfernen doppelter Anfragen

Artikel empfehlen

Das WeChat-Applet implementiert den Serveraufbau des Benutzeranmeldemoduls

Ich habe node.js zum Erstellen des Servers gewähl...

Centos erstellt ein Prozessdiagramm für den Chrony-Zeitsynchronisationsserver

Meine Umgebung: 3 centos7.5 1804 Meister 192.168....

Installationstutorial auf Unternehmensebene unter Verwendung des LAMP-Quellcodes

Inhaltsverzeichnis LAMP-Architektur 1.Lampeneinfü...

So verwenden Sie vue3 zum Erstellen einer Materialbibliothek

Inhaltsverzeichnis Warum brauchen wir eine Materi...

Einführung in JavaScript-Zahlen- und Mathematikobjekte

Inhaltsverzeichnis 1. Zahlen in JavaScript 2. Mat...

Einführung in die Verschachtelungsregeln von HTML-Tags

Es gibt viele XHTML-Tags: div, ul, li, dl, dt, dd...

5 Tipps zum Schutz Ihres MySQL Data Warehouse

Durch die Aggregierung von Daten aus verschiedene...

Lösung zum Vergessen des MySQL-Datenbankkennworts unter MAC

Schnelle Lösung zum Vergessen des MySQL-Datenbank...

Zusammenfassung häufig verwendeter CSS-Kapselungsmethoden

1. PC-Reset Initialisierung im PC-Stil /* normali...

Detaillierte Erklärung zur Verwendung von ElementUI in Vue

Anmeldung + SessionStorage Effektanzeige Nach ein...