Passwort Schutz für das Administrator Verzeichnis einer Joomla! Installation
Die Einrichtung eines zusätzlichen Passwort Schutzes für das Administrator Verzeichnis einer Joomla! Installation mittels .htaccess ist eine sehr gute und empfehlenswerte Maßnahme, um die eigene Joomla! Webseite zusätzlich vor Hackern zu schützen, denn es legt eine zusätzliche Sicherheitsebene an, bei der das Passwort nicht in der Joomla! Datenbank gespeichert wird.
Selbst wenn es im Rahmen eines Hacker-Angriffs auf die Webseite gelingen sollte das Administrator Passwort in der Joomla! Datenbank zu verändern - und insbesondere für Joomla! 1.5, für das ja keine Sicherheitsupdates mehr bereitgestellt werden, sind solche Hacks bekannt -, ist es den Hackern nicht möglich sich in der Administration anzumelden. Alle Aktionen die nur über die Administration möglich sind (wie die Installation von Erweiterungen - im Falle von Hackern sicher bösartigen), werden so erst einmal unterbunden.
Da die Einrichtung eines Passwortschutzes mittels .htaccess Datei teilweise zu Error 404 Fehlern führt, beschreibt der Beitrag weiter unter, wie diese behoben werden können.
Passwortschutz einrichten
Der zusätzliche Passwortschutz des Administrator Verzeichnisses erfolgt mittels einer sogenanten htaccess-Datei, dass ist eine Konfigurations-Datei für Webserver mit dem Namen .htaccess. Die Einrichtung ist nur möglich, wenn Ihr Provider die Verwendung von .htaccess-Dateien erlaubt.
In .htaccess Dateien können unterschiedliche verzeichnisbezogene Regeln aufgestellt werden. Neben dem Zugriffsschutz auch z.B. Weiterleitungsregeln (wie z.B. die Umleitung aller Anfagen an eine Webseite, die mit www beginnen auf den www-freien Domain Namen).
Viele Provider erlauben nicht nur die Verwendung von eigenen .htaccess Dateien sondern bieten sogar in der Webspace Administration die Möglichkeit an, einen Passwortschutz für Verzeichnisse über eine anwenderfreundliche Benutzeroberfläche ohne htaccess-Kenntnise einfach selbst anzulegen. Schauen Sie einmal nach, ob Sie einen Bereich "Sicherheit" und/oder ".htaccess verwalten" finden. Wenn ja, dann können Sie der Anleitung in der Administration Ihres Webspaces folgen, um einen Passwortschutz für das Administator Verzeichnis Ihrer Joomla! Installation anzulegen.
Um den Passwortschutz von Hand einzurichten benötigen Sie einen Zugriff auf die Dateien Ihrer Joomla! Installation - z.B. mittels FTP. Der Passwortschutz besteht aus zwei Dateien. Im Administrator Verzeichnis Ihrer Joomla! Installation benötigen Sie die oben erwähnte .htaccess Datei. In einem anderen Verzeichnis Ihrer Wahl, das vorzugsweise nicht innerhalb der Joomla! Installation liegt, sondern an einem sicheren Platz auf Ihrem Webspace, liegt die Datei, die die verschlüsselte Passwortinformation enthält.
Die .htaccess Datei
Legen Sie im Administrator Verzeichnis eine Datei mit dem Namen .htaccess an. Geben Sie mit Hilfe eines Texteditors folgenden Text in der Datei einAuthUserFile /pfad/zur/passwortdatei/.adminpasswd AuthName "Titel des Passwortschutzes" AuthType Basic require valid-user
Sie müssen die Pfadangabe zum Verzeichnis, in der die Datei mit den Passwortinformationen liegt (/pfad/zur/passwortdatei/) und den Namen der Datei selbst (.adminpasswd) an Ihre Gegebenheiten anpassen.
Die Passwort Datei
Die Passwort Datei enthält den Benutzernamen sowie das verschlüsselte Passwort. Sie können z.B. diesen Passwortgenerator benutzen, um den benötigen Code zu generieren.
Legen Sie im Verzeichnis, auf das die Pfadangabe in der .htaccess Datei verweist, ein Verzeichnis mit dem von Ihnen gewählten Namen an. In unserem Fall wäre dies eine Datei mit dem Namen .adminpasswd. Die Pfadangabe bezieht sich auf das Root Verzeichnis Ihres Webspaces nicht auf das Root Verzeichnis der Joomla! Installation. Geben Sie den Code, den der Passwortgenarator erzeugt hat in die Datei ein. Dies könnte beispielsweise folgendermaßen aussehen. (Benutzername = Benutzer; Passwort = Passwort).
Benutzer:$apr1$H7WqezB3$B4IuHZ2dnRKCj0i.mmMEY1
Bitte beachten Sie, dass .htaccess Dateien und Änderungen an diesen, sofort in Kraft treten.
Bitte beachten Sie, dass Sie auf einem Windows Rechner keine Datei mit dem Namen .htaccess anlegen können, weil Windows bei Dateinamen immer mindestens einen Buchstaben vor dem Punkt erwartet. Sie können aber eine Datei mit diesem Namen ohne Probleme auf einen Windowsrechner kopieren und dort auch mit jedem Texteditor bearbeiten.
Wenn Sie nun die Administration Ihrer Webseite aufrufen wird ein zusätzlicher Anmeldedialog angezeigt, in den Sie Benutzername und Passwort eingeben müssen. Erst nachdem Sie hier die richtigen Eingaben gemacht erscheint der "normale" Joomla! Login Dialog.
Error 404 nach Einrichten des Passwortschutzes
Auch wenn Sie alles richtig gemacht haben, kann es passieren, dass Sie, nachdem Sie den Passwortschutz eingerichtet haben, beim Aufrufen der Administration einen Error 404 bekommen. Dies ist ein recht versteckter Fehler der Joomla! Installation, der nicht in allen Fällen auftritt.
Joomla! selbst bietet im Zusammenhang mit der suchmaschinenfreundlichen URL's die Verwendung einer .htaccess Datei an. Diese Datei wird als htaccess.txt mit der Joomla! Installation ausgeliefert und liegt im Root der Joomla! Installation. Wenn Sie diese Datei in .htaccess umbenannt haben und in der Konfiguration Ihrer Joomla! Webseite die Option "URL-Rewrite benutzen" aktiviert haben, dann wird in allen URL's Ihrer Webseite das "index.php" herausgeschnitten.
Joomla! hat den Code der .htaccess Datei bei einem der letzten Updates geändert. Während in der alten Version folgender Code verwendet wurde
## Begin - Joomla! core SEF Section. # RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # # If the requested path and file is not /index.php and the request # has not already been internally rewritten to the index.php script RewriteCond %{REQUEST_URI} !^/index\.php # and the request is for something within the component folder, # or for the site root, or for an extensionless URL, or the # requested URL ends with one of the listed extensions RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC] # and the requested path and file doesn't directly match a physical file RewriteCond %{REQUEST_FILENAME} !-f # and the requested path and file doesn't directly match a physical folder RewriteCond %{REQUEST_FILENAME} !-d # internally rewrite the request to the index.php script RewriteRule .* index.php [L] # ## End - Joomla! core SEF Section.
wird in der neuen Version dieser Code verwendet
## Begin - Joomla! core SEF Section. # RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # # If the requested path and file is not /index.php and the request # has not already been internally rewritten to the index.php script RewriteCond %{REQUEST_URI} !^/index\.php # and the requested path and file doesn't directly match a physical file RewriteCond %{REQUEST_FILENAME} !-f # and the requested path and file doesn't directly match a physical folder RewriteCond %{REQUEST_FILENAME} !-d # internally rewrite the request to the index.php script RewriteRule .* index.php [L] # ## End - Joomla! core SEF Section.
Es ist die fehlende Zeile
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
in der neuen Version, die den Error 404 verursacht. Fügen Sie die Zeile wieder in die .htaccess Datei ein, dann funktioniert auch der Passwortschutz für das Administrator-Verzeichnis.