Dieser Artikel ist Teil der Apache Server Guide-Reihe:

  • Sicherung von Apache auf Ubuntu - Teil 1
  • Sicherung von Apache auf Ubuntu - Teil 2
  • Apache-Performance optimieren - Teil 1
  • Apache Performance optimieren - Teil 2
  • Einrichten von namensbasiertem Virtualhost Apache
  • Einrichten von IP und Port-Based Virtualhost in Apache
  • So richten Sie das Kennwortschutz-Webverzeichnis in Apache ein
  • Einrichten von Apache Server mit SSL-Unterstützung unter Ubuntu
  • Einrichten von Fail2ban, um Apache vor einem DDOS-Angriff zu schützen
  • Wie man Webdav mit Apache auf Ubuntu einrichtet
  • Überwachen Sie Apache Web Server mit Mod_status
  • So schützen Sie sich gegen DDoS mit Mod_evasive auf Apache Server

Apache ist einer der am häufigsten verwendeten und beliebtesten Webserver der Welt. Daher ist es wichtig, dass Ihre Websites vor unbefugten Benutzern geschützt werden. Die Apache-Authentifizierung kann so konfiguriert werden, dass Website-Besucher sich mit einer Benutzer-ID und einem Passwort anmelden müssen. Es gibt viele Möglichkeiten, wie Sie Verzeichnisse unter einem Apache-Webserver mit einem Passwort schützen können.

Dieser Artikel beschreibt eine einfache Methode zum Kennzeichnen eines Webverzeichnisses in Apache mithilfe einer .htaccess Datei.

Hinweis : Dieses Tutorial ist auf einem Ubuntu-Server mit Apache installiert.

Installation des Apache-Hilfspakets

Zuerst müssen Sie das Paket apache2-utils installieren, das ein Dienstprogramm namens htpasswd zum Erstellen einer Kennwortdatei htpasswd .

Sie können es installieren, indem Sie den folgenden Befehl ausführen:

 sudo apt-get installieren apache2-utils 

Konfigurieren Sie Apache, um die .htaccess-Authentifizierung zuzulassen

Standardmäßig erlaubt Apache die Verwendung einer .htaccess-Datei in Ubuntu 14.04 nicht. Sie müssen die Apache-Konfigurationsdatei einrichten, um die .htacces-basierte Authentifizierung zu ermöglichen.

Sie können dies tun, indem Sie die Apache-Konfigurationsdatei bearbeiten:

 sudo nano /etc/apache2/apache2.conf 

Suchen Sie den Abschnitt, der mit dem Directory "/var/www/html" beginnt, und ändern Sie die Zeile von AllowOverride none in AllowOverride AuthConfig

 Optionen Indizes FollowSymLinks AllowOverride AuthConfig Erfordern alle gewährt 

Speichern und schließen Sie die Datei.

Erstellen Sie die Passwortdatei

Sie können das htpasswd, um eine Kennwortdatei zu erstellen, mit der Apache Benutzer authentifizieren kann. Erstellen Sie nun eine versteckte .htpasswd-Datei im Konfigurationsverzeichnis "/ etc / apache2".

 sudo htpasswd -c /etc/apache2/.htpasswd authuser1 

Sie werden aufgefordert, ein Passwort für authuser1 einzugeben und zu bestätigen.

Wenn Sie einen anderen Benutzer hinzufügen möchten, lassen Sie das Argument -c mit htpasswd Befehl htpasswd .

Um nun eine weitere Authentifizierung für einen zweiten Benutzer zu erstellen, authuser2:

 sudo htpasswd /etc/apache2/.htpasswd authuser2 

Sie können den Benutzernamen und das verschlüsselte Passwort für jeden Datensatz anzeigen, indem Sie Folgendes ausführen:

 Sudokatze /etc/apache2/.htpasswd 

Sie müssen dem Benutzer "www-data" die Berechtigung erteilen, die Datei .htpasswd lesen zu können.

 sudo chown www-daten: www-data /etc/httpd/.htpasswd sudo chmod 0660 /etc/httpd/htpasswd 

Konfigurieren Sie die Apache-Passwort-Authentifizierung

Sie müssen eine ".htaccess" -Datei in dem Webverzeichnis erstellen, das Sie einschränken möchten. In diesem Beispiel werde ich eine ".htaccess" -Datei im Verzeichnis "/ var / www / html /" erstellen, um den gesamten Dokumentenstamm zu beschränken.

 sudo nano /var/www/html/.htaccess 

Fügen Sie den folgenden Inhalt hinzu:

 AuthType Basic AuthName "Eingeschränkter Inhalt" AuthUserFile /etc/apache2/.htpasswd Erfordert einen gültigen Benutzer 

Hier ist, was der obige Code bedeutet:

  • AuthType : Diese Option definiert den Typ der Authentifizierung.
  • AuthName : Dies ist Inhalt, der auf der Webseite angezeigt wird, wenn Sie nach Benutzername und Passwort gefragt werden .
  • AuthUserFile : Diese Option gibt den Speicherort der Benutzeranmeldeinformationen an.
  • require valid-user : Dies zeigt an, dass nur erfolgreich authentifizierte Anfragen die Seite laden können.

Speichern und schließen Sie die Datei und starten Sie Apache neu, damit diese Änderungen wirksam werden.

 sudo /etc/init.d/apache2 neustarten 

Passwortauthentifizierung testen

Rufen Sie jetzt auf einem Remote-Computer Ihre Website in einem Webbrowser auf. Sie werden aufgefordert, einen Benutzernamen und ein Passwort einzugeben, um auf die Webseite zugreifen zu können.

Wenn Sie die korrekten Benutzeranmeldeinformationen eingeben, können Sie auf den Inhalt zugreifen. Wenn Sie die falschen Benutzerdaten eingeben oder auf "Abbrechen" klicken, wird die Seite " Nicht autorisierte Fehler" angezeigt.

Fazit

Sie sollten nun über ausreichende Kenntnisse verfügen, um die Basisauthentifizierung für Ihren Apache-Webserver einzurichten. Beachten Sie auch, dass der Passwortschutz mit der SSL-Verschlüsselung kombiniert werden sollte, damit Ihre Anmeldeinformationen nicht im Klartext an den Server gesendet werden.