Apache: Wichtige Module
Im folgenden wollen wir Ihnen noch die weiteren wichtigen Module vorstellen, deren Einsatz sich durchaus lohnen kann.Mod_UserDir
Mit dem Modul mod_userdir lässt sich sehr einfach für verschiedene User Platz auf dem Webserver zur Verfügung stellen. Dabei braucht dies nur einmal Konfiguriert werden und alle Userdirectory die auf dem System liegen werden über den Webserver nach außen zugänglich gemacht. Beispiel:LoadModule userdir_module modules/mod_userdir.so
UserDir "/usr/local/apache2/users/*"
<Directory /usr/local/apache2/users/*>
Options -Includes
Order deny,allow
deny from all
allow from lokalesnetz.lan
</Directory>
<Directory /usr/local/apache2/users/*>
wird die Einstellung gesetzt die kein SSI und nur den Zugriff aus dem lokalen Netz (LAN) erlaubt. Das Userverzeichnis lässt sich auch hervorragend an die vorhandene Struktur anpassen, etwa mit UserDir /home/*/public_html. Damit haben alle vorhanden Systemuser einen Webbereich.
Mod_WebDav
Das Modul mod_webdav stellt DAV (Web-based Distributed Authoring and Versioning) für den Apache Webserver zur Verfügung. Es wird damit eine Freigabe nach dem DAV-Standard erzeugt, auf die mit einem DAV Client (etwa Adobe GoLive) zugegriffen werden kann. Auch der normale Windows Explorer kann darauf zugreifen. Bei der Benutzung von WebDAV sollte das entsprechende Verzeichnis unbedingt mit Username und Passwort geschützt werden oder noch besser ist die Verwendung von einem virtuellen Host mit SSL und in Verbindung mit mod_auth_digest.LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
DavLockDB /usr/local/apache2/webdav
Alias /dav /usr/local/apache2/htdocs
<Location /dav>
Dav On
ForceType text/plain
</Location>
Mod_auth_basic und mod_auth_digest
Mit dem Modulen mod_auth_basic und mod_auth_digest lässt sich eine Authentifizierung über HTTP realisieren. Dazu sendet der Server den Status 401 und verlangt Authentifizierung. Stimmt dieses mit den Einträgen in den Passwortfiles überein lässt der Server den Client in das Verzeichnis. Folgende Direktiven sind dann verfügbar:AuthGroupFile
- definiert die Datei in der Benutzergruppen aufgelistet sind. In dieser Datei steht der Gruppenname gefolgt von einem Doppelpunkt und den zugehörigen Gruppenmitglieder.AuthUserFile
- definiert die Datei in der die Benutzer und dazugehörigen Passwörter gespeichert sind. Diese lässt sich mit dem Programm htpasswd im bin Verzeichnis erzeugen.Require
- definiert autorisierte User die Zugriff auf das geschützte Verzeichnis haben. Mit "Require User USERNAME
" und "Require Group GROUPNAME
" kann der Zugriff für einzelne User und Gruppen festgelegt werden. Bei "Requiere valid-user
" wird nur ein User benötigt der in AuthUserFile
existiert.AuthName
- definiert den Namen des geschützten BereichesAuhType
- bestimmt die Art der Authentifizierung. Dabei gibt es die Methoden Basic und Digest. Bei der Basic Methode werden die Daten im Klartext übertragen, deshalb sollte diese Methode nur mit SSL verwendet werden. Digest verschlüsselt den Namen und das Passwort während der Übertragung so das Angreifer diese nicht im Klartext mitlesen können. Digest erfordert das Modul mod_auth_digest und hat zusätzliche Konfigurationseinstellungen.AuthDigestAlgorithm
- definiert die Art der Verschlüsselung. Im Moment wird nur MD5 vollständig unterstützt.AuthDigestDomain
- damit können mehrere Bereiche definiert werden für den eine Anmeldung gültig istAuthDigestFile
- wie schon AuthUserFile
stehen hier die Benutzer mit den dazugehörigen Passwörter drinnen. Zur Erzeugung gibt es das Programm htdigest im bin Verzeichnis. AuthDigestGroupfile
- wie schon AuthGroupFile
werden hier die Gruppen definiert Beispiel für Auth-Basic:
AuthType Basic
AuthName "Geschützter Bereich"
AuthGroupFile /usr/local/apache2/auth_files/Group_File
AuthUserFile /usr/local/apache2/auth_files/User_File
Require valid-user
#Die Datei GroupFile
Administratoren: Jens
Mitarbeiter: Peter Paul
#Die Datei UserFile
Jens:$apr1$XD4.....$kSLA3HVQwIvCWxt6LaWjy1
Peter:$apr1$2E4.....$oxrobYMZQRQwwYomVUTfp1
Paul:$apr1$ME4.....$jWrrJXCtQia5oPEFw0mvi.
AuthType Digest
AuthName "Geschützter Bereich"
AuthDigestDomain /secured
AuthDigestDomain secured.domain1.org
AuthDigestGroupFile /usr/loacl/apache2/auth_files/Digest_Group_File
AuthDigestUserFile /usr/local/apache2/auth_files/Digest_User_File
#Die Datei Digest_Group_File
Administratoren: Jens
Mitarbeiter: Peter Paul
#Die Datei Digest_User_File
Jens:Admin Bereich:c1941b1402a27bc115d3a2ab696b4b5b
peter:Einkaufsbereich:0880a0c0ce7ec965fb44126a13357889
paul:Einkaufsbereich:746cd89a48d0c90a65caeff7644dabfd
Mod_autoindex
Diese beiden Module erlauben die Gestaltung der automatisch generierten Indexseiten und alles was dazugehört. So lassen sich die Icons für verschiedene Dateitypen und auch die Beschreibung anpassen.Die Direktive
IndexOptions
bestimmt das aussehen der Verzeichnisliste. Dafür gibt es umfangreiche Möglichkeiten, einige davon sind hier aufgelistet. Für alle Einstellungen lohnt sich einen Blick in die Apache-Manual.FoldersFirst
- Verzeichnisse werden vor Dateien aufgelistet (> Apache 2.0.23)IconHeight=
und IconWidth=
- bestimmt die Größe der IconsIconsAreLinks
- Icons können angeklickt werdenScanHTMLTitles
- Titel-Angaben von HTML-Dateien werden in der Beschreibung angezeigt.IgnoreCase
- damit wird nicht zwischen Groß und Kleinbuchstaben bei der Sortierung unterschiedenUm Dateien mit
AddIcon
und AddAlt
zuzuordnen gibt es dabei 3 Methoden. 1. Es wird die Datei direkt über die Erweiterung zu geordnet (*.psd).
2. Die Datei wird über das MIME-Encoding zugeordnet (x-gzip).
3. Die Datei wird über ihren MIME-Typ zugeordnet (text/html)
Wir gehen im Folgenden von der 1. Form aus. Dabei können aber fast alle Anweisungen auch mit ByEncoding und ByType genutzt werden. Also
AddIcon
, AddIconByEncoding
und AddIconByType
.AddIcon
bestimmt welches Icon bei für eine bestimmte Datei angezeigt werden soll. Dabei können auch mehrere Erweiterungen angegeben werden. Für leere Zeilen und Verzeichnisse gibt es die Platzhalter ^^DIRECTORY^^
und ^^BLANKICON^^
Mit
AddAlt
kann der Alternativtext für das Icon bestimmt werden. AddDescription
legt den Erklärungstext fest, der hinter dem Dateinamen steht. DefaultIcon
legt das standardicon für Dateien die nicht in AddIcon enthalten sind fest.HeaderName
sucht die angegebene Datei im Verzeichnis und zeigt sie über der Verzeichnisliste an.ReadmeName
sucht die angegeben Datei im Verzeichnis und zeigt sie unter der Verzeichnisliste an.IndexIgnore
bestimmt welche Dateien in der automatischen Liste angezeigt werden.
AddIcon icons/bild.gif *.psd *.gif *.jpg
AddIcons icon/folder.gif ^^DIRECTORY^^
AddAlt "Bilder" *.psd *.gif *.jpg
AddDescription "Grafikdateien" *.psd *.gif *.jpg
DefaultIcon icons/default.gif
HeaderName willkommen.html
ReadmeName readme.html
IndexIgnore .htaccess geheim.html
Mod_Rewrite
Mit dem Modul Rewrite lassen sich umfangreiche Regeln zur Umschreibung von Webseiten definieren. Das ganze ist dabei so komplex das alleine die regulären Ausdrücke etliche Seiten umfassen würden. Deshalb hier nur einige grundlegende Erläuterungen und der Verweis auf die Apache-Manual und das Kapitel mod_rewrite dort. Ein einfaches Beispiel:RewriteEngine On
RewriteRule /~([^/]+)/?(.*) users/$1/$2
ReWriteCond %{HTTP_USER_AGENT } ^Mozilla.*
ReWriteRule ^/index.html /index_mozilla.html [R=permanent]
RewriteLog logs/rewrite.log
ReWriteEngine
- schaltet das Umschreibungsmodul ein oder ausReWriteRule
- definiert eine Regel für die Umschreibung. Dabei wird ein Suchmuster angegeben und ein Muster mit dem das gefundene ersetzt wird. Das Suchmuster kann dabei mit regulären Ausdrücken geschrieben werden. Der Ersetzungsstring kann einfachen Text oder aber auch Variablen des regulären Ausdruckes enthalten. Wobei $1 für das erste Klammerpaar steht und $2 für das zweite Klammerpaar usw..ReWriteCond
- eine ReWriteCond
ist eine Art Voraussetzung für eine ReWriteRule
. In Verbindung damit kann zum Beispiel für User die einen Mozilla-Browser benutzen eine Umschreibung erfolgen.ReWriteLog
- bestimmt eine Log-Datei in der umgeschriebene URL's protokolliert werden.Obiges Beispiel würde eine angeforderteURLhttp://domain1.org/~userX/index.html nach http://domain1.org/users/userX/index.html umleiten.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ SSL
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project