Apache: Wie man eine Verzeichnisauflistung anzeigt
Um eine Liste von Dateien und Unterverzeichnissen in einem Verzeichnis auf dem Apache HTTP-Server anzuzeigen, setzen Sie Options +Indexes in diesem Verzeichnis. Die Liste wird generiert, wenn Zugriffsberechtigungen gewährt werden, keine Standard-Indexdatei vorhanden ist und mod_autoindex aktiviert ist.
Bedingungen, unter denen die Liste angezeigt wird
Wenn eine Verzeichnis-URL in Apache 2.4 angefordert wird, sucht es zuerst nach Dateien, die in DirectoryIndex angegeben sind. Wenn beispielsweise index.html existiert, wird diese Datei normalerweise angezeigt. Wenn die Datei nicht existiert und Indexes aktiviert ist, kann mod_autoindex die Liste erstellen. Für detailliertes Verhalten siehe die DirectoryIndex-Beschreibung von Apache und die mod_autoindex-Dokumentation.
Listeneinstellungen gewähren keine Zugriffsberechtigungen. Verzeichnisse, auf die der Zugriff verweigert wird oder Pfade, die Apache nicht lesen kann, zeigen keine Liste an. Außerdem kann aus verschiedenen Gründen ein 403 Forbidden auftreten, zum Beispiel durch Authentifizierung oder Dateisystemberechtigungen. Daher sollten Sie das Auflisten nicht nur aktivieren, weil ein 403 angezeigt wird.
Überprüfen Sie vor der Einstellung
- Bereiten Sie ein dediziertes Verzeichnis vor, in dem Listen und Dateien öffentlich gemacht werden können. Legen Sie keine Materialien ab, die nicht öffentlich sein sollten, wie Konfigurationsdateien, Backups oder persönliche Informationen.
- Bestätigen Sie den virtuellen Host der zu konfigurierenden Website und den tatsächlichen Dateipfad. Das untenstehende Beispiel gilt für Ubuntu Apache 2.4, wenn das Document Root der Website
/var/www/htmlist und das öffentliche Verzeichnis darunterdownloadsliegt. Ersetzen Sie es durch den tatsächlichen Umgebungs-Pfad und die URL. - Sichern Sie die bestehenden Einstellungen und bestätigen Sie, dass Sie die Berechtigung haben, die Website zu verwalten und Apache neu zu laden. Wenn es sich um einen Produktionsserver handelt, prüfen Sie dies zuerst in einer Testumgebung.
Auch wenn Dateien in der Auflistung nicht erscheinen, können sie zugänglich sein, wenn Sie die Dateiadresse direkt kennen. Das Verbergen von Namen in der Auflistung ersetzt keine Berechtigungen, die den Datei-Zugriff blockieren.
Auf ein bestimmtes Verzeichnis im virtuellen Host anwenden
Unter Ubuntu befindet sich die aktive Site-Konfiguration normalerweise in einer Datei unter /etc/apache2/sites-available/. Fügen Sie den folgenden Block zur Konfiguration des virtuellen Hosts der Site hinzu oder ändern Sie die vorhandene Pfadkonfiguration. Gewähren Sie nicht unüberlegt öffentlichen Zugriff auf Verzeichnisse mit bestehenden Zugriffsbeschränkungen.
<Directory "/var/www/html/downloads">
Options +Indexes
Require all granted
</Directory>
Options +Indexes fügt eine Verzeichnisauflistung zu vererbten Optionen hinzu. Require all granted ermöglicht den Zugriff auf diesen Pfad, daher verwenden Sie ihn nur in Verzeichnissen, die öffentlich sein sollen. Der tatsächliche Anwendungsbereich kann je nach anderen Konfigurationsabschnitten oder Unterverzeichniseinstellungen variieren. Sie können die Vererbungs- und Zusammenführungsregeln von Optionen in der Apache Options-Direktive überprüfen.
Nach dem Speichern der Konfiguration überprüfen Sie die Syntax unter Ubuntu. Wenn Syntax OK angezeigt wird, laden Sie die Konfiguration neu. Falls Fehler auftreten, korrigieren Sie den Pfad und Tippfehler und laden Sie erst neu, wenn die Überprüfung erfolgreich war.
sudo apache2ctl configtest
sudo systemctl reload apache2
Distributionen außer Ubuntu können unterschiedliche Speicherorte für Konfigurationsdateien und Servicenamen haben. Befolgen Sie auch die Richtlinien dieser Distribution für Befehle zur Syntaxprüfung und zum Neuladen.
Überprüfung von Verzeichnislisten und Zugriffsumfang
- Legen Sie eine Testdatei, die öffentlich zugänglich sein kann, im Zielverzeichnis ab und stellen Sie sicher, dass die angegebene Indexdatei nicht vorhanden ist.
- Öffnen Sie die Verzeichnis-URL in Ihrem Browser. Im obigen Beispiel, wenn die Serveradresse
https://example.comlautet, wärehttps://example.com/downloads/die Beispiel-URL. Ersetzen Sie sie durch die tatsächliche Domain. - Überprüfen Sie, ob die Testdateien in der Liste angezeigt werden, und öffnen Sie die Links, um sicherzustellen, dass der Zugriffsumfang der vorgesehenen Einstellung entspricht. Da Einstellungen von Unterverzeichnissen übernommen werden können, überprüfen Sie auch den öffentlichen Zugriffsumfang.
Wenn anstelle einer Liste eine Seite angezeigt wird, prüfen Sie, ob eine DirectoryIndex-Datei oder andere Handler/Weiterleitungen vorhanden ist. Wenn es sich um einen 403-Fehler handelt, überprüfen Sie die Zugriffsrestriktionen, Verzeichnisberechtigungen und Indexeinstellungen in den Fehlerprotokollen. Sie können auch prüfen, ob das autoindex-Modul mit apache2ctl -M aktiv ist. Wenn der Pfad falsch ist, kann ein 404-Fehler auftreten.
Bei Verwendung von .htaccess
Wenn der Serveradministrator Options-Änderungen in .htaccess für das Verzeichnis erlaubt hat, können Sie auch die folgende Zeile zu dieser Datei hinzufügen. Wenn der AllowOverride der übergeordneten Einstellungen diese Option nicht erlaubt, funktioniert dies möglicherweise nicht oder kann zu einem Serverfehler führen, bestätigen Sie dies daher mit dem Administrator.
Options +Indexes
Wenn Sie Zugriff auf die Servereinstellungen haben, empfiehlt Apache in der Regel die Verwendung der Hauptkonfigurationsdatei. Überprüfen Sie die anwendbaren Bedingungen im Apache .htaccess-Handbuch.
Um die Anzeige der Liste zu stoppen
Setzen Sie Options -Indexes im angegebenen Pfad oder stellen Sie die Einstellungen von vor Ihren Änderungen wieder her, prüfen Sie dann die Syntax und laden Sie Apache neu. Wenn Sie es zu .htaccess hinzugefügt haben, entfernen Sie entweder diese Zeile oder ändern Sie sie, falls erlaubt, in Options -Indexes. Da vererbte Einstellungen existieren können, überprüfen Sie nach den Änderungen erneut die Verzeichnis-URL.
Ein einfaches Ausschalten der Liste blockiert nicht den Zugriff auf bereits bekannte Datei-URLs. Um die Dateien selbst zu schützen, wenden Sie separate Zugriffskontrollen an und überprüfen Sie, dass unbefugte Benutzer tatsächlich blockiert werden.




