Apache-Verzeichnis ohne .htaccess schützen

Aktuell bin ich damit beschäftigt, ein (oder mehrere) Verzeichnisse, die unterhalb eines Apache-DocumentRoot liegen, mit einem Password zu schützen.

Es handelt sich hierbei, wie in den vorherigen Artikeln beschrieben (Teil 1 und Teil 2), um gemountete Windows-Freigaben.

Da ich nicht möchte, dass in den Freigaben selbst eine .htaccess zur Authentifizierung liegt, habe ich nach einer Möglichkeit gesucht, einen Passwortschutz auf Apache-Konfigurationslevel zu erstellen.

Die Lösung nennt sich Digest Authentification.

Probleme während des SetUps

Ich bin bei der Durchführung auf mehrere Probleme gestoßen, die ich nachfolgend erläutern werde:

  1. Invalid command ‚AuthDigestFile‘, perhaps misspelled or defined by a module not included in the server configuration
  2. Trotz (gedacht) korrekten Einstellungen, ist eine Authentifizierung mit hinterlegten Benutzerdaten am Share per Browser nicht möglich; die Anmeldedaten scheinen falsch.

Vorraussetzungen

Es wird ein Apache Webserver (in meinem Fall Version 2.2.3) mit korrekter Konfiguration benötigt.

auth_digest Modul laden

Das Modul „auth_digest“ muss am Webserver aktiviert werden. Bei Debian funktioniert das mit dem Programm „a2enmod“ sehr einfach:

a2enmod auth_digest

Erstellen von Benutzerdatei

Zur Authentifizierung muss eine Datei (ähnlich der .htpasswd) angelegt werden, die die Benutzer beinhaltet, die Zugriff auf ein „Browser-Share“ erhalten sollen. Diese lässt sich wie folgt erstellen:

htdigest -c pfadzurdatei realm benutzer
htdigest -c /var/www/htdocs/website/.authfile wiki testnutzer

Das Realm bezeichnet in diesem Fall eine Zugehörigkeit zur Website. Es ist darauf zu achten, diese Angabe sinngemäß zu treffen!

Konfigurationsdatei der Website anpassen

Nun muss die entsprechende Apache2-Konfigurationsdatei der Website editiert werden. Diese liegen bei Debian unter:

/etc/apache2/sites-available

Die bestehende Datei sah bei mir folgendermaßen aus:


        ServerName wiki
        DocumentRoot /var/www/htdocs/wiki
        IndexOptions +FancyIndexing +FoldersFirst

Sie wurde um den Eintrag zur Digest-Protection folgendermaßen abgeändert:


        ServerName wiki
        DocumentRoot /var/www/htdocs/wiki
        IndexOptions +FancyIndexing +FoldersFirst


        AuthType Digest
        AuthName "wiki"
        AuthDigestDomain /Puffer/ /Info/

        AuthDigestProvider file
        AuthUserFile /var/www/htdocs/.authfile
        Require valid-user

Wichtig ist hierbei, dass:

  1. AuthName“ = dem beim Benutzer angegebenem „Realm“ entspricht. Sonst schlägt die Authentifizierung fehl!
  2. AuthUserFile anstatt AuthDigestFile verwendet wird – ansonsten tritt der initial genannte Fehler auf. Hier nachzulesen.
  3. Wie oben zu sehen, kann bei „Require“ auch ein oder mehrere einzelne Benutzer angegeben werden. Bei valid-user sind alle Benutzer in der Passwortdatei für den Zugriff freigeschaltet.
  4. AuthDigestDomain kann mit mehreren Angaben umgehen – wie oben zu sehen. Zusätzlich könnten auch Angaben wie „/Puffer/ /Info/ http://wiki/Puffer“ gelten.

Nach einem Neustart des Apache’s greifen die getätigten Einstellungen und können bei einem ersten Test überprüft werden:

/etc/init.d/apache2 force-reload

Wirft der Indianer hierbei Fehlermeldungen aus, sollte man zum einen die Fehlermeldung genauer analyieren oder einen Blick in die Apache-Logs werfen, die äußerst Hilfreich bei Problemen sind !!

Diese finden sich unter Debian hier:

tail -f /var/log/apache2/access.log
# oder
tail -f /var/log/apache2/error.log

Bastian

Seit 2006 bin ich täglich im IT-Umfeld unterwegs und interessiere mich für technische Lösungen im Hard- und Softwarebereich, die einem den Alltag erleichtern. Zu meinen Hobbies zählt ein 3D-Drucker, das auch (handwerkliche) Tüfteln, Scripten sowie der unqualifizierte Umgang mit dem Lötkolben.

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.