Einrichten der grundlegenden HTTP-Authentifizierung mit Nginx unter CentOS 7

Einführung

Nginx ist einer der führenden aktiven Webserver. Es und seine kommerzielle Edition, Nginx Plus, werden von Nginx, Inc. entwickelt.

In diesem Tutorial erfahren Sie, wie Sie den Zugriff auf eine Nginx-basierte Website mithilfe der HTTP-Basisauthentifizierungsmethode unter Ubuntu 14.04 einschränken. Die HTTP-Basisauthentifizierung ist eine einfache Authentifizierungsmethode für Benutzernamen und (gehashte) Kennwörter.

Voraussetzungen

Um dieses Lernprogramm abzuschließen, benötigen Sie Folgendes:

Schritt 1 - Installieren der HTTPD-Tools

Sie benötigen den Befehl "+ htpassword ", um das Kennwort zu konfigurieren, mit dem der Zugriff auf die Zielwebsite eingeschränkt wird. Dieser Befehl ist Teil des Pakets " httpd-tools +". Der erste Schritt ist die Installation dieses Pakets.

sudo yum install -y httpd-tools

Schritt 2 - Einrichten der Anmeldeinformationen für die HTTP-Basisauthentifizierung

In diesem Schritt erstellen Sie ein Kennwort für den Benutzer, der die Website ausführt.

Dieses Kennwort und der zugehörige Benutzername werden in einer von Ihnen angegebenen Datei gespeichert. Das Passwort wird verschlüsselt und der Name der Datei kann beliebig sein. Hier verwenden wir die Datei + / etc / nginx / .htpasswd + und den Benutzernamen * nginx *.

Führen Sie den folgenden Befehl aus, um das Kennwort zu erstellen.

sudo htpasswd -c /etc/nginx/.htpasswd nginx

Sie können den Inhalt der neu erstellten Datei überprüfen, um den Benutzernamen und das Hash-Passwort anzuzeigen.

cat /etc/nginx/.htpasswd

Beispiel /etc/nginx/.htpasswd

nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/

Schritt 3 - Aktualisieren der Nginx-Konfiguration

Nachdem Sie die Anmeldeinformationen für die HTTP-Basisauthentifizierung erstellt haben, müssen Sie im nächsten Schritt die Nginx-Konfiguration für die Zielwebsite aktualisieren, um sie zu verwenden.

Die HTTP-Basisauthentifizierung wird durch die Direktiven + auth_basic + und + auth_basic_user_file + ermöglicht. Der Wert von "+ auth_basic " ist eine beliebige Zeichenfolge und wird an der Authentifizierungsaufforderung angezeigt. Der Wert von " auth_basic_user_file +" ist der Pfad zur Kennwortdatei, die in Schritt 2 erstellt wurde.

Beide Anweisungen sollten sich in der Konfigurationsdatei der Zielwebsite befinden, die sich normalerweise im Verzeichnis + / etc / nginx / + befindet. Öffnen Sie diese Datei mit + nano + oder Ihrem bevorzugten Texteditor.

sudo nano /etc/nginx/nginx.conf

Fügen Sie im Abschnitt * server * beide Anweisungen hinzu:

/etc/nginx/nginx.conf

. . .
server {
   listen       80 default_server;
   listen       [::]:80 default_server;
   server_name  _;
   root         /usr/share/nginx/html;



. . .

Speichern und schließen Sie die Datei.

Schritt 4 - Testen des Setups

Laden Sie zuerst Nginx neu, um die Änderungen zu übernehmen.

sudo systemctl reload nginx

Versuchen Sie nun, auf die soeben gesicherte Website zuzugreifen, indem Sie in Ihrem bevorzugten Browser auf "+ http: /// " klicken. Ihnen sollte ein Authentifizierungsfenster angezeigt werden (in dem "Private Property" steht, die Zeichenfolge, die wir für " auth_basic +" festgelegt haben), und Sie können erst dann auf die Website zugreifen, wenn Sie die richtigen Anmeldeinformationen eingegeben haben. Wenn Sie den von Ihnen festgelegten Benutzernamen und das Kennwort eingeben, wird die Standard-Nginx-Homepage angezeigt.

Fazit

Sie haben gerade die grundlegende Zugriffsbeschränkung für eine Nginx-Website abgeschlossen. Weitere Informationen zu dieser Technik und zu anderen Möglichkeiten der Zugriffsbeschränkung finden Sie in der Nginx-Dokumentation unter https://www.nginx.com/resources/admin-guide/restricting-access/.