[z/OS]

IBM HTTP Server for z/OS Version 5.3: Teil 4 - Basiskonfiguration

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.

Dateien bereitstellen

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 "Directory" 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.

Verzeichnislisten bereitstellen

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 das 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.

Server konfigurieren

Die Verwaltung von IBM HTTP Server kann nur durch Aktualisieren der 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.

Zu sichernde Dateien

Sichern Sie die folgenden Dateien in regelmäßigen Abständen:
  • die Konfigurationsdatei, standardmäßig die Datei Installationsstammverzeichnis/conf/httpd.conf
  • die Umgebungsvariablendatei, die Datei Installationsstammverzeichnis/bin/envvars
  • SSL-Dateien (Secure Sockets Layer), z. B.:
    • Schlüsseldatenbankdateien, die die Erweiterung kdb haben
    • Stashdateien, die die Erweiterung sth haben
    • Dateien von Anforderungsdatenbanken, die die Erweiterung rdb haben
    • Dateien mit Zertifikatswiderrufslisten, die die Erweiterung crl haben
    • Zertifikatsdateien, die die Erweiterung "arm" haben
  • Ausgabe, die von Befehlen wie Installationsstammverzeichnis/bin/htpasswd erzeugt wird und für die Zugriffssteuerung verwendet werden kann
  • manuell bearbeitete Gruppenlisten
  • jeglicher Inhalt, der in HTTP-Anforderungen bereitgestellt wird, wie z. B. HTML-Dateien, Bilder, Java™-Scripts, Cascading Style Sheets und CGI-Scripts

Verschlüsselungsunterstützung

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.

Hardwareverschlüsselung

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.

Wenn Sie eine Hardwareverschlüsselung implementieren, beachten Sie folgende Punkte:
  • Der Web-Server verwendet RSA-Technologie für den SSL-Handshake. Der Handshake ist eine asymmetrische Funktion und verwendet Paare aus öffentlichen/privaten RSA-Schlüsseln. Sie können RSA-Schlüssel in der Software oder in der Hardware generieren.
  • Wenn Sie die RSA-Schlüssel in der Software generieren, können Sie RACF-Befehle oder das Dienstprogramm gskkyman verwenden.
  • Definieren Sie RACF-Befehle, um Benutzer-IDs und die Web-Server-ID für Profile in der allgemeinen Ressourcenklasse CSFSERV zuzulassen. Die allgemeine Ressourcenklasse CSFSERV steuert die Verwendung der Software ICSF.

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.

Prüfen, ob Hardwareverschlüsselung für Web-Server-Verschlüsselung verwendet wird

ICSF ist die Softwareschnittstelle für Verschlüsselungshardware. Stellen Sie anhand der folgenden Checkliste fest, ob Ihr Web-Server mit Hardwareverschlüsselung arbeitet.
  • Vergewissern Sie sich, dass die Benutzer-IDs und die Web-Server-ID auf ICSF zugreifen können.
  • Vergewissern Sie sich, dass die gestartete ICSF-Task aktiv ist.
  • Führen Sie eine der folgenden Tasks über die ICSF-TSO-Anzeigen aus, um sicherzustellen, dass ICSF ordnungsgemäß funktioniert:
    • Vergewissern Sie sich, dass für ICSF PKA-Masterschlüssel definiert sind.
    • Generieren Sie einen PKA-Masterschlüssel.

Checkliste für die Konfiguration eines sicheren Servers

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".

IBM HTTP Server verwendet CMS-SSL-Keystoredateien, die die Erweiterung kdb haben. Sie können das Dienstprogramm gskkyman oder den RACF-Befehl RACDCERT verwenden, um eine Keystoredatei zu erstellen und zu verwalten.
Achtung: Verwenden Sie diese Keystoredateien nicht für z/OS- und verteilte Plattformen gemeinsam.

Standardreihenfolge der vom Web-Server verwendeten Verschlüsselungsstufen ändern

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".

Zugriffsschutz für Serverressourcen konfigurieren

Die folgenden Schritte werden im Handbuch z/OS HTTP Server Planning, Install, and Using für IBM HTTP Server V5.3 for z/OS beschrieben. Sie benötigen die Informationen, die unter den einzelnen Schritten aufgeführt sind, für den Schritt, den Sie in IBM HTTP Server ausführen müssen.
  • Schritt 1. Aktivieren Sie den Zugriffsschutz für den Server.

    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.

  • Schritt 2. Geben Sie an, welche Anforderungen der Server akzeptieren soll.

    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>.

  • Schritt 3. Entscheiden Sie, welche Optionen für Zugriffsschutz verwendet werden sollen.
    IBM HTTP Server bietet eine Reihe verschiedener Schutzmechanismen, die Sie auswählen können:
    • Hostbasierte Zugriffssteuerung über das Modul "mod_authz_host". Das Modul "mod_authz_host" lässt einzelne IP-Adressen bzw. Teilnetze zu oder weist sie zurück.
    • Verschiedene Module arbeiten zusammen, um die Authentifizierung über Benutzer-ID und Kennwort bereitzustellen. Diese Authentifizierungsfunktionalität umfasst die HTTP-Basisauthentifizierung für Dateien, Datenbanken und LDAP, die HTTP-Digest-Authentifizierung sowie die Authentifizierung mit SSL-Clientzertifikat.
    • Verschiedene Module arbeiten zusammen, um die Berechtigung bereitzustellen. Diese Berechtigungsfunktionalität umfasst Gruppen, LDAP (Lightweight Directory Access Protocol) und SSL-Clientzertifikate.
    Beim Verarbeiten von Anforderungen überprüft der Server zuerst die hostbasierte Zugriffssteuerung. Dann überprüft er die Authentifizierung und die Zugriffssteuerung. Wenn die Anweisung "Satisfy" auf any gesetzt ist, muss die Anforderung nur die Voraussetzungen für die hostbasierte Zugriffssteuerung oder nur die Berechtigungsvoraussetzungen erfüllen. Jede Übereinstimmung mit einer Berechtigungsanweisung vom Typ "Require" erlaubt den Zugriff. Es ist allerdings nicht möglich, den Zugriff basierend auf der Übereinstimmung mit mehreren Anweisungen vom Typ "Require" zu erteilen.
    Vorsicht:
    Sie können die Anweisungen vom Typ <Limit> und <LimitExcept> verwenden, um Zugriffsschutzmethoden auf einzelne HTTP-Anforderungsmethoden zu beschränken, lassen Sie dabei jedoch Vorsicht walten.
  • Schritt 4. Erstellen Sie Zugriffsschutzkonfigurationen.

    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:

    • Sie können den Zugriff auf Ressourcen mit den Anweisungen "order", "allow" und "deny" steuern:
      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>
    • Sie können den Zugriff auf Ressourcen mit den Anweisungen "order", "allow" und "deny" steuern. Verwenden Sie außerdem die Basisauthentifizierung, damit ein Benutzer eine Benutzer-ID und ein Kennwort für den Zugriff auf die Ressourcen bereitstellt. Geben Sie die Datei an, die die Benutzer-IDs und Kennwörter enthält.
      <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>
    • Erlauben Sie nur der Benutzer-ID administrator, auf die Ressourcen zuzugreifen.
      <Directory /opt/my-app/htdocs/admin>
           ...
           Require user administrator
        </Directory>
    • Erlauben Sie nur der Benutzergruppe admins, auf die Ressourcen zuzugreifen. Geben Sie die Datei an, die die Benutzergruppen enthält.
      <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>
    • Erlauben Sie dem lokalen Host, wie ein Administrator auf Ressourcen zuzugreifen.
        <Directory /opt/my-app/htdocs/admin>
           ...
           Require group admins
           Satisfy any
           Order allow,deny
           Allow from 127.0.0.1
        </Directory>
  • Schritt 5. Beschränken Sie den Zugriff auf einzelne Dateien.

    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.

Regeln für die Angabe von Benutzernamen, Gruppennamen und Adressschablonen

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.

Verwendung von Gruppendateien in Zugriffsschutzkonfigurationen

Eine Gruppendatei in IBM HTTP Server ist lediglich eine Zuordnung eines Gruppennamens zu einer Benutzerliste. Sie kann keine verschachtelten Definitionen haben oder Adressspezifikationen enthalten.

ACL-Dateien

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.


Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=ihs-dist&topic=rihs_dgwbconfig
Dateiname:rihs_dgwbconfig.html