Kapitel 12 Konfigurieren des sicheren Servers

Die Standardkonfiguration von Red Hat Linux Secure Web Server ist normalerweise für die meisten Benutzer geeignet. Es kann sein, dass Sie nie auch nur eine einzige Konfigurationsanweisung von Apache ändern müssen. Wenn Sie jedoch an den Standardkonfigurationsoptionen Änderungen vornehmen möchten, müssen Sie einige der Optionen kennen und wissen, wo diese zu finden sind. In diesem Kapitel werden die Konfigurationsoptionen besprochen, die von Ihnen verwendet werden können.

Nach der Installation von Red Hat Linux Secure Web Server finden Sie die Dokumentation zum Apache Web-Server unter http://ihre_domäne/manual/, oder Sie können die Apache Dokumentation im Web einsehen unter http://www.apache.org/docs/. Die Apache Web-Server-Dokumentation enthält eine vollständige Liste und komplette Beschreibungen aller Konfigurationsoptionen von Apache. Um Ihnen die Übersicht zu erleichtern, enthält dieses Handbuch kurze Beschreibungen der Konfigurationsanleitungen für den Red Hat Linux Secure Web Server.

Beachten Sie bitte, dass die Standardkonfigurationsdatei Ihres Web-Servers sowohl Einträge für einen Web-Server ohne Verschlüsselung als auch für einen Web-Server mit Verschlüsselung (sicherer Web-Server) enthält. Der sichere Web-Server wird als virtueller Rechner ausgeführt, der in der Konfigurationsdatei httpd.conf konfiguriert wird. Weitere Informationen über virtuelle Rechner finden Sie unter Abschnitt namens Virtuelle Rechner verwenden.

AnmerkungBitte beachten
 

Es sind keine FrontPage-Erweiterungen enthalten, weil die Lizenz von Microsoft(TM) deren Lieferung in einem Produkt eines Drittanbieters verbietet.

Konfigurationsanweisungen in httpd.conf

Die Konfigurationsdatei für den Apache Web-Server ist /etc/httpd/conf/httpd.conf. Die Datei httpd.conf enthält ausführliche Kommentare und ist bis zu einem gewissen Grad selbsterklärend. Die Standardkonfiguration von Red Hat Linux Secure Web Server ist für die meisten Benutzer geeignet, und daher werden Sie wahrscheinlich keine Änderungen an den Anweisungen in httpd.conf vornehmen müssen. Vielleicht interessieren Sie sich aber für die wichtigsten Konfigurationsoptionen.

Die leeren Dateien srm.conf und access.conf befinden sich ebenfalls im Verzeichnis /etc/httpd/conf. srm.conf und access.conf wurden früher zusammen mit httpd.conf als Konfigurationsdateien für Apache verwendet.

Wenn Sie Ihren Red Hat Linux Secure Web Server konfigurieren müssen, ist lediglich die Datei httpd.conf zu editieren und anschließend der Red Hat Linux Secure Web Server neu zu laden oder anzuhalten und neu zu starten. Das Neuladen, Anhalten und Starten des Servers wird in Abschnitt namens Starten und Beenden von Apache in Kapitel 11 besprochen.

Vor dem Editieren von httpd.conf sollten Sie zuerst die Originaldatei kopieren und in httpd.confold (oder einen anderen von Ihnen gewählten Namen) umbenennen. Falls Sie beim Editieren der Konfigurationsdatei einen Fehler machen, steht Ihnen auf diese Weise eine Sicherheitskopie zur Verfügung, mit der Sie von vorn beginnen können.

Falls Sie einen Fehler machen und Ihr Red Hat Linux Secure Web Server nicht richtig funktioniert, sollten Sie zuerst die gerade editierte Datei httpd.conf auf Tippfehler überprüfen. Als Nächstes sollten Sie einen Blick auf die Fehlerprotokolldatei von Red Hat Linux Secure Web Server werfen (/var/log/httpd/error_log). Die Auswertung der Fehlerprotokolldatei ist, je nachdem, wie viel Erfahrung Sie damit haben, möglicherweise nicht ganz einfach. Wenn gerade ein Problem aufgetreten ist, sollten die letzten Einträge jedoch einige Hinweise liefern, was passiert ist.

Der nächste Abschnitt enthält kurze Beschreibungen der Anweisungen in httpd.conf in der Reihenfolge, wie sie in der Datei eingetragen sind. Diese Beschreibungen gehen nicht bis ins letzte Detail. Weitere Informationen finden Sie in der Apache Dokumentation im HTML-Format unter http://ihre_domäne/manual/ oder in der Apache Group Dokumentation unter http://www.apache.org/docs/. Weitere Informationen zu mod_ssl-Anweisungen finden Sie in der mitgelieferten Dokumentation im HTML-Format unter http:// ihre_domäne/manual/mod/mod_ssl/ bzw. im mod_ssl-User Manual (Benutzerhandbuch) unter http://www.modssl.org/docs/2.6/.

ServerType

Die Einstellung für ServerType kann entweder inetd oder standalone sein. Die Standardeinstellung für den Red Hat Linux Secure Web Server ist ServerType standalone.

ServerType standalone bedeutet, dass der Server einmal gestartet wird und dieser Server dann alle Verbindungen bearbeitet. ServerType inetd bedeutet, dass für jede HTTP-Verbindung eine neue Instanz des Servers gestartet wird. Jede Serverinstanz bearbeitet die Verbindung und wird beendet, wenn die Verbindung beendet wird. Wie Sie sich wahrscheinlich vorstellen können, ist die Verwendung von inetd sehr uneffektiv. Ein weiteres Problem ist, dass laut Informationen der Apache Group inetd möglicherweise nicht korrekt funktioniert. Da schließlich Red Hat Linux 7.0 xinetd verwendet, sind zusätzliche Konfigurationsarbeiten erforderlich, um über xinetd den Server zu starten. Aus diesen Gründen sollten Sie die Einstellung von ServerType von Red Hat Linux Secure Web Server auf standalone belassen.

ServerRoot

ServerRoot ist das oberste Verzeichnis, das die Serverdateien enthält. Sowohl der Server mit Verschlüsselung (sicherer Server) als auch der Server ohne Verschlüsselung sind auf die Verwendung von /etc/httpd als ServerRoot eingestellt.

LockFile

LockFile stellt den Pfad zur Sperrdatei ein, die verwendet wird, wenn der Apache Server entweder mit USE_FCNTL_SERIALIZED_ACCEPT oder mit USE_FLOCK_SERIALIZED_ACCEPT kompiliert wird. LockFile sollte normalerweise auf seinem Standardwert belassen werden.

PidFile

PidFile gibt die Datei an, in der der Server seine Prozess-ID (pid) ablegt. Der Red Hat Linux Secure Web Server ist so konfiguriert, dass er seine pid in /var/run/httpd.pid ablegt.

ScoreBoardFile

Im ScoreBoardFile werden interne Serverprozessinformationen gespeichert, die für die Kommunikation zwischen dem Eltern-Serverprozess und seinen Kind-Prozessen verwendet wird. Das ScoreBoardFile von Red Hat Linux Secure Web Server ist auf /var/run/httpd.scoreboard eingestellt.

ResourceConfig

Die Anweisung ResourceConfig veranlasst den Server, die nach ResourceConfig angegebene Datei nach weiteren Informationen zu durchsuchen. Die Anweisung ResourceConfig ist auskommentiert, weil Ihr Web-Server nur die Datei httpd.conf für Konfigurationsanweisungen verwendet.

AccessConfig

Die Anweisung AccessConfig veranlasst den Server, die nach AccessConfig angegebene Datei nach weiteren Anweisungen zu durchsuchen, nachdem die durch ResourceConfig angegebene Datei gelesen wurde. Die Anweisung AccessConfig ist auskommentiert, weil Ihr Web-Server nur die Datei httpd.conf für Konfigurationsanweisungen verwendet.

Timeout

Timeout gibt die Zeit in Sekunden an, die der Server während Kommunikationsverbindungen auf den Empfang und auf Übertragungen wartet. Insbesondere gibt Timeout an, wie lange der Server auf den Empfang einer GET-Anforderung wartet, wie lange er auf den Empfang von TCP-Paketen bei einer POST- oder GET-Anforderung wartet und wie lange er zwischen ACKs wartet, die als Antwort auf TCP-Pakete gesendet werden. Timeout ist auf 300 Sekunden eingestellt, eine für die meisten Situationen geeignete Einstellung.

KeepAlive

KeepAlive bestimmt, ob der Server wiederholte Verbindungen (d.h. mehr als eine Anforderung pro Verbindung) erlaubt. KeepAlive kann verwendet werden, um zu verhindern, dass ein einzelner Client zu viele der Serverressourcen verbraucht. Die Standardeinstellung für KeepAlive ist on, das heißt der Server erlaubt wiederholte Verbindungen. Sie können die Einstellung auf off ändern. Dadurch werden wiederholte Verbindungen deaktiviert. Eine ähnliche Möglichkeit, die Anfragen pro Verbindung zu begrenzen, finden Sie in Abschnitt namens MaxKeepAliveRequests.

MaxKeepAliveRequests

Diese Anweisung gibt an, wie viele Anforderungen pro wiederholter Verbindung maximal erlaubt sind. Die Apache Group empfiehlt einen hohen Wert. Dadurch wird die Leistung des Servers verbessert. Die Standardeinstellung für MaxKeepAliveRequests ist 100, eine für die meisten Situationen geeignete Einstellung.

KeepAliveTimeout

KeepAliveTimeout gibt die Anzahl der Sekunden an, die der Server auf eine nachfolgende Anforderung wartet, nachdem eine Anforderung bearbeitet wurde. Danach wird die Verbindung geschlossen. Nach dem Empfang einer Anforderung gilt stattdessen die Anweisung Timeout.

MinSpareServers und MaxSpareServers

Der Apache Web-Server passt sich dynamisch an die erkannte Last an, indem je nach Datenverkehr eine geeignete Anzahl von Reserve-Serverprozessen aufrechterhalten werden. Der Server prüft die Anzahl von Servern, die auf eine Anforderung warten, und beendet einige davon, wenn mehr als von MaxSpareServers angegeben vorhanden sind bzw. erzeugt einige neue, wenn weniger als in MinSpareServers angegeben vorhanden sind.

Die Standardeinstellung des Servers für MinSpareServers ist 5. Die Standardeinstellung des Servers für MaxSpareServers ist 20. Diese Standardeinstellungen sind für die meisten Situationen geeignet. MinSpareServers sollte nicht auf eine zu große Zahl eingestellt werden, weil dadurch selbst bei geringem Datenverkehr die Belastung des Servers hoch ist.

StartServers

StartServers bestimmt, wie viele Serverprozesse beim Start erzeugt werden. Da der Web-Server je nach Datenverkehrsaufkommen Serverprozesse dynamisch beendet bzw. erzeugt, muss dieser Parameter nicht verändert werden. Der Web-Server ist so konfiguriert, dass beim Start acht Serverprozesse erzeugt werden.

MaxClients

MaxClients gibt eine Obergrenze für die Gesamtzahl von Serverprozessen an (d.h. gleichzeitig verbundene Clients), die gleichzeitig ausgeführt werden können. Sie sollten MaxClients auf einer hohen Anzahl belassen (die Standardeinstellung des Servers ist 150), weil kein anderer Client eine Verbindung aufbauen darf, sobald diese Anzahl von gleichzeitig verbundenen Clients erreicht ist. Wenn MaxClients auf eine Anzahl eingestellt werden soll, die größer als 256 ist, muss Apache neu kompiliert werden. Der Hauptgrund für die Existenz von MaxClients ist, dass damit verhindert werden soll, dass Ihr Betriebssystem durch einen überlasteten Web-Server zum Absturz gebracht wird.

MaxRequestsPerChild

MaxRequestsPerChild bestimmt die Gesamtanzahl der Anforderungen, die ein Kind-Serverprozess bearbeitet, bevor er beendet wird. Der Hauptgrund für die Einstellung von MaxRequestsPerChild ist, dass lang andauernde, durch Prozesse verursachte Speicherlecks vermieden werden sollen. Die Standardeinstellung für MaxRequestsPerChild für den Server ist 100.

Listen

Der Befehl Listen kennzeichnet den Port, an dem der Red Hat Linux Secure Web Server ankommende Anforderungen annimmt. Der Red Hat Linux Secure Web Server ist so konfiguriert, dass auf Port 80 auf unverschlüsselte Web-Kommunikation und (in Virtual Host-Tags, die den sicheren Server definieren) auf Port 443 auf sichere Web-Kommunikation gewartet wird.

Wenn Sie Apache so konfigurieren, dass an einem Port kleiner als 1024 gewartet wird, muss der Prozess httpd als Root starten. Für Port 1024 und darüber kann httpd als normaler Benutzer starten.

Listen kann auch zur Angabe spezieller IP-Adressen verwendet werden, über die der Server Verbindungen annimmt.

BindAddress

BindAddress ist eine Möglichkeit, um anzugeben, an welcher IP-Adresse der Server Verbindungen annimmt. Wenn Sie diese Funktion benötigen, sollten Sie stattdessen Listen verwenden. BindAddress wird vom Web-Server nicht verwendet. In der Datei httpd.conf ist es standardmäßig auskommentiert.

LoadModule

LoadModule wird in Dynamic Shared Object (DSO)-Modulen zum Laden verwendet. Weitere Informationen zur DSO-Unterstützung von Red Hat Linux Secure Web Server einschließlich der genauen Verwendung der Anweisung LoadModule finden Sie in Abschnitt namens Hinzufügen von Modulen zu Ihrem Server. Beachten Sie, dass die Reihenfolge der Module wichtig ist. Sie sollten daher die Reihenfolge nicht verändern.

IfDefine

Die Tags <IfDefine> und </IfDefine> umschließen Konfigurationsanweisungen, die ausgeführt werden, wenn sich für die Bedingung im Tag <IfDefine> die Aussage wahr ergibt. Die Anweisungen werden nicht ausgeführt, wenn sich die Aussage falsch ergibt.

Die Bedingung in den Tags <IfDefine> ist eine Parameterbezeichnung (z.B. HAVE_PERL ). Wenn der Parameter definiert ist (d.h. er wurde beim Start des Servers als Argument des Startbefehls angegeben), ist die Aussage wahr. In diesem Fall ist die Bedingung wahr, wenn der Red Hat Linux Secure Web Server gestartet ist, und die Anweisungen in den Tags IfDefine werden ausgeführt.

Standardmäßig umschließen die Tags <IfDefine HAVE_SSL> die virtuellen Rechnertags für den sicheren Server. <IfDefine HAVE_SSL>-Tags umschließen außerdem auch die Anweisungen LoadModule und AddModule für das ssl_module.

ClearModuleList

Die Anweisung ClearModuleList steht direkt vor der langen Liste mit AddModule -Anweisungen. ClearModuleList löscht die in den Server integrierte Liste der aktiven Module. Die Liste von AddModule-Anweisungen erstellt dann direkt nach ClearModuleList die Liste neu.

AddModule

AddModule ist die Anweisung zur Erstellung einer vollständigen Liste mit allen verfügbaren Modulen. Sie müssen die Anweisung AddModule verwenden, wenn Sie Ihr eigenes Modul als DSO einfügen. Weitere Informationen zur Verwendung von AddModule für die DSO-Unterstützung finden Sie in Abschnitt namens Hinzufügen von Modulen zu Ihrem Server.

ExtendedStatus

Die Anweisung ExtendedStatus bestimmt, ob Apache beim Aufruf des server-status-Handlers Statusinformationen in einer Kurzfassung (off) oder einer detaillierten Fassung (on) erstellt. Server-status wird über Location-Tags aufgerufen. Weitere Informationen zum Aufruf von server-status finden Sie in Abschnitt namens Location.

Port

Normalerweise definiert Port den Port, an dem der Server auf Anforderungen wartet. Der Red Hat Linux Secure Web Server wartet jedoch standardmäßig an mehr als einem Port, da die Anweisung Listen ebenfalls verwendet wird. Wenn Listen-Anweisungen aktiv sind, wartet der Server an allen diesen Ports. Weitere Informationen zu Listen finden Sie in der Beschreibung der Anweisung Listen.

Der Befehl Port wird auch dazu verwendet, die Portnummer anzugeben, die zur Erstellung des kanonischen Namens für Ihren Server verwendet wird. Weitere Informationen über den kanonischen Namen Ihres Servers finden Sie in Abschnitt namens UseCanonicalName.

User

Die Anweisung User definiert die Benutzer-ID, die vom Server zur Beantwortung von Anforderungen verwendet wird. Die User-Einstellung bestimmt die Zugriffsrechte des Servers. Alle Dateien, auf die dieser Benutzer nicht zugreifen darf, sind für die Besucher Ihrer Website ebenfalls nicht zugänglich. Die Standardeinstellung für User ist apache.

Der in User eingetragene Benutzer sollte nur Zugriffsrechte auf solche Dateien haben, die für die Außenwelt sichtbar sein sollen. Der in User eingetragene Benutzer ist auch der Eigentümer aller vom Server erzeugten CGI-Prozesse. Der in User eingetragene Benutzer sollte nur Code ausführen dürfen, der zur Beantwortung von HTTP-Anforderungen vorgesehen ist.

AnmerkungBitte beachten
 

Geben Sie in User als Benutzer niemals root an, es sei denn, Sie wissen genau, was Sie tun. Root als Eintrag für User würde riesige Sicherheitslöcher für Ihren Red Hat Linux Secure Web Server bedeuten.

Der Eltern-Prozess httpd wird im Normalbetrieb zuerst als Root ausgeführt, wird dann aber sofort zum Benutzer apache weitergegeben. Der Server muss als Root starten, weil die Bindung an einen Port unter 1024 erforderlich ist (der Standardport für sichere Web-Kommunikation ist der Port 443, der Standardport für unverschlüsselte Web-Kommunikation ist der Port 80). Ports unter 1024 sind für die Verwendung durch das System reserviert und können daher nur von Root verwendet werden. Sobald sich der Server jedoch an den Port gebunden hat, wird der Prozess an den in User eingetragenen Benutzer weitergegeben, bevor er Verbindungsanforderungen annimmt.

Group

Die Anweisung Group ähnelt der Anweisung User. Group legt die Gruppe fest, unter der der Server Anforderungen beantwortet. Die Standardeinstellung für Group ist ebenfalls apache.

ServerAdmin

ServerAdmin sollte auf die E-Mail-Adresse des Red Hat Linux Secure Web Server - Administrators eingestellt sein. Diese E-Mail-Adresse wird in Fehlermeldungen auf vom Server erstellten Web-Seiten angezeigt, damit die Benutzer dem Serveradministrator ein Problem per E-Mail melden können. ServerAdmin ist standardmäßig auf root@localhost eingestellt.

Meistens ist es am günstigsten, bei ServerAdmin webmaster@ihre_domäne.com einzutragen. Richten Sie dann in /etc/aliases einen Alias webmaster ein, der auf den für den Web-Server Verantwortlichen zeigt. Führen Sie schließlich /usr/bin/newaliases aus, um die neuen Aliase hinzuzufügen.

ServerName

Mit ServerName können Sie einen Rechnernamen für Ihren Server angeben, der sich vom wirklichen Namen Ihres Rechners unterscheidet. Zum Beispiel können Sie so den Namen www.ihre_domäne.com einrichten, obwohl der wirkliche Name Ihres Servers foo.ihre_domäne.com ist. Beachten Sie, dass ServerName einen gültigen Domain Name Service (DNS)-Namen enthalten muss, den Sie auch tatsächlich verwenden dürfen (also nicht einfach etwas ausdenken).

Wenn Sie in ServerName einen Servernamen angeben, muss die entsprechende Zuordnung von IP-Adresse und Servername in Ihrer /etc/hosts-Datei enthalten sein.

DocumentRoot

DocumentRoot enthält das Verzeichnis, das die meisten HTML-Dateien enthält, die der Server auf Anforderung überträgt. Der Standardeintrag für DocumentRoot ist sowohl für den unverschlüsselten als auch für den sicheren Web-Server /var/www/html. Zum Beispiel könnte der Server eine Anforderung für folgendes Dokument empfangen:

http://ihre_domäne/foo.html

Der Server sucht die folgende Datei im Standardverzeichnis:

/var/www/html/foo.html
	

Wenn Sie den Eintrag in DocumentRoot so ändern möchten, dass es nicht vom sicheren und vom unverschlüsselten Web-Server gemeinsam benutzt wird, finden Sie in Abschnitt namens Virtuelle Rechner verwenden entsprechende Informationen.

Directory

Die Tags <Directory /path/to/directory> und </Directory> werden verwendet, um eine Gruppe von Konfigurationsanweisungen zu umschließen, die sich nur auf dieses Verzeichnis und alle seine Unterverzeichnisse beziehen sollen. Alle Anweisungen, die auf ein Verzeichnis anwendbar sind, können innerhalb der <Directory> -Tags verwendet werden. <File>-Tags können auf die gleiche Weise verwendet werden, allerdings für eine spezielle Datei.

In der Standardeinstellung werden für das Root-Verzeichnis mit den Anweisungen Options (siehe Abschnitt namens Options) und AllowOverride (siehe Abschnitt namens AllowOverride) sehr restriktive Parameter vorgegeben. Bei dieser Konfiguration müssen für jedes Verzeichnis die Einstellungen explizit vergeben werden, wenn weniger restriktive Einstellungen erforderlich sind.

Mit Location-Tags werden für DocumentRoot (auch mit "/" bezeichnet) weniger restriktive Parameter definiert, damit HTTP-Anforderungen in diesem Verzeichnis bearbeitet werden können.

Das Verzeichnis cgi-bin wird mit der Option ExecCGI für die Ausführung von CGI-Skripten eingerichtet. Wenn die Ausführung von CGI-Skripten in anderen Verzeichnissen erforderlich ist, müssen Sie ExecCGI entsprechend für dieses Verzeichnis einstellen. Wenn Ihr Verzeichnis cgi-bin zum Beispiel /var/www/cgi-bin ist, Sie aber CGI-Skripten im Verzeichnis /home/mein_cgi_verzeichnis ausführen möchten, können Sie in Ihrer Datei httpd.conf eine ExecCGI-Anweisung mit einem Satz von Directory-Anweisungen hinzufügen:

<Directory /home/mein_cgi_verzeichnis>
    Options +ExecCGI
</Directory>

Um die Ausführung von CGI-Skripten in /home/my_cgi_directory zuzulassen, sind neben der Einstellung von ExecCGI noch einige zusätzliche Schritte nötig. Für die Anweisung AddHandler müssen die Kommentare entfernt werden, damit Dateien mit der Endung .cgi als CGI-Skripten erkannt werden können. Anleitungen zur Einstellung von AddHandler finden Sie in Abschnitt namens AddHandler. Die Zugriffsberechtigungen für CGI-Skripten und den gesamten Pfad zu den Skripten müssen auf 0755 eingestellt sein. Schließlich müssen der Eigentümer des Skripts und der Eigentümer des Verzeichnisses derselbe Benutzer sein.

Location

<Location>- und </Location>-Tags ermöglichen die Angabe von Zugangsberechtigungen auf URL-Basis.

Eine Möglichkeit, Location-Tags zu verwenden, ist die Konfiguration von Options und die Bereitstellung weiterer Konfigurationsrichtlinien für DocumentRoot. Diese Konfigurationsanweisungen werden innerhalb der Tags <Location "/"> und </Location> angegeben und sind erforderlich, um den Zugriff auf die Dokumente in DocumentRoot zu ermöglichen.

Eine weitere Möglichkeit, Location-Tags zu verwenden, ist die Angabe in IfModule mod_perl.c-Tags. Diese Konfigurationsanweisungen sind aktiv, wenn das DSO mod_perl.so geladen ist. Weitere Informationen zum Hinzufügen von Modulen zu Apache finden Sie in Abschnitt namens Hinzufügen von Modulen zu Ihrem Server.

In den Location-Tags wird das Verzeichnis /var/www/perl (ein Alias für /perl) als das Verzeichnis angegeben, von dem Perl-Skripten bereitgestellt werden. Wenn ein Dokument mit einer URL mit /perl im Pfad angefordert wird, sucht der Web-Server in /var/www/perl/ nach dem entsprechenden Perl-Skript.

Mehrere andere <Location>-Optionen in der Datei httpd.conf sind auskommentiert. Wenn Sie deren Funktionen nutzen wollen, müssen Sie für den entsprechenden Anweisungsabschnitt die Kommentare entfernen.

Direkt nach den gerade besprochenen Perl-Anweisungen folgt in der Datei httpd.conf ein Abschnitt mit Anweisungen zur Aktivierung von HTTP PUT (z.B. für die Publizieren-Funktion von Netscape Gold, über die Web-Seiten auf einem Web-Server veröffentlicht werden können). Wenn Sie HTTP PUT zulassen möchten, müssen Sie für diesen gesamten Abschnitt die Kommentare entfernen:

#LoadModule put_module          modules/mod_put.so
#AddModule mod_put.c
#
#Alias /upload /tmp
#<Location /upload>
#    EnablePut On
#    AuthType Basic
#    AuthName Temporary
#    AuthUserFile /etc/httpd/conf/passwd
#    EnableDelete Off
#    umask 007
#    <Limit PUT>
#       require valid-user
#    </Limit>
#</Location>

Wenn Sie zulassen möchten, dass Benutzer von Ihrer Domäne aus Serverstatusberichte einsehen können, sollten Sie für den nächsten Abschnitt mit Anweisungen die Kommentare entfernen:

#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .ihre_domäne.com
#</Location>
	

Dabei muss .ihre_domäne.com durch den Namen Ihrer Second Level-Domäne ersetzt werden.

Wenn Sie Serverkonfigurationsberichte (einschließlich installierter Module und Konfigurationsanweisungen) für Anforderungen aus Ihrer Domäne bereitstellen möchten, müssen für die folgenden Zeilen die Kommentare entfernt werden:

#<Location /server-info>
#    SetHandler server-info
#    Order deny,allow
#    Deny from all
#    Allow from .your_domain.com
#</Location>
	

Auch hier muss .your_domain.com entsprechend angegeben werden.

Im nächsten Abschnitt mit Anweisungen werden Location-Tags verwendet, um den Zugriff auf die Dokumentation in /usr/share/doc zu erlauben (z.B. mit einer URL wie http://ihre_domäne/doc/beliebig.html). Diese Anweisungen erlauben nur Anforderungen vom lokalen Rechner den Zugriff.

Eine weitere Möglichkeit, Location-Tags zu verwenden, ist ein auskommentierter Abschnitt, der Angriffe auf Ihren Web-Server aufspüren soll, die einen alten Bug aus der Zeit vor Apache 1.1 ausnutzen. Wenn Sie diese Anforderungen verfolgen wollen, entfernen Sie die Kommentare für die folgenden Zeilen:

#<Location /cgi-bin/phf*>
#    Deny from all
#    ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>

Wenn für diese Zeilen die Kommentare entfernt werden, leitet Ihr Web-Server alle Anfragen, die mit /cgi-bin/phf* enden, zu einem CGI-Protokollierungsskript um, das von der Apache Group ausgeführt wird.

Options

Die Anweisung Options bestimmt, welche Serverfunktionen in einem bestimmten Verzeichnis verfügbar sind. Zum Beispiel ist für Options entsprechend den restriktiven Parametern für das Root-Verzeichnis lediglich FollowSymLinks angegeben. Es sind keine Funktionen aktiviert, außer dass der Server im Root-Verzeichnis symbolischen Links folgen darf.

In Ihrem Verzeichnis DocumentRoot ist Options so konfiguriert, dass Indexes, Includes und FollowSymLinks enthalten sind. Indexes erlaubt dem Server, eine Verzeichnisliste für ein Verzeichnis zu erstellen, wenn kein DirectoryIndex (d.h. index.html usw.) angegeben wird. Includes bedeutet, dass Server-Side Includes erlaubt sind. FollowSymLinks erlaubt dem Server, in diesem Verzeichnis symbolischen Links zu folgen.

Zusätzlich müssen innerhalb von Anweisungen für virtuelle Rechner Options-Anweisungen enthalten sein, damit Ihre virtuellen Rechner diese Options erkennen können.

Zum Beispiel sind serverseitige Includes innerhalb des Verzeichnisses /var/www/html bereits aktiviert, weil im Anweisungsabschnitt Location "/" die Zeile Options Includes enthalten ist. Wenn Sie jedoch erreichen möchten, dass ein virtueller Rechner erkennt, dass serverseitige Includes innerhalb von /var/www/html erlaubt sind, muss ein Abschnitt wie der folgende innerhalb der Tags für den virtuellen Rechner hinzugefügt werden:

<Directory /var/www/html>
Options Includes
</Directory>

AllowOverride

Die Anweisung AllowOverride bestimmt, ob Options durch Deklarationen in einer .htaccess-Datei überschrieben werden können. Standardmäßig sind sowohl das Root-Verzeichnis als auch DocumentRoot so konfiguriert, dass ein Überschreiben durch .htaccess nicht möglich ist.

Order

Die Anweisung Order bestimmt die Reihenfolge, in der die Anweisungen allow und deny ausgewertet werden. Der Server ist so konfiguriert, dass für Ihr DocumentRoot-Verzeichnis die Allow-Anweisungen vor den deny-Anweisungen ausgewertet werden.

Allow

Allow gibt an, welcher Anforderer auf ein bestimmtes Verzeichnis zugreifen darf. Der Anforderer kann sein: all, ein Domänenname, eine IP-Adresse, ein Teil einer IP-Adresse, ein Netzwerk/Netzmasken-Paar usw. Ihr DocumentRoot-Verzeichnis ist so konfiguriert, dass durch Allow Anforderungen von all (d.h. allen Anforderern) erlaubt sind.

deny

Deny funktioniert genauso wie allow, wobei angegeben wird, wem der Zugriff nicht erlaubt ist. In Ihrer DocumentRoot sind keine deny-Anweisungen enthalten.

UserDir

UserDir ist der Name des Unterverzeichnisses innerhalb eines Home-Verzeichnisses jedes Benutzers, wo private HTML-Seiten abgelegt werden können, die vom Web-Server bereitgestellt werden sollen. Die Standardeinstellung für das Unterverzeichnis ist public_html. Zum Beispiel könnte der Server die folgende Anforderung erhalten:

http://ihre_domäne/~benutzername/foo.html
	

Der Server sucht daraufhin die Datei:

/home/benutzername/public_html/foo.html
	

Im obigen Beispiel ist /home/username das Home-Verzeichnis des Benutzers. (Beachten Sie bitte, dass der Standardpfad zu den Home-Verzeichnissen von Benutzern auf Ihrem System abweichen kann.)

Überprüfen Sie, ob die Zugriffsberechtigungen für die Home-Verzeichnisse der Benutzer richtig eingestellt sind. Die richtige Einstellung ist 0755. Für die public_html-Verzeichnisse der Benutzer müssen die read (r)- und execute (x)-Bits eingestellt sein (0755 ist ausreichend). Dateien, die im public_html-Verzeichnis der Benutzer zum Abruf angeboten werden, müssen mindestens die Berechtigung 0644 haben.

DirectoryIndex

Der DirectoryIndex ist die Standardseite, die vom Server geliefert wird, wenn ein Benutzer durch Angabe von / am Ende eines Verzeichnisnamens einen Index eines Verzeichnisses anfordert.

Wenn ein Benutzer zum Beispiel die Seite http://ihre_domäne/dieses_verzeichnis/ anfordert, wird entweder die DirectoryIndex -Seite (falls vorhanden) oder eine vom Server erstellte Verzeichnisliste angezeigt. Die Standardeinstellung für den DirectoryIndex ist index.html index.htm index.shtml index.cgi. Der Server sucht nach diesen Dateien und gibt die Datei aus, die zuerst gefunden wird. Wenn keine dieser Dateien gefunden wird und Options Indexes für dieses Verzeichnis aktiviert ist, erstellt und überträgt der Server eine Liste im HTML-Format, die die Unterverzeichnisse und Dateien im Verzeichnis enthält.

AccessFileName

AccessFileName bestimmt die Datei, die vom Server zur Speicherung von Zugriffskontrollinformationen in jedem Verzeichnis verwendet werden soll. Standardmäßig ist Ihr Web-Server so konfiguriert, dass für die Speicherung von Zugriffskontrollinformationen die Datei .htaccess verwendet wird (falls vorhanden).

Unmittelbar nach der Anweisung AccessFileName wird durch eine Reihe von Files-Tags die Zugangskontrolle zu allen Dateien geregelt, die mit .ht beginnen. Diese Anweisungen verwehren aus Sicherheitsgründen den Zugriff auf alle .htaccess-Dateien (bzw. andere Dateien, die mit .ht beginnen).

CacheNegotiatedDocs

Standardmäßig fordert Ihr Red Hat Linux Secure Web Server Proxyserver auf, keine Dokumente im Cache zu halten, die auf der Grundlage des Inhalts übertragen wurden (d.h. sie können nach einer gewissen Zeit oder aufgrund der Eingabe des Anforderers geändert werden). Wenn die Kommentare für CacheNegotiatedDocs entfernt werden, wird diese Funktion deaktiviert, und Proxyserver können von diesem Zeitpunkt an Dokumente im Cache halten.

UseCanonicalName

UseCanonicalName ist standardmäßig auf on eingestellt. UseCanonicalName ermöglicht dem Server, mit ServerName und Port eine URL zu erstellen, die den Server selbst referenziert. Der Server verwendet diese URL, wenn er sich aufgrund von Anforderungen selbst referenziert. Wenn UseCanonicalName auf off eingestellt wird, verwendet der Server stattdessen den Wert, der in der Anforderung des Clients enthalten ist, um sich selbst zu referenzieren.

TypesConfig

TypesConfig gibt die Datei an, die die Standardliste der MIME Type-Zuordnungen definiert (Dateinamenerweiterungen für Inhaltstypen). Die Standarddatei für TypesConfig ist /etc/mime.types. Es wird empfohlen, zum Hinzufügen von MIME Type-Zuordnungen die Datei /etc/mime.types nicht zu editieren, sondern die Anweisung AddType zu verwenden.

DefaultType

DefaultType definiert einen Standardinhaltstyp, den der Web-Server für Dokumente verwendet, deren MIME Types nicht bestimmt werden können. Die Standardeinstellung für Ihren Web-Server ist, dass bei Dateien mit einem nicht genau zu bestimmenden Inhaltstyp ein Standardtext-Inhaltstyp angenommen wird.

IfModule

<IfModule> und </IfModule>-Tags umschließen Anweisungen, die Bedingungen enthalten. Die in den IfModule-Tags enthaltenen Anweisungen werden verarbeitet, wenn eine der zwei folgenden Bedingungen erfüllt ist. Die Anweisungen werden verarbeitet, wenn das im ersten <IfModule>-Tag enthaltene Modul in den Apache Server einkompiliert ist. Wenn ein "!" (Ausrufezeichen) vor dem Modulnamen steht, werden sie nur verarbeitet, wenn das Modul im ersten <IfModule>-Tag nicht einkompiliert ist.

Die Datei mod_mime_magic.c ist in diesen IfModule-Tags enthalten. Das Modul mod_mime_magic ist mit dem file-Befehl in UNIX vergleichbar, der einige Bytes des Inhalts einer Datei untersucht und "Magic Numbers" sowie weitere Hinweise verwendet, um den MIME Type der Datei zu bestimmen.

Wenn das Modul mod_mime_magic in Apache einkompiliert ist, wird dem Modul mod_mime_magic über diese IfModule-Tags mitgeteilt, wo sich die Hinweisdatei befindet: share/magic in diesem Fall.

Das Modul mod_mime_magic ist nicht standardmäßig einkompiliert. Wenn Sie das Modul verwenden möchten, finden Sie in Abschnitt namens Hinzufügen von Modulen zu Ihrem Server Hinweise zum Hinzufügen von Modulen zu Ihrem Server.

HostnameLookups

HostnameLookups kann auf on oder off eingestellt werden. Wenn Sie HostnameLookups erlauben (durch Einstellung auf on), wird vom Server die IP-Adresse für jede Verbindung, die ein Dokument von Ihrem Web-Server anfordert, automatisch aufgelöst. Die Auflösung der IP-Adresse bedeutet, dass Ihr Server mindestens eine Verbindung zum DNS herstellt, um den zu einer IP-Adresse gehörenden Rechnernamen zu bestimmen.

Im Allgemeinen sollten Sie die Einstellung für HostnameLookups auf off belassen, da die DNS-Anforderungen Ihren Server zusätzlich belasten und ihn unter Umständen langsamer machen. Wenn Ihr Server ausgelastet ist, kann die Wirkung der Einstellung von HostnameLookups ziemlich deutlich spürbar sein.

HostnameLookups ist auch für das Internet insgesamt von Bedeutung. Die einzelnen Verbindungen für das Heraussuchen des Rechnernamens addieren sich. Deshalb ist es sowohl für Ihren Server als auch für das Internet insgesamt von Vorteil, die Einstellung von HostnameLookups auf off zu belassen.

ErrorLog

ErrorLog bestimmt die Datei, in der Serverfehler protokolliert werden. Wie durch den Namen der Anweisung angedeutet, ist die Fehlerprotokolldatei für Ihren Web-Server /var/log/httpd/error_log.

Wenn Ihr Web-Server fehlerhaft oder überhaupt nicht arbeitet und Sie sich nicht sicher sind, warum dies auftritt, sollten Sie zuerst das Fehlerprotokoll überprüfen.

LogLevel

LogLevel legt fest, wie ausführlich die Fehlermeldungen im Fehlerprotokoll dargestellt werden. LogLevel kann auf emerg, alert, crit, error, warn, notice, info oder debug eingestellt werden (von der kürzesten bis zur ausführlichsten Darstellung). Das LogLevel für Ihren Red Hat Linux Secure Web Server ist auf warn eingestellt (eine gute Mitte).

LogFormat

Die LogFormat-Anweisungen in Ihrer httpd.conf-Datei legen ein Format für die Meldungen in Ihrem Zugriffsprotokoll fest. Dieses Format kann Ihr Zugriffsprotokoll hoffentlich besser lesbar machen.

CustomLog

CustomLog bestimmt die Protokolldatei und das Protokolldateiformat. In der Standardkonfiguration Ihres Red Hat Linux Secure Web Server bestimmt CustomLog die Protokolldatei, in der die Zugriffe auf Ihren Web-Server protokolliert werden: /var/log/httpd/access_log. Wenn Sie für Ihren Web-Server Server-Leistungsstatistiken auf der Basis der Zugriffe erstellen möchten, muss Ihnen bekannt sein, wo diese Datei abgelegt ist.

CustomLog stellt außerdem das Protokolldateiformat auf common ein. Das Protokolldateiformat common sieht folgendermaßen aus:

remotehost rfc931 authuser [date] "request" status bytes

remotehost

Enthält den Namen des Remote-Rechners. Wenn der Rechnername über DNS nicht verfügbar ist, oder wenn HostnameLookups auf Off eingestellt ist, ist remotehost die IP-Adresse des Remote-Rechners.

rfc931

Wird nicht verwendet. An dieser Stelle wird in der Protokolldatei - eingetragen.

authuser

Wenn eine Authentifizierung erforderlich war, hat der Benutzer diesen Namen angegeben. Normalerweise nicht verwendet. An dieser Stelle wird - eingetragen.

[date]

Das Datum und die Uhrzeit der Anforderung.

"request"

Die Request-Zeichenkette wie sie vom Browser oder Client gesendet wurde.

status

Der HTTP-Statuscode, der an den Browser oder Client zurückgegeben wurde.

bytes

Die Größe des Dokuments.

Der Befehl CustomLog kann dazu verwendet werden, spezielle Protokolldateien einzurichten, die Referer (die URL der Web-Seite, die auf eine Seite auf Ihrem Web-Server verzweigt hat) und/oder Agenten protokollieren (die Browser, die zum Abrufen der Webseiten von Ihrem Web-Server verwendet wurden). Die entsprechenden Zeilen in CustomLog sind auskommentiert, wie unten gezeigt. Sie sollten die Kommentare jedoch entfernen, wenn Sie diese zwei Protokolldateien aktivieren möchten:

#CustomLog /var/log/httpd/referer_log referer
#CustomLog /var/log/httpd/agent_log agent

Als Alternative können Sie die Anweisung CommonLog auch so konfigurieren, dass ein kombiniertes Protokoll erstellt wird, indem Sie den Kommentar für folgende Zeile entfernen:

#CustomLog /var/log/httpd/access_log combined

Bei einem kombinierten Protokoll werden die Felder für Referer und Agent an das Ende der gemeinsamen Protokollfelder angefügt. Wenn Sie ein kombiniertes Protokoll verwenden möchten, müssen Sie die Anweisung CustomLog auskommentieren, um Ihre Zugriffsprotokolldatei auf das gemeinsame Protokolldateiformat einzustellen.

ServerSignature

Die Anweisung ServerSignature fügt in alle vom Server erstellten Dokumente eine Zeile ein, die die Apache Serverversion und den ServerName des Rechners enthält, auf dem der Server ausgeführt wird (z.B. Fehlermeldungen, die an Clients zurückgesendet werden). ServerSignature ist standardmäßig auf on eingestellt. Sie können die Einstellung auf off (es wird keine Zeile eingefügt) oder auf EMail ändern. EMail fügt ein HTML-Tag mailto:ServerAdmin in die Signaturzeile ein.

Alias

Die Alias-Einstellung macht es möglich, dass Verzeichnisse außerhalb des DocumentRoot-Verzeichnisses liegen können und doch vom Web-Server darauf zugegriffen werden kann. Jede URL, die mit dem Alias endet, verzweigt automatisch zum Aliaspfad. Als Standardeinstellung ist bereits ein Alias eingerichtet. Auf das Verzeichnis icons kann vom Web-Server zugegriffen werden, liegt jedoch nicht in DocumentRoot. Das Verzeichnis icons ist ein Alias, es handelt sich dabei in Wirklichkeit um /var/www/icons/ und nicht um /var/www/html/icons/.

ScriptAlias

Die ScriptAlias-Einstellung legt fest, wo CGI-Skripte (oder andere Skriptarten) abgelegt sind. Im Allgemeinen sollten CGI-Skripte nicht in DocumentRoot abgelegt werden. In DocumentRoot abgelegte CGI-Skripten könnten wie Textdokumente gelesen werden. Auch wenn Sie nichts dagegen haben, dass andere Ihre CGI-Skripten lesen (und weiterverwenden), könnte die Offenlegung ihrer Funktion von Benutzern mit krimineller Energie zur Ausnutzung von Sicherheitslücken im Skript genutzt werden. Dies kann somit ein Sicherheitsrisiko für Ihren Server darstellen. Standardmäßig ist das Verzeichnis cgi-bin ein ScriptAlias von /cgi-bin/ und in Wirklichkeit das Verzeichnis /var/www/cgi-bin/.

Für Ihr Verzeichnis /var/www/cgi-bin ist Options ExecCGI aktiviert, d.h. die Ausführung von CGI-Skripten ist innerhalb dieses Verzeichnisses erlaubt.

Hinweise zum Ausführen von CGI-Skripten in anderen Verzeichnissen als cgi-bin finden Sie in Abschnitt namens AddHandler und Abschnitt namens Directory.

Redirect

Wenn eine Web-Seite verschoben wird, kann mit Redirect die Zuordnung der alten URL auf eine neue URL erfolgen. Hier das Format:

Redirect /pfad/foo.html http://neue_domäne/pfad/foo.html

Wenn also eine HTTP-Anforderung für eine Seite empfangen wird, die früher unter http://ihre_domäne /path/foo.html abgerufen werden konnte, sendet der Server die neue URL (http://new_domain /path/foo.html) an den Client, der dann im Normalfall versucht, das Dokument von der neuen URL abzurufen.

IndexOptions

IndexOptions bestimmt das Erscheinungsbild der vom Server erstellten Verzeichnislisten durch das Hinzufügen von Symbolen und Dateibeschreibungen usw. Wenn Options Indexes aktiviert ist (siehe Abschnitt namens Options), kann Ihr Web-Server eine Verzeichnisliste erstellen, wenn er eine HTTP-Anforderung wie die Folgende empfängt:

http://ihre_domäne/dieses_verzeichnis/

Als Erstes sucht Ihr Web-Server in diesem Verzeichnis nach einer Datei aus der Liste, die nach der DirectoryIndex-Anweisung angegeben ist (z.B. index.html). Wenn er keine der Dateien finden kann, wird eine HTML-Verzeichnisliste der in dem Verzeichnis enthaltenen Unterverzeichnisse und Dateien erstellt. Mit bestimmten Anweisungen (z.B. mit IndexOptions) können Sie in httpd.conf das Erscheinungsbild dieser Verzeichnisliste anpassen.

In der Standardkonfiguration ist FancyIndexing aktiviert. Wenn FancyIndexing aktiviert ist, werden durch Klicken auf die Überschrift der Spalte in der Verzeichnisliste die Einträge entsprechend dieser Spalte sortiert. Ein weiterer Klick auf dieselbe Überschrift schaltet von aufsteigender zu absteigender Reihenfolge um und umgekehrt. FancyIndexing zeigt außerdem je nach Dateiendung verschiedene Symbole für verschiedene Dateien an. Bei Verwendung der Anweisung AddDescription und aktiviertem FancyIndexing wird in der vom Server erstellten Verzeichnisliste eine kurze Dateibeschreibung angegeben.

IndexOptions hat eine Reihe von weiteren Parametern, die zur Festlegung des Erscheinungsbilds der vom Server erstellten Verzeichnisse verwendet werden können. Zu diesen Parametern gehören IconHeight und IconWidth, durch die der Server angewiesen wird, die HTML-Tags HEIGHT und WIDTH für die Symbole in vom Server erstellten Web-Seiten zu verwenden, sowie IconsAreLinks, durch die die Symbole zusammen mit dem Dateinamen als Teil des HTML-Ankers für den Link verwendet werden können.

AddIconByEncoding

Diese Anweisung bestimmt die Symbole, die in vom Server erstellten Verzeichnislisten für Dateien mit MIME-Encoding angezeigt werden. Zum Beispiel verwendet der Web-Server in vom Server erstellten Verzeichnislisten standardmäßig für MIME-codierte x-compress- und x-gzip-Dateien das Symbol compressed.gif.

AddIconByType

In dieser Anweisung werden Symbole angegeben, die in vom Server erstellten Verzeichnislisten für Dateien mit MIME-Types angezeigt werden. Ihr Server ist zum Beispiel so konfiguriert, dass in vom Server erstellten Verzeichnislisten für Dateien mit dem Mime-Type "text" das Symbol text.gif angezeigt wird.

AddIcon

AddIcon gibt an, welche Symbole in vom Server erstellten Verzeichnislisten für bestimmte Dateitypen bzw. für Dateien mit bestimmten Erweiterungen anzuzeigen sind. Zum Beispiel ist Ihr Web-Server so konfiguriert, dass das Symbol binary.gif für Dateien mit der Erweiterung .bin oder .exe verwendet wird.

DefaultIcon

DefaultIcon bestimmt das Symbol, das in vom Server erstellten Verzeichnislisten für Dateien angezeigt wird, für die kein anderes Symbol angegeben ist. unknown.gif ist für diese Dateien standardmäßig DefaultIcon.

AddDescription

Mit AddDescription können Sie in vom Server erstellten Listen für bestimmte Dateien von Ihnen eingegebenen Text anzeigen lassen (dazu muss außerdem FancyIndexing in IndexOptions aktiviert sein). Sie können bestimmte Dateien, Platzhalterausdrücke oder Dateiendungen für die Dateien angeben, auf die diese Anweisung angewendet werden soll. Sie könnten zum Beispiel die folgende Zeile angeben:

AddDescription "Eine Datei mit der Endung .ni" .ni
	

In vom Server erstellten Verzeichnislisten hätten dann alle Dateien mit der Endung .ni die Beschreibung Eine Datei mit der Endung .ni nach dem Dateinamen. Beachten Sie, dass zusätzlich FancyIndexing aktiviert sein muss.

ReadmeName

ReadmeName bestimmt die Datei, die an das Ende der vom Server erstellten Verzeichnisliste angehängt wird (falls die Datei im Verzeichnis vorhanden ist). Der Web-Server versucht zuerst, die Datei als HTML-Dokument anzuhängen, dann als Standardtextdatei. Standardmäßig ist ReadmeName auf README eingestellt.

HeaderName

HeaderName bestimmt die Datei, die am Beginn der vom Server erstellten Verzeichnislisten eingefügt wird (falls die Datei im Verzeichnis vorhanden ist). Wie bei ReadmeName versucht der Server, die Datei nach Möglichkeit als HTML-Datei anzuhängen, sonst als einfachen Text.

IndexIgnore

IndexIgnore kann Dateiendungen, Teile von Dateinamen, Platzhalterausdrücke oder vollständige Dateinamen enthalten. Der Web-Server nimmt Dateien, die diesen Parametern entsprechen, nicht mit in vom Server erstellte Verzeichnislisten auf.

AddEncoding

AddEncoding bestimmt, welche Dateinamenerweiterungen eine spezielle Codierungsart angeben sollen. AddEncoding kann auch bei manchen Browsern (nicht bei allen) dazu verwendet werden, bestimmte Dateien beim Download zu entpacken.

AddLanguage

AddLanguage verknüpft Dateinamenserweiterungen mit der speziellen Sprache, in der der Inhalt abgefasst ist. Diese Anweisung ist hauptsächlich für den Inhaltsabgleich nützlich, wenn der Server je nach Spracheinstellung im Browser des Clients eines von mehreren möglichen Dokumenten zurückliefert.

LanguagePriority

LanguagePriority ermöglicht die Einstellung, in welchen Sprachen Dateien geliefert werden sollen, falls vom Client keine Angabe zur Sprache vorliegt.

AddType

Mit der Anweisung AddType können Sie paarweise Zuordnungen aus MIME-Types und Dateierweiterungen definieren. Wenn Sie zum Beispiel PHP4 einsetzen, verwendet Ihr Web-Server die Anweisung AddType, um Dateien mit PHP-Endungen (.php4, .php3 .phtml .php) als PHP MIME-Types erkennen zu können.

Die folgende AddType-Zeile weist Ihren Server an, die Dateierweiterung .shtml zu erkennen (für serverseitige Includes):

AddType text/html .shtml

Diese Zeile muss innerhalb der Virtual Host-Tags stehen, wenn bei Ihnen virtuelle Rechner serverseitige Includes erlauben.

AddHandler

AddHandler ordnet Dateierweiterungen speziellen Handlern zu. Der cgi-script-Handler kann zum Beispiel in Kombination mit der Erweiterung .cgi verwendet werden, um eine Datei mit der Endung .cgi als CGI-Skript zu behandeln. Das funktioniert auch für Dateien, die außerhalb des ScriptAlias-Verzeichnisses liegen, wenn Sie die hier angegebenen Hinweise beachten.

Ihre Datei httpd.conf enthält einen AddHandler für CGI:

AddHandler cgi-script .cgi

Die Kommentare für diese Zeile müssen entfernt werden. Apache führt dann CGI-Skripten für Dateien aus, die mit .cgi enden, auch wenn sie außerhalb von ScriptAlias liegen. Als Standardeinstellung wird Ihr Verzeichnis /cgi-bin/ in /var/www/cgi-bin/ gesucht.

Zusätzlich muss ExecCGI als Options für alle Verzeichnisse eingestellt werden, die ein CGI-Skript enthalten. Weitere Informationen zum Einstellen von ExecCGI für ein Verzeichnis finden Sie in Abschnitt namens Directory. Überprüfen Sie außerdem, ob die Zugriffsberechtigungen für die CGI-Skripten und die Verzeichnisse, die CGI-Skripten enthalten, richtig gesetzt sind. CGI-Skripten und der gesamte Verzeichnispfad zu den Skripten müssen die Berechtigung 0755 haben. Schließlich müssen der Eigentümer des Verzeichnisses und der Eigentümer der Skriptdatei derselbe Benutzer sein.

Dieselbe AddHandler-Zeile muss in VirtualHost eingefügt werden, wenn Sie virtuelle Rechner verwenden und diese auch CGI-Skripten außerhalb von ScriptAlias erkennen können sollen.

AddHandler wird vom Server neben CGI-Skripten auch für die Verarbeitung der vom Server verarbeiteten HTML- und Imagemap-Dateien verwendet.

Action

Action ermöglicht die Angabe einer Paarung aus MIME-Inhaltstyp und CGI-Skript, damit ein spezielles CGI-Skript immer dann ausgeführt wird, wenn eine Datei dieses Medientyps angefordert wird.

MetaDir

MetaDir gibt den Namen eines Verzeichnisses an, in dem Ihr Web-Server nach Dateien suchen soll, die Metainformationen enthalten (zusätzliche HTTP-Header), die bei der Bereitstellung von Dokumenten mit einzubeziehen sind.

MetaSuffix

MetaSuffix gibt das Dateinamensuffix für die Datei an, die die Metainformationen enthält (zusätzliche HTTP-Header), die im Verzeichnis MetaDir abgelegt sein sollten.

ErrorDocument

Standardmäßig gibt Ihr Web-Server bei einem Problem oder Fehler eine einfache (und meist kryptische) Fehlermeldung an den anfordernden Client zurück. Statt der Standardeinstellung können Sie ErrorDocument zur Konfiguration Ihres Web-Servers verwenden, so dass der Server eine von Ihnen angepasste Meldung ausgibt oder den Client zu einer lokalen oder externen URL umleitet. ErrorDocument verknüpft einfach einen HTTP-Antwortcode mit einer Meldung oder einer URL, die zum Client zurückgesendet wird.

BrowserMatch

Die Anweisung BrowserMatch ermöglicht es Ihrem Server, Umgebungsvariablen zu definieren und/oder auf Grundlage des User-Agent HTTP-Header-Felds (gibt den Browser des Clients an) in geeigneter Weise zu reagieren. Standardmäßig verwendet Ihr Web-Server BrowserMatch, um keine Verbindungen mit Browsern zuzulassen, die Probleme bereiten, und zum Deaktivieren von Keepalives und HTTP-Header-Löschbefehlen für Browser, von denen bekannt ist, dass sie Probleme mit diesen Aktionen haben.

ProxyRequests

Wenn Sie die Kommentare für die IfModule-Tags entfernen, die ProxyRequests und andere Anweisungen einschließen, arbeitet Ihr Apache Server auch als Proxyserver. Zusätzlich müssen Sie das Modul mod_proxy laden. Hinweise zum Laden von Modulen finden Sie in Abschnitt namens Hinzufügen von Modulen zu Ihrem Server.

ProxyVia

Der Befehl ProxyVia legt für eine HTTP Via:-Zeile fest, ob diese zusammen mit Anforderungen oder Antworten gesendet wird, die über den Apache Proxyserver laufen. Der Header Via: enthält den Rechnernamen, wenn ProxyVia auf On eingestellt ist, den Rechnernamen und die Apache Version bei Einstellung auf Full, alle Via:-Zeilen werden unverändert weitergegeben bei Einstellung auf Off und die Via:-Zeilen werden entfernt bei Einstellung auf Block.

Cache Directives

Eine Reihe von Cache-Anweisungen sind in den oben genannten Proxy- IfModule-Tags auskommentiert. Wenn Sie die Proxyserver-Funktion nutzen und auch den Proxy-Cache aktivieren möchten, sollten Sie wie beschrieben die Kommentare für die Cache-Anweisungen entfernen. Die Standardeinstellungen für Ihre Cache-Anweisungen sollten für die meisten Konfigurationen ausreichen.

CacheRoot bestimmt den Namen des Verzeichnisses, in dem die zwischengespeicherten Dateien abgelegt werden. Die Standard- CacheRoot ist /var/cache/httpd.

CacheSize bestimmt, wie viel Speicherplatz in KB für den Cache zur Verfügung gestellt wird. Der Standardwert für CacheSize ist 5 KB.

CacheGcInterval legt eine Anzahl von Stunden fest, nach der im Cache enthaltene Dateien gelöscht werden, wenn der Cache mehr Platz beansprucht als durch CacheSize erlaubt. Die Standardeinstellung für CacheGcInterval ist vier Stunden.

Im Cache gespeicherte HTML-Dokumente werden für eine maximale Anzahl von Stunden im Cache gehalten (ohne Neuladen vom Ursprungsserver), die durch CacheMaxExpire eingestellt wird. Der Standardwert ist 24 Stunden.

Der CacheLastModifiedFactor betrifft die Erzeugung eines Ablaufdatums (expiration) für ein Dokument, das vom Ursprungsserver nicht mit einem eigenen Ablaufdatum versehen wurde. Der Standard-CacheLastModifiedFactor ist auf 0.1 eingestellt, d.h. das Ablaufdatum für solche Dokumente entspricht einem Zehntel der Zeit, die vergangen ist, seitdem das Dokument zuletzt geändert wurde.

CacheDefaultExpire ist die Ablaufzeit in Stunden für ein Dokument, das über ein Protokoll empfangen wurde, das keine Ablaufzeiten unterstützt. Die Standardeinstellung ist eine Stunde.

Dokumente, die von einem Rechner und/oder einer Domäne abgerufen werden, die mit einem Eintrag in NoCache übereinstimmen, werden nicht im Cache gespeichert. Wenn Sie die Dokumente von bestimmten Rechnern oder Domänen nicht im Cache speichern möchten, können Sie die Kommentare für NoCache entfernen und die entsprechenden Domänen oder Rechnernamen hier angeben.

NameVirtualHost

Wenn Sie namensbasierte virtuelle Rechner einrichten, müssen Sie die Anweisung NameVirtualHost für die IP-Adresse verwenden (und die Portnummer, falls erforderlich). Die Konfiguration von namensbasierten virtuellen Rechnern wird verwendet, wenn Sie verschiedene virtuelle Rechner für verschiedene Domänen einrichten möchten, aber nicht genügend verschiedene IP-Adressen für die verschiedenen Domänennamen haben (oder verwenden möchten), für die Ihr Web-Server Dokumente bereitstellt.

AnmerkungBitte beachten
 

Namensbasierte virtuelle Rechner können nicht gemeinsam mit dem sicheren Server verwendet werden. Alle eingerichteten namensbasierten virtuellen Rechner funktionieren nur für unverschlüsselte HTTP-Verbindungen, nicht für SSL-Verbindungen.

Namensbasierte virtuelle Rechner können nicht zusammen mit dem sicheren Server verwendet werden, weil der SSL-Handshake (der Zeitpunkt, wenn der Browser das Authentifizierungszertifikat des sicheren Web-Servers annimmt) vor der HTTP-Anforderung stattfindet, die den richtigen namensbasierten virtuellen Rechner identifiziert. Anders ausgedrückt, die Authentifizierung findet statt, bevor die Identifikation der verschiedenen namensbasierten virtuellen Rechner stattfindet. Virtuelle Rechner müssen IP-Adressen-basiert sein, um sie gemeinsam mit dem sicheren Server verwenden zu können.

Wenn Sie namensbasierte virtuelle Rechner verwenden, sind für die Konfigurationsanweisung NameVirtualHoHallst die Kommentare zu entfernen, und nach NameVirtualHost ist die richtige IP-Adresse für Ihren Server anzugeben. Anschließend sind mit Virtual Host-Tags weitere Informationen zu den verschiedenen Domänen hinzuzufügen, die ServerName für jeden virtuellen Rechner sowie weitere Konfigurationsanweisungen einschließen, die nur für diesen virtuellen Rechner gelten.

VirtualHost

<VirtualHost>- und </VirtualHost>-Tags umschließen alle Konfigurationsanweisungen, die für einen virtuellen Rechner gelten. Die meisten Konfigurationsanweisungen können innerhalb von VirtualHost-Tags verwendet werden und gelten dann für diesen virtuellen Rechner.

Eine Reihe von auskommentierten VirtualHost-Tags umschließen einige Beispielkonfigurationsanweisungen und Platzhalter für die Informationen, die für die Einrichtung eines virtuellen Rechners benötigt würden. Weitere Informationen über virtuelle Rechner finden Sie in Abschnitt namens Virtuelle Rechner verwenden.

SetEnvIf

Die Apache Konfigurationsanweisung SetEnvIf wird zur Deaktivierung von HTTP-Keepalive verwendet und ermöglicht SSL das Schließen der Verbindung, ohne dass ein Close Notify-Alarm vom Client-Browser gesendet wird. Diese Einstellung ist für bestimmte Browser erforderlich, die die SSL-Verbindung nicht zuverlässig beenden.

SSL-Konfigurationsanweisungen

Die SSL-Anweisungen sind in der Datei httpd.conf Ihres Servers enthalten, um sichere Web-Kommunikationen mit SSL und TLS zu ermöglichen.

Weitere Informationen zu SSL-Anweisungen finden Sie unter http://ihre_domäne/manual/mod/mod_ssl/. Weitere Informationen zu SSL-Anweisungen finden Sie außerdem unter http://www.modssl.org/docs/2.6/ssl_reference.html/. Es handelt sich dabei um ein Kapitel in einem Webdokument über mod_ssl von Ralf Engelschall. Dasselbe Dokument, das mod_ssl User Manual, beginnt unter http://www.modssl.org/docs/2.6/ und ist (selbstverständlich) eine gute Referenzquelle für mod_ssl und für Web-Kryptographie im Allgemeinen. Informationen zum Thema Sicherheit für Ihren Web-Server finden Sie im vorliegenden Handbuch in Kapitel 11.

AnmerkungBitte beachten
 

Nehmen Sie keine Veränderungen an Ihren SSL-Anweisungen vor, es sei denn, Sie wissen genau, was Sie tun. Für die große Mehrheit der Red Hat Linux Secure Web Server sind die SSL-Anweisungen in der installierten Form völlig ausreichend.