Apache .htaccess-Verzeichniszugriffsschutz
Wenn Sie einen Apache-Webserver auf einem Linux-System ausführen, kann es einige Verzeichnisse geben, auf die nicht jeder auf der Welt zugreifen kann. Apache bietet uns eine Reihe verschiedener Tools, die Website-Administratoren verwenden können, um ein Verzeichnis zu schützen.
Eine der gebräuchlichsten Methoden, den eingeschränkten Zugriff auf einen Ordner zu konfigurieren, ist die .htaccess-Datei. Wenn Sie diese Konfiguration vornehmen, werden Benutzer immer dann zur Eingabe eines Kennworts aufgefordert, wenn sie auf die geschützte URL stoßen. Wir können den gleichen Schutz aber auch ohne .htaccess konfigurieren.
In dieser Anleitung gehen wir die Schritt-für-Schritt-Anleitung zum Schutz eines Verzeichnisses auf einem Apache-Webserver durch zwei verschiedene Methoden durch. Folgen Sie uns, um den Passwortschutz auf Ihrer eigenen Website einzurichten.
In diesem Tutorial lernen Sie:
- So schützen Sie ein Verzeichnis mit einer .htaccess-Datei
- So schützen Sie ein Verzeichnis ohne .htaccess-Datei
Wir werden zur Eingabe eines Benutzernamens und eines Passworts aufgefordert, wenn wir versuchen, auf das geschützte Verzeichnis zuzugreifen
Schützen eines Verzeichnisses mit einer .htaccess-Datei
Die .htaccess-Datei ist eine Konfigurationsdatei, die von Apache verwendet wird. Sie können eine .htaccess-Datei in einem beliebigen Verzeichnis ablegen, für das Sie zusätzliche Einstellungen konfigurieren möchten. Führen Sie die folgenden Schritte aus, um die Kennwortauthentifizierung für ein Apache-Webserververzeichnis mithilfe einer .htaccess-Datei einzurichten.
Beginnen Sie damit, einen Benutzernamen und ein Passwort zu erstellen, die wir verwenden, um das geschützte Verzeichnis zu betreten. Wir verwenden das Dienstprogramm htpasswd, um diese Informationen zu generieren, und die Datei kann überall auf Ihrem System gespeichert werden. In diesem Beispiel erstellen wir einen Benutzer mit dem Namen
linuxconfig. Beim Ausführen dieses Befehls werden Sie zweimal zur Eingabe eines neuen Kennworts aufgefordert.htpasswd -c /home/linuxconfig/.htpasswd linuxconfigBevor wir unser neues Benutzerkonto und Passwort verwenden können, müssen wir Apache so konfigurieren, dass die .htaccess-Datei gelesen wird. Standardmäßig wird diese Datei ignoriert. Sie können diese Einstellung entweder global anwenden, indem Sie die Apache-Konfigurationsdatei bearbeiten, oder Ihren virtuellen Apache-Host bearbeiten, um die Konfiguration auf eine einzelne Site anzuwenden.
sudo nano /etc/apache2/sites-available/000-defaultDie Zeilen, die wir hinzufügen müssen, sind unten. Ersetzen Sie einfach unser eigenes Verzeichnis, das Sie schützen möchten, anstelle unseres Beispiels.
<Directory /var/www/html/protected/> AllowOverride All </Directory>Starten Sie Apache neu, damit diese neuen Änderungen wirksam werden.
sudo systemctl restart apache2Oder auf RHEL-basierten Systemen:
sudo systemctl restart httpdErstellen Sie als Nächstes die .htaccess-Datei in dem Verzeichnis, das Sie schützen möchten. In diesem Beispiel sichern wir das Verzeichnis
/var/www/html/protected.nano /var/www/html/protected/.htaccess-
Fügen Sie die folgenden Zeilen in diese Datei ein und speichern Sie Ihre Änderungen.
AuthType Basic AuthName "Authentication Required" AuthUserFile "/home/linuxconfig/.htpasswd" Require user linuxconfigAlternativ können Sie die letzte Zeile in
Require valid-userändern, wenn Sie mehrere Benutzerkonten einrichten möchten, die auf dieses Verzeichnis zugreifen. - Wenn wir schließlich im Browser zum geschützten Verzeichnis navigieren, sollten wir zur Eingabe eines Benutzernamens und eines Passworts aufgefordert werden, bevor wir auf den Inhalt zugreifen können.
Fügen Sie die Einstellung AllowOverride hinzu, damit Apache die .htaccess-Datei auslesen kann
Wir werden aufgefordert, einen Benutzernamen und ein Passwort einzugeben, wenn wir versuchen, auf das geschützte Verzeichnis zuzugreifen
Schützen eines Verzeichnisses ohne .htaccess-Datei
Wir können ein Verzeichnis auf unserem Webserver sichern, ohne eine .htaccess-Datei verwenden zu müssen. Auf Ihrem System muss das Dienstprogramm htpasswd installiert sein, das beim Herunterladen von Apache automatisch installiert worden sein sollte. Führen Sie die folgenden Schritte aus, um zu sehen, wie Sie damit ein passwortgeschütztes Webverzeichnis erstellen können.
Beginnen Sie damit, Ihre virtuelle Hostdatei so zu konfigurieren, dass die Authentifizierung für den Zugriff auf das Verzeichnis verwendet wird, das Sie schützen möchten. Wir bearbeiten nur die Standardkonfigurationsdatei, ersetzen aber den Dateinamen durch Ihren eigenen Namen.
sudo nano /etc/apache2/sites-available/000-default.confPlatzieren Sie die folgenden Zeilen in Ihrer Datei. Das Verzeichnis, das wir zu schützen versuchen, ist
/var/www/html/secret, aber stellen Sie sicher, dass Sie diese Einstellung ändern, um das Verzeichnis widerzuspiegeln, das Sie schützen möchten. Unsere.htpasswd-Authentifizierungsdateibefindet sich in/home/linuxconfig/.htpasswd, also stellen Sie sicher, dass Sie auch Ihren eigenen Speicherort dafür verwenden.<Directory /var/www/html/secret/> AuthType Basic AuthName "Authentication Required" AuthUserFile "/home/linuxconfig/.htpasswd" Require valid-user </Directory>Generieren Sie als Nächstes die Authentifizierungsdatei, indem Sie den Befehl htpasswd ausführen. Ersetzen Sie wieder Ihr eigenes Verzeichnis und entscheiden Sie, wo diese Datei auf Ihrem System gespeichert werden soll. In diesem Beispiel erstellen wir eine Authentifizierung für den Benutzer
linuxconfig.htpasswd -c /home/linuxconfig/.htpasswd linuxconfigSie werden aufgefordert, zweimal ein Passwort einzugeben, und dann wird die Datei erstellt. Ihr Passwort wird als verschlüsselter Hash gespeichert, den Sie in der Datei einsehen können.
cat /home/linuxconfig/.htpasswd linuxconfig:$apr1$lYH8Fue2$9En2dqIrKbsLjb0XRc9cl0Starten Sie Apache neu, damit diese neuen Änderungen wirksam werden.
sudo systemctl restart apache2Oder auf RHEL-basierten Systemen:
sudo systemctl restart httpd- Wenn Sie nun auf das geschützte Verzeichnis zugreifen, das wir zuvor konfiguriert haben, sollten Sie zur Eingabe eines Benutzernamens und eines Kennworts aufgefordert werden.
Hinzufügen von Authentifizierungseinstellungen zur virtuellen Apache-Hostdatei
Wir werden zur Eingabe eines Benutzernamens und eines Passworts aufgefordert, wenn wir versuchen, auf das geschützte Verzeichnis zuzugreifen
Abschließende Gedanken
In dieser Anleitung haben wir gesehen, wie Sie ein Webserververzeichnis mit zwei verschiedenen Methoden in Apache sichern können. Apache bietet uns einfache und leistungsstarke Möglichkeiten, Verzeichnisse und Dateien zu schützen, sodass wir private Dateien auf unserer Website ablegen können, ohne uns Sorgen machen zu müssen, dass die falsche Person darauf zugreift. Unabhängig davon, ob Sie sich für eine .htaccess-Datei entscheiden oder nicht, ist die Sicherung eines Verzeichnisses eine kurze Aufgabe, die nur wenige Schritte erfordert.



