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:
-
Ein CentOS 7-Droplet mit einem Benutzer ohne Rootberechtigung, den Sie einrichten können, indem Sie https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7 diesem Tutorial zur Ersteinrichtung des Servers folgen ].
-
Nginx ist auf Ihrem Server installiert und konfiguriert. Dies können Sie tun, indem Sie dieses Nginx-Installations-Tutorial befolgen.
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/.