GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So beschränken Sie den Zugriff auf Verzeichnisse und Unterverzeichnisse auf Nginx

Hallo Freunde. In diesem Beitrag werden wir mit einigen Tricks für Nginx fortfahren. Heute lernen Sie also, wie Sie den Zugriff auf Verzeichnisse und Unterverzeichnisse in Nginx einschränken. Los geht's.

Als Erstes, sollen wir das tun?

Die kurze Antwort ist JA. Definitiv. Denn in einer Anwendung oder Website gibt es viele Ordner, die vertrauliche Dateien enthalten, damit sie funktionieren.

Aus diesem Grund ist es ratsam, Regeln festzulegen, um den Zugriff auf diese Ordner zu verbieten und so die Sicherheit der Website zu verbessern.

Diese Einschränkungen können nach IP-Adresse angewendet werden, was uns die Flexibilität gibt, die von uns benötigten Konfigurationen anzuwenden.

Es ist mühelos. Los geht's.

Voraussetzungen

Bevor wir fortfahren, müssen wir sicherstellen, dass wir die Voraussetzungen erfüllen, um den Beitrag problemlos abzuschließen

  • Sie müssen Nginx installiert und konfiguriert haben. Stellen Sie also sicher, dass Sie es haben, indem Sie die offiziellen Repositories Ihrer Linux-Distribution verwenden.
  • Die Version von Nginx muss höher als 1.9.5 sein. Sie sollten kein Problem damit haben, da die meisten Distributionen neuere Versionen enthalten.
  • Grundkenntnisse zur Nutzung des Terminals haben.
  • Ein Benutzer mit Sudo-Zugriff oder Root-Zugriff.

Los geht's.

So beschränken Sie den Zugriff auf Verzeichnisse und Unterverzeichnisse in Nginx

Es ist normal, mehrere Serverblöcke auf dem Server zu haben. Wenn Sie die Konfiguration jedoch global anwenden möchten oder keine erstellt haben, müssen Sie die /etc/nginx/nginx.conf ändern – Andernfalls müssen Sie die Konfigurationsdatei jedes Serverblocks bearbeiten. Zum Beispiel

sudo nano /etc/nginx/sites-enabled/domain.conf

Für diesen Beitrag werde ich mit einem Ordner namens data arbeiten im Stammverzeichnis der Website. Daher wäre der relative Pfad /data .

Die Nginx-Direktive, die die Zugriffsverweigerung durchführt, ist Deny aber wir müssen es in einem Skript angeben, das sich auf das Verzeichnis bezieht.

Wenn Sie den Zugriff auf dieses Verzeichnis einschränken möchten, müssen Sie dies in die Konfigurationsdatei aufnehmen

location /data {
   ...
      deny all;
         ...
}

Sie können den Zugriff auch auf eine bestimmte IP-Adresse beschränken. Zum Beispiel:

location /data {
   ...
   deny 192.168.2.5;
   ...
}

Wenn es mehrere IP-Adressen gibt, können Sie sie so angeben

location /data {
   ...
   deny 192.168.2.5;
   deny 192.168.2.9;
   ...
}

Sie können auch IP-Adressbereiche verwenden

location /data {
   ...
   Deny 192.168.1.0/24;
   ...
}

Speichern Sie die Änderungen und schließen Sie den Editor. Um die Änderungen zu übernehmen, starten Sie Nginx neu.

sudo systemctl restart nginx

Und Sie sind fertig.

Passwortgeschütztes Verzeichnis in Nginx

Eine weitere nützliche Option ist das Hinzufügen eines Passworts. Diese Methode ist sehr sicher und gibt Ihnen auch mehr Kontrolle darüber, wer darauf zugreifen kann.

Installieren Sie dazu die apache2-utils Paket auf Debian, Ubuntu und Derivaten; und httpd-tools auf RHEL, Rocky Linux und Derivaten.

Erstellen Sie dann die Datei, in der das Passwort gehostet wird, gefolgt vom Benutzer. Zum Beispiel:

sudo htpasswd -c /home/username/.htpasswd user

Wenn Sie es ausführen, werden Sie aufgefordert, ein neues Passwort für den Benutzer einzugeben.

Wir bearbeiten die Nginx- oder ServerBlocks-Konfigurationsdatei

sudo nano /etc/nginx/sites-enabled/domain.conf

Und so etwas hinzufügen

location /data {
auth_basic "Restricted";
auth_basic_user_file /home/username/.htpasswd;
}

Speichern Sie Ihre Änderungen, schließen Sie den Editor und starten Sie Nginx neu.

sudo systemctl restart nginx

Wenn Sie nun auf den Ordner zugreifen möchten, werden Sie nach einem Passwort gefragt.

Schlussfolgerung

In diesem kurzen und einfachen Beitrag haben wir etwas so Wichtiges wie das Einschränken des Zugriffs auf Ordner auf unserem Webserver erklärt.

Nginx-Dokumentation


Linux
  1. So zählen Sie die Anzahl der Dateien und Unterverzeichnisse in einem bestimmten Verzeichnis

  2. So finden Sie die Anzahl der Dateien in einem Verzeichnis und Unterverzeichnissen

  3. Zugriff auf Linux-Dateisysteme in Windows 10 und WSL 2

  4. Wie lade ich ein ganzes Verzeichnis und Unterverzeichnisse mit wget herunter?

  5. Wie konfiguriere ich Kibana 4 und Elasticsearch hinter Nginx?

So aktivieren Sie TLS 1.3 in Nginx unter Ubuntu 18.04 und 16.04

So deaktivieren Sie das Durchsuchen von Verzeichnissen auf Apache und Nginx

So aktivieren Sie TLS 1.3 auf Apache und Nginx

So schützen Sie das Verzeichnis mit einem Passwort auf Nginx

So installieren und konfigurieren Sie Nginx in Ubuntu 20.04 und Ubuntu 21.04

So installieren und konfigurieren Sie Supervisor unter Ubuntu 20.04