So konfigurieren Sie die grundlegende HTTP -Authentifizierung in Nginx

So konfigurieren Sie die grundlegende HTTP -Authentifizierung in Nginx

Grundlegende HTTP -Authentifizierung ist ein Sicherheitsmechanismus, um den Zugriff auf Ihre Website/Anwendung oder einige Teile davon einzuschränken, indem die einfache Benutzername/Kennwortauthentifizierung eingerichtet wird. Es kann im Wesentlichen verwendet werden, um den gesamten HTTP -Server, einzelne Serverblöcke (virtuelle Hosts in Apache) oder Standortblöcke zu schützen.

Lesen Sie auch: So richten Sie mit NGINX den Namensbasis und IP-basierte virtuelle Hosts (Serverblöcke) ein

Wie der Name schon sagt, ist es keine sichere Methode, auf die man sich verlassen kann. Sie sollten es in Verbindung mit anderen zuverlässigeren Sicherheitsmaßnahmen verwenden. Wenn beispielsweise Ihre Webanwendung auf HTTP ausgeführt wird, werden Benutzeranmeldeinformationen im Klartext übertragen. Sie sollten daher in Betracht ziehen, HTTPS zu aktivieren.

Der Zweck dieses Leitfadens ist es, Ihnen dabei zu helfen, eine kleine, aber nützliche Sicherheitsebene hinzuzufügen, um private/privilegierte Inhalte in Ihren Webanwendungen zu schützen (z. B., aber nicht beschränkt auf Administratorseiten). Sie können es auch verwenden, um den Zugriff auf eine Website oder Anwendung zu verhindern, die sich noch in der Entwicklungsphase befindet.

Anforderungen

  1. Installieren Sie Lemp Stack in CentOS/RHEL 7
  2. Installieren Sie Lemp Stack in Ubuntu/Debian

Erstellen Sie die Benutzerdatei der HTTP -Authentifizierung

Sie sollten zunächst eine Datei erstellen, die gespeichert wird Benutzername Passwort Paare. Wir werden die verwenden htpasswd Dienstprogramm von Apache HTTP Server, um diese Datei zu erstellen.

Überprüfen Sie das zuerst Apache2-utils oder httpd-tools, die Pakete, die anbieten htpasswd Das Dienstprogramm wird in Ihrem System installiert, andernfalls führen Sie den entsprechenden Befehl für Ihre Verteilung aus, um sie zu installieren:

# yum install httpd-tools [rhel/centos] $ sudo apt install apache2-utils [Debian/Ubuntu] 

Als nächstes rennen Sie htpasswd Befehl unten, um die Passwortdatei mit dem ersten Benutzer zu erstellen. Der -C Die Option wird verwendet, um die PassWD -Datei anzugeben, sobald Sie geklickt haben [Eingeben], Sie werden gebeten, das Benutzerkennwort einzugeben.

# htpasswd -c/etc/nginx/conf.D/.HTPasswd -Entwickler 

Fügen Sie einen zweiten Benutzer hinzu und verwenden Sie die nicht -C Option hier.

# htpasswd/etc/nginx/conf.D/.htpasswd admin 

Nachdem Sie die Kennwortdatei bereit haben, konfigurieren Sie die Teile Ihres Webservers, auf die Sie den Zugriff einschränken möchten. Verwenden Sie den folgenden CAT.

# cat/etc/nginx/conf.D/.htpasswd 
HTTP -Kennwortdatei anzeigen

Konfigurieren Sie die HTTP -Authentifizierung für NGINX

Wie bereits erwähnt, können Sie den Zugriff auf Ihren Webserver, eine einzelne Website (mit dem Serverblock) oder eine Standortanweisung einschränken. Zwei nützliche Richtlinien können verwendet werden, um dies zu erreichen.

  • auth_basic - Schaltet die Validierung des Benutzernamens und des Passworts mit der “einHTTP Basisauthentifizierung" Protokoll.
  • auth_basic_user_file - Gibt die Passwortdatei an.

Passwort schützen nginx virtuelle Hosts

Um die grundlegende Authentifizierung für den gesamten Webserver zu implementieren, der für alle Serverblöcke gilt, öffnen Sie die /etc/nginx/nginx.Conf Datei und fügen Sie die folgenden Zeilen im HTTP -Kontext hinzu:

http auth_basic "eingeschränkter Zugriff!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd;… 

Passwort schützen Nginx -Website oder Domain

Öffnen Sie ihre Konfigurationsdatei unter /etc/nginx/conf.D/ oder /etc/nginx/conf/sites-verfügbar (Abhängig davon, wie Sie Nginx installiert haben), fügen Sie die folgende Konfiguration im Serverblock oder im Kontext hinzu:

Server Listen 80; server_name Beispiel.com; auth_basic "eingeschränkter Zugriff!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd; Standort / … …  

Passwort schützen Webverzeichnis in Nginx

Sie können auch die grundlegende Authentifizierung innerhalb einer Standortanweisung aktivieren. Im folgenden Beispiel versuchen alle Benutzer, auf die zuzugreifen /Administrator Der Standortblock wird gebeten, sich zu authentifizieren.

Server Listen 80; server_name Beispiel.com www.Beispiel.com; Ort / … Ort /Administrator/ auth_basic "eingeschränkter Zugriff!"; auth_basic_user_file/etc/nginx/conf.D/.htpasswd;  Ort /public /auth_basic off; #Turns off der grundlegenden HTTP -Authentifizierung für diesen Block… 

Wenn Sie eine grundlegende HTTP-Authentifizierung konfiguriert haben, wird alle Benutzer, die versuchen, auf Ihren Webserver oder einen Unterdomäne oder einen bestimmten Teil einer Website zuzugreifen (abhängig davon, wo Sie sie implementiert haben), nach einem Benutzernamen und einem Passwort, wie im folgenden Screenshot gezeigt.

Nginx grundlegende Authentifizierung

Im Falle einer fehlgeschlagenen Benutzerauthentifizierung eine “401 Genehmigung erforderlichDer Fehler wird wie unten gezeigt angezeigt.

401 Genehmigung erforderlich Fehler

Weitere Informationen finden Sie in der Einschränkung der Zugriff mit der grundlegenden HTTP -Authentifizierung.

Möglicherweise lesen Sie auch die folgenden nützlichen Nginx -HTTP -Serveranleitungen.

  1. Wie man Passwort schützt, schützen Sie Webverzeichnisse in Nginx
  2. Der ultimative Leitfaden, um die Leistung von Nginx zu sichern, zu härten und zu verbessern
  3. Einrichten von HTTPS mit Let's Encrypt SSL -Zertifikat für NGINX

In diesem Handbuch haben wir gezeigt, wie die grundlegende HTTP -Authentifizierung in Nginx HTTP -Webserver implementiert werden kann. Um Fragen zu stellen, verwenden Sie das Feedback -Formular unten.