Verschiedene Funktionen in IBM® HTTP Server for z/OS Version 5.3 sind auch in IBM HTTP Server verfügbar, werden jedoch anders implementiert. Machen Sie sich mit den wichtigsten Unterschieden in der Basiskonfiguration der beiden Web-Server vertraut.
Die Abschnitte und Kapitel entsprechen den Abschnitten und Kapiteln des Handbuchs z/OS HTTP Server Planning, Install, and Using (IBM Form SC34-4826-09) für IBM HTTP Server for z/OS Version 5.3.
IBM HTTP Server kann statische Dateien bereitstellen oder CGI-Scriptdateien ausführen. Diese Dateien können sich in Standardverzeichnissen oder in Verzeichnissen, die Sie angeben, befinden. Sie können verschiedene Anweisungen verwenden, um diese Dateien bereitzustellen. Im Abschnitt "Verzeichnis" können Sie die Anweisungen gruppieren und ihre Gültigkeit für ein bestimmtes Verzeichnis festlegen.
Statische Dateien befinden sich standardmäßig im Verzeichnis Installationsstammverzeichnis/htdocs. Sie können ein alternatives Verzeichnis für die Anweisung "Alias" angeben, um das alternative Verzeichnis einem Webadressenpräfix zuzuordnen. Dann können Sie einen Directory-Abschnitt, der auf das alternative Verzeichnis verweist, erstellen oder kopieren. Beispielsweise können Sie die Anweisung "Directory", die das Standardverzeichnis Installationsstammverzeichnis/htdocs angibt, kopieren und das Standardverzeichnis in das Verzeichnis Installationsstammverzeichnis/static ändern.
CGI-Scripts werden standardmäßig im Verzeichnis Installationsstammverzeichnis/cgi-bin/ ausgeführt. Sie können ein alternatives Verzeichnis für die Anweisung "ScriptAlias" angeben, um das alternative Verzeichnis einem Webadressenpräfix zuzuordnen. Dann können Sie einen Directory-Abschnitt, der auf das alternative Verzeichnis verweist, erstellen oder kopieren. Beispielsweise können Sie die Anweisung "Directory", die das Standardverzeichnis Installationsstammverzeichnis/cgi-bin angibt, kopieren und das Standardverzeichnis in das Verzeichnis Installationsstammverzeichnis/cgi2 ändern.
Weitere Informationen zu den Anweisungen finden Sie in der Dokumentation zu Apache HTTP Server.
Da die Anweisung "DirectoryIndex" in der Standarddatei httpd.conf auf index.html gesetzt ist, stellt IBM HTTP Server für Verzeichnisanforderungen die Verzeichnisindexdatei index.html bereit. Sie können mit der Anweisung "DirectoryIndex" andere Dateien angeben, die IBM HTTP Server bereitstellen soll. Sie können außerdem einem neuen oder vorhandenen Directory-Abschnitt die Anweisung "Options" mit dem Argument "Indexes" hinzufügen, damit der Web-Server Informationen für dieses Verzeichnis zurückgibt. Wenn Sie vor dem Argument "Indexes" ein + setzen, übernimmt der Abschnitt "Directory" Argumente, die für andere Options-Anweisungen gesetzt sind. Wenn weder die Anweisung "DirectoryIndex" noch die Anweisung "Options" gesetzt ist, gibt der Web-Server einen 403-Fehler zurück.
Weitere Informationen zu den Anweisungen finden Sie in der Dokumentation zu Apache HTTP Server.
Die Verwaltung von IBM HTTP Server kann nur durch Aktualisieren der über die EBCDIC-Konfigurationsdateien erfolgen.
Die Standardkonfigurationsdatei von IBM HTTP Server ist Installationsstammverzeichnis/conf/httpd.conf. Wenn Sie die voreingestellten Standardwerte überprüfen oder wiederherstellen möchten, finden Sie sie in der Datei Installationsstammverzeichnis/conf/httpd.conf.default.
Die Regierungen der Vereinigten Staaten und anderer Länder regulieren Produkte, die zur Verschlüsselung verwendet werden, und erlauben den Export dieser Produkte nur, wenn ihre Schlüssellänge strikt begrenzt ist. Exportgesetze und Importbestimmungen einzelner Länder ändern sich und mit ihnen auch die unterstützten Schlüssellängen und Verschlüsselungsspezifikationen.
IBM HTTP Server unterstützt die unter SSL-Verschlüsselungsspezifikationen aufgelisteten SSL-Verschlüsselungen.
Mit einer Hardwareverschlüsselung können Sie die Leistung von SSL-Sitzungen zwischen dem Client und dem Server verbessern. Der bei Weitem größte Leistungsgewinn für den Web-Server lässt sich jedoch durch den SSL-Handshake erzielen. Der Handshake verwendet asymmetrische Schlüssel und Funktionen. Der Web-Server verwendet RSA-Technologie, um die asymmetrische Funktionalität zu implementieren. Wenn Sie SSL ohne Hardwareverschlüsselung implementieren, sind die asymmetrischen Funktionen viel langsamer als symmetrische Funktionen. Daher sollten Sie, wenn Sie eine Hardwareverschlüsselung für den Web-Server implementieren, sicherstellen, dass Ihre asymmetrischen Masterschlüssel ordnungsgemäß konfiguriert sind. Verwenden Sie die Software Integrated Cryptographic Services Facility (ICSF), um von der Leistungsverbesserung profitieren zu können. Die asymmetrischen Masterschlüssel sind nicht mit den RSA-Schlüsseln des Web-Servers identisch.
DES-Verschlüsselungsspezifikationen (Data Encryption Standard) und Triple-DES-Verschlüsselungsspezifikationen verwenden symmetrische Schlüssel für die Datenübertragung. Die Datenübertragung kann in der Hardware schneller sein oder auch nicht. Ob die Datenübertragung in der Hardware oder in der Software schneller ist, ist davon abhängig, wie groß der Datenstrom ist. SSL sollte relativ kleine Datenströme senden, normalerweise 4 KB oder weniger. Kleine Datenströme sind tendenziell schneller in der Software. Mittelgroße Datenströme können sowohl in der Hardware als auch in der Software schneller sein. Sehr große Datenströme sind in der Hardware schneller.
Informationen zur Implementierung der Hardwareverschlüsselung finden Sie in den entsprechenden Handbüchern. Lesen Sie z. B. die Veröffentlichung z/OS Processor Resource/Systems Management Planning Guide im IBM Support Portal.. Nützlich sind auch die Veröffentlichungen z/OS Cryptographic Services ICSF Administrator's Guide und z/OS Cryptographic Services ICSF System Programmer's Guide, die unter z/OS Internet Library verfügbar sind.
Verwenden Sie den virtuellen SSL-Beispielhost in der Datei conf/httpd.conf.default, um Transport Layer Security (TLS) zu aktivieren. Das Beispiel enthält Elemente, die für das Aktivieren von TLS erforderlich sind, einschließlich einer Anweisung "Listen", der Anweisung "SSLEnable" und eines Moduls "mod_ibm_ssl".
Sie können die Anweisung "SSLCipherSpec" verwenden, um die Reihenfolge der Verschlüsselungsstufen zu steuern. IBM HTTP Server setzt die festgelegte Rangfolge immer durch. Lesen Sie im Artikel zu den SSL-Anweisungen die Informationen zur Anweisung "SSLCipherSpec".
In diesem Schritt müssen Sie selbst keine Aktion ausführen, da IBM HTTP Server die allgemeinen Module, die den Zugriff auf Ressourcen einschränken, standardmäßig lädt.
Schließen Sie die Konfigurationsanweisungen für Zugriffsschutz in Konfigurationsabschnitte ein. Lesen Sie die Informationen zu den entsprechenden Abschnitten in der Dokumentation zu Apache HTTP Server.
Verwenden Sie für Ressourcen im hierarchischen Dateisystem die Anweisungen <Directory> und <DirectoryMatch>, um Schutzanweisungen einzuschließen. Für andere Ressourcen, die sich nicht im hierarchischen Dateisystem befinden, z. B. diejenigen, die von Plug-ins bereitgestellt werden, verwenden Sie die Anweisungen <Location> und <LocationMatch>.
Sie können Kennwörter für IBM HTTP Server anhand von Benutzer- und Gruppenkennwortdateien überprüfen. Wenn Sie Kennwörter für IBM HTTP Server anhand des lokalen Systems überprüfen möchten, geben Sie die Anweisung AuthBasicProvider SAF an. Sie können die SAF-Benutzer-ID, unter der eine Anforderung bedient wird, mit der Anweisung "SAFRunAs" ändern.
Wenn Sie die SSL-Clientauthentifizierung auf der Basis eines virtuellen Hosts anfordern möchten, geben Sie die Anweisung SSLCLientAuth required an. Verwenden Sie die Anweisung "SSLClientAuthRequire", um Attributwerte oder Gruppen von Attributwerten anzugeben, die auf der Basis eines Clientzertifikats validiert werden müssen, bevor der Server den Zugriff auf die geschützte Ressource zulässt.
Verwenden Sie die folgenden Beispiele als Leitfaden bei der Erstellung Ihrer Zugriffsschutzkonfigurationen:
Alias /my-app /opt/my-app/htdocs
<Directory /opt/my-app/htdocs>
# Anforderungen zulassen, die mit den allow-Anweisungen übereinstimmen. Anschließend Anforderungen zurückweisen, die mit den deny-Anweisungen übereinstimmen.
# Anschließend Anforderungen zurückweisen, die nicht mit den allow- oder deny-Anweisungen übereinstimmen.
Order allow,deny
# Den Zugriff nur für diese Benutzer auf dem lokalen Host erlauben.
Allow from 127.0.0.1
</Directory>
<Directory /opt/my-app/htdocs/members-only>
Order allow,deny
Allow from 127.0.0.1
# HTTP-Basisauthentifizierung hinzufügen
AuthType Basic
AuthBasicProvider file
AuthName "Login with your example.com user ID."
# Dienstprogramm "htpasswd" in der Datei "<Installationsstammverzeichnis>/bin/htpasswd" zum Verwalten der Kennwörter verwenden
# Datei mit Benutzer-ID und Kennwort in einem anderen als dem zu schützenden Verzeichnis speichern
AuthUserFile /opt/my-app/users.passwd
Require valid-user
</Directory>
<Directory /opt/my-app/htdocs/admin>
...
Require user administrator
</Directory>
<Directory /opt/my-app/htdocs/admin>
...
# Textdatei mit mehreren Zeilen des Formats "Gruppenname: member1 member2..."
# Gruppendatei in einem anderen als dem zu schützenden Verzeichnis speichern
AuthzGroupFile /auth/groups
Require group admins
</Directory>
<Directory /opt/my-app/htdocs/admin>
...
Require group admins
Satisfy any
Order allow,deny
Allow from 127.0.0.1
</Directory>
Sie können die Anzahl der Dateien, auf die ein Benutzer zugreift, einschränken. Dazu müssen Sie die Anweisung <Files> oder <FilesMatch> innerhalb der Anweisung <Directory> oder <DirectoryMatch> verschachteln.
Der Zugriff darf nicht basierend auf einer Kombination aus einem Benutzernamen und einer Adresse, z. B. bob@192.168.1.1 und steve@192.168.2.2, erteilt werden, ohne dass Sie ein eigenes Apache-Modul für die Berechtigung schreiben.
Eine Gruppendatei in IBM HTTP Server ist lediglich eine Zuordnung eines Gruppennamens zu einer Benutzerliste. Sie kann keine verschachtelten Definitionen haben oder Adressspezifikationen enthalten.
IBM HTTP Server hat keinen Zugriff auf ACL-Dateien (Access Control List, Zugriffssteuerungsliste). Sie können Dateien mit der Erweiterung ".htaccess" verwenden, um den Zugriff auf Ressourcen zu beschränken. Falls Sie die Möglichkeit haben, die Datei httpd.conf zu aktualisieren, wird jedoch empfohlen, die Dateien mit der Erweiterung ".htaccess" nicht zu verwenden, weil sie die Serverleistung beeinträchtigen. Alternativ können Sie Anweisungen in eine <Directory>-Anweisung einschließen und alle Anweisungen in die Datei httpd.conf aufnehmen.