Website-Suche

So schützen Sie Webverzeichnisse in Apache mithilfe der .htaccess-Datei mit einem Passwort


Wenn Sie Online-Projekte verwalten, müssen Sie häufig den Zugriff auf dieses Projekt beschränken, um es vor der Außenwelt zu schützen. Dafür kann es unterschiedliche Gründe geben – Sie möchten beispielsweise verhindern, dass Suchmaschinen-Crawler auf Ihre Website zugreifen, während diese sich noch in der Entwicklungsphase befindet.

In diesem Tutorial zeige ich Ihnen, wie Sie verschiedene Website-Verzeichnisse im Apache-Webserver mit einem Passwort schützen. Es gibt viele Möglichkeiten, dies zu erreichen, aber wir werden zwei davon besprechen, die am häufigsten verwendet werden.

Die erste Methode konfiguriert den Passwortschutz direkt in der Apache-Konfigurationsdatei, während die zweite die Datei .htaccess verwendet.

Anforderungen

Um den Passwortschutz für Ihre Webverzeichnisse einzurichten, benötigen Sie Folgendes:

  • Ein funktionierender Apache-Webserver
  • Die Anweisung AllowOverride AuthConfig muss in der Apache-Konfigurationsdatei aktiviert sein.

Richten Sie ein passwortgeschütztes Apache-Verzeichnis ein

1. Für dieses Tutorial schützen wir das Haupt-Webstammverzeichnis /var/www/html. Um dieses Verzeichnis zu schützen, öffnen Sie die Konfiguration Ihres Apache:

---------------- On RedHat/CentOS based systems ----------------
vi /etc/httpd/conf/httpd.conf

---------------- On Debian/Ubuntu based systems ----------------
nano /etc/apache2/sites-available/000-default.conf

2. Suchen Sie das Stammverzeichnis des Apache-Dokumentverzeichnisses für /var/www/html und fügen Sie die folgenden Dinge wie vorgeschlagen hinzu:

Auf Apache 2.2-Version

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All
Order allow,deny
Allow from all 
</Directory>

Auf Apache 2.4-Version

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All 
Require all granted 
</Directory>

3. Speichern Sie die Datei und starten Sie Apache neu, indem Sie den folgenden Befehl verwenden:

--------------- On Systemd -------------------
systemctl restart httpd         [On RedHat based systems]
systemctl restart apache2       [On Debian based systems]


--------------- On SysV init -----------------
service httpd restart           [On RedHat based systems]
service apache2 restart         [On Debian based systems]

4. Jetzt verwenden wir den Befehl htpasswd, um Benutzernamen und Passwort für unser geschütztes Verzeichnis zu generieren. Mit diesem Befehl werden Benutzerdateien für die Basisauthentifizierung verwaltet.

Die allgemeine Syntax des Befehls lautet:

htpasswd -c filename username

Die Option -c gibt die Datei an, die das verschlüsselte Passwort speichert, und Benutzername gibt den Benutzer für die Authentifizierung an.

5. Unsere Passwortdatei muss sich außerhalb des über das Internet zugänglichen Verzeichnisses des Apache befinden, damit sie gut geschützt ist. Zu diesem Zweck erstellen wir ein neues Verzeichnis:

mkdir /home/tecmint

6. Danach generieren wir unseren Benutzernamen und unser Passwort, die in diesem Verzeichnis gespeichert werden:

htpasswd -c /home/tecmint/webpass tecmint

Sobald Sie diesen Befehl ausführen, müssen Sie zweimal ein Passwort für unseren neuen Benutzer "tecmint" eingeben:

Danach müssen wir sicherstellen, dass Apache die Datei „webpass“ lesen kann. Zu diesem Zweck müssen Sie den Besitzer dieser Datei mit dem folgenden Befehl ändern:

---------------- On RedHat/CentOS based systems ----------------
chown apache: /home/tecmint/webpass
chmod 640 /home/tecmint/webpass
---------------- On Debian/Ubuntu based systems ----------------
chown www-data /home/tecmint/webpass
chmod 640 /home/tecmint/webpass

7. An diesem Punkt sind unser neuer Benutzer und unser neues Passwort bereit. Jetzt müssen wir Apache anweisen, beim Zugriff auf unser Zielverzeichnis ein Passwort anzufordern. Erstellen Sie zu diesem Zweck eine Datei mit dem Namen .htaccess in /var/www/html:

vi /var/www/html/.htaccess

Fügen Sie den folgenden Code hinzu:

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/tecmint/webpass
Require user tecmint

8. Speichern Sie nun die Datei und testen Sie Ihr Setup. Öffnen Sie Ihren Browser und geben Sie Ihre IP-Adresse oder Ihren Domänennamen in den Webbrowser ein, zum Beispiel:

http://ip-address

Sie sollten zur Eingabe von Benutzername und Passwort aufgefordert werden:

Geben Sie den Benutzernamen und das Passwort ein, die Sie festgelegt haben, um zu Ihrer Seite zu gelangen.

Zusätzliche Bemerkungen

Wenn Sie Shared Hosting nutzen, haben Sie höchstwahrscheinlich keinen Zugriff auf die Apache-Konfigurationsdatei. Die meisten Hosting-Unternehmen haben jedoch standardmäßig die Option „AllowOverride All“ aktiviert. Das bedeutet, dass Sie nur den Benutzernamen und das Passwort generieren und dann das Verzeichnis auswählen müssen, das Sie schützen möchten. Dies erleichtert Ihnen die Arbeit erheblich.

Abschluss

Ich hoffe, dass Sie dieses Tutorial nützlich fanden und Ihnen dabei helfen, Ihr Ziel zu erreichen. Wenn Sie Fragen oder Kommentare haben, können Sie diese gerne im folgenden Abschnitt posten.