Windows Server 2025 / IIS installieren und eine statische HTML-Website im Labor bereitstellen

Unter Windows Server 2025 kann IIS nach Installation der Webserverrolle und der Funktionen für statische Inhalte eine HTML-Seite ausliefern. Konfigurieren Sie Dateipfad, Anwendungspool, Bindung und Leserechte und prüfen Sie die Seite anschließend auf WEB1 und von einem getrennten Client.

Einen getrennten Webserver vorbereiten

Internet Information Services (IIS) ist der Webserver von Windows. Diese Übung liefert eine statische Datei aus: Der Server gibt HTML ohne Datenbank oder Anwendungsframework zurück. PHP und ASP.NET benötigen weitere Laufzeit- und Bereitstellungseinstellungen; installieren Sie diese nicht für dieses Beispiel.

Bereiten Sie WEB1 als getrennten Domänenmitgliedsserver mit Windows Server 2025 und Desktopdarstellung im isolierten Labornetz vor. Installieren Sie die Rolle nicht zusätzlich auf DC1 oder FS1. Das Beispiel nutzt 172.24.50.30/24, DC1 unter 172.24.50.10 als DNS und die Domäne ad.example.test. Prüfen Sie zuerst, dass die Adresse unbenutzt und für den Server reserviert ist, Domänennetz und DNS funktionieren und der Host genügend Ressourcen hat. Verbinden Sie das Labor nicht zur Behebung dieser Voraussetzungen mit dem Produktivnetz.

Verwenden Sie auf WEB1 eine erhöhte Windows-PowerShell-Sitzung und den IIS-Manager. Neu angelegt werden LabSite, LabSitePool, C:\Sites\LabSite und der HTTP-Port 8080. Prüfen Sie vorhandene Sites, Pools, Ordner, Regeln und Bindungen. Ist ein Name oder Ziel bereits belegt, stoppen Sie ohne Ersetzung. Lassen Sie die Port-80-Bindung der Standardwebsite getrennt und veröffentlichen Sie den Server nicht im Internet. HTTP überträgt hier nur Testtext ohne Geheimnisse und ist kein geschützter Kanal für Zugangsdaten.

IIS installieren und Funktionszustand prüfen

  1. Wählen Sie im Server-Manager Verwalten → Rollen und Features hinzufügen, rollenbasierte Installation und WEB1 als Ziel. Prüfen Sie den Server vor dem Fortfahren.
  2. Wählen Sie Webserver (IIS) und benötigte Verwaltungstools. Diese Übung verwendet die lokale Konsole mit Desktopdarstellung; Server Core erfordert einen anderen Verwaltungsweg.
  3. Prüfen Sie unter Allgemeine HTTP-Features Statischer Inhalt und Standarddokument sowie unter Integrität und Diagnose HTTP-Protokollierung. Prüfen Sie auch die IIS-Verwaltungskonsole.
  4. Lesen Sie die Zusammenfassung und installieren Sie ohne zusätzliche Anwendungslaufzeiten. Wählen Sie nicht aus Bequemlichkeit sämtliche Funktionen aus.
  5. Prüfen Sie Ergebnis und Neustartanforderung. Planen und erledigen Sie einen erforderlichen Neustart und kontrollieren Sie den Zustand, bevor Sie fortfahren. Öffnen Sie den IIS-Manager mit inetmgr.

Die PowerShell-Alternative läuft lokal auf WEB1. Ist IIS bereits vorhanden, prüfen Sie zuerst Funktionszustand und Nutzung der Sites. Install-WindowsFeature erfordert erhöhte Rechte und installiert Verwaltungstools nicht standardmäßig; deshalb ist IncludeManagementTools angegeben. Führen Sie die Zeilen getrennt aus und stoppen Sie bei Fehlern. Die Rolleninstallation richtet weder Pfad noch Berechtigungen oder Netzwerkzugriff selbstständig ein:

Install-WindowsFeature Web-Server -IncludeManagementTools
Get-WindowsFeature Web-Static-Content,Web-Default-Doc,Web-Http-Logging,Web-Mgmt-Console

Erwartet werden eine erfolgreiche Installation und Installed bei Web-Static-Content, Web-Default-Doc, Web-Http-Logging und Web-Mgmt-Console in Get-WindowsFeature. Prüfen Sie zusätzlich RestartNeeded. Available erfüllt die Voraussetzung nicht: Installieren Sie über den Assistenten gezielt die fehlende Funktion und prüfen Sie erneut. Eine vorhandene Konsole bestätigt nicht alle Funktionen zum Ausliefern der Seite.

Seite und eigenen Anwendungspool erstellen

Existiert C:\Sites\LabSite bereits, stoppen Sie und klären Sie den Zweck, ohne Dateien zu überschreiben. Andernfalls erstellen Sie den Ordner und speichern das folgende vollständige Dokument als index.html mit UTF-8. Wählen Sie im Editor beim Speichern Alle Dateien und prüfen Sie im Explorer mit eingeblendeten Erweiterungen, dass die Datei nicht index.html.txt heißt. Das Beispiel behält den englischen Text und lang="en" bei; an seinem Satz erkennen Sie die antwortende Site:

<!doctype html>
<html lang="en">
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>LabSite</title></head>
<body><h1>Windows Server 2025 web server lab</h1><p>This page is served by LabSite on WEB1.</p></body>
</html>
  1. Erstellen Sie im IIS-Manager unter Anwendungspools LabSitePool nur, wenn der Name frei ist. Ist bereits ein solcher Pool vorhanden oder einem anderen Zweck zugeordnet, stoppen Sie ohne Ersetzung.
  2. Wählen Sie für diese ausschließlich statische Seite als .NET-CLR-Version Kein verwalteter Code (No Managed Code). Diese Auswahl installiert keine weiteren Laufzeiten wie PHP.
  3. Bestätigen Sie in Erweiterte Einstellungen Identity = ApplicationPoolIdentity. Ersetzen Sie die Identität nicht durch einen Administrator.
  4. Öffnen Sie Eigenschaften → Sicherheit von C:\Sites\LabSite, wählen Sie WEB1 als Suchpfad und fügen Sie IIS AppPool\LabSitePool mit Namen überprüfen hinzu. Wird der Name nicht aufgelöst, prüfen Sie lokalen Suchpfad sowie Namen und Existenz des Pools.
  5. Gewähren Sie Lesen und Ausführen, Ordnerinhalt anzeigen und Lesen für Ordner und Dateien. Behalten Sie SYSTEM und Administratorberechtigungen bei und gewähren Sie dem Webprozess weder Schreiben noch Vollzugriff.

Eine Anwendungspoolidentität ist ein dem Pool zugeordnetes virtuelles Konto, kein manuell anzulegender Domänenbenutzer. Schreibrechte des veröffentlichenden Administrators sind von Leserechten des Webprozesses zu trennen. Zum Ausliefern dieser Seite benötigt der Pool weder Administratorrechte noch Schreibzugriff oder Vollzugriff. Übernehmen Sie keine weitreichende Berechtigung aus einem allgemeinen Beispiel. Prüfen Sie, dass die Leserechte index.html erreichen und keine Verweigerung sie verhindert.

Site und anonyme Identität konfigurieren

  1. Tragen Sie unter Sites → Website hinzufügen LabSite ein, wählen Sie LabSitePool und setzen Sie C:\Sites\LabSite als physischen Pfad. Prüfen Sie, dass nicht versehentlich ein anderer automatisch angelegter Pool gewählt wurde.
  2. Verwenden Sie Typ http, IP 172.24.50.30, Port 8080 und einen leeren Hostnamen. Prüfen Sie, dass WEB1 diese IP besitzt und kein anderer Dienst oder keine Bindung diese Kombination verwendet.
  3. Prüfen Sie unter LabSite → Authentifizierung → Anonyme Authentifizierung die Aktivierung und wählen Sie Bearbeiten → Anwendungspoolidentität. Ändern Sie nur die Test-Site.
  4. Prüfen Sie unter LabSite → Standarddokument die Aktivierung und index.html in der Liste; ergänzen Sie den Eintrag nur bei Bedarf. Aktivieren Sie Verzeichnisdurchsuchen nicht.
  5. Kontrollieren Sie Bindung, Pfad, Pool und dessen Zustand und starten Sie die Site. Bei Startfehlern bewahren Sie die Meldung auf und lösen den Konflikt, ohne fremde Sites zu stoppen.

Der standardmäßige anonyme Benutzer IUSR ist nicht die Poolidentität. Wählen Sie in der anonymen Authentifizierung ausdrücklich die Anwendungspoolidentität, damit Anforderungen dieser Seite zur zuvor berechtigten Identität IIS AppPool\LabSitePool passen. Prüfen Sie außerdem, dass anonyme Authentifizierung für LabSite aktiviert ist. Beheben Sie Authentifizierungsfehler nicht durch Schreibrechte für Jeder oder durch ungeprüfte Änderungen der gesamten Serverkonfiguration.

Öffnen Sie im Browser auf WEB1 http://172.24.50.30:8080/index.html und anschließend http://172.24.50.30:8080/. Erwartet werden die sichtbare Überschrift Windows Server 2025 web server lab und der Satz This page is served by LabSite on WEB1. Es darf weder die Begrüßung der Standardwebsite noch eine lokale file://-Kopie sein. Die Stamm-URL setzt voraus, dass index.html vorhanden und als Standarddokument aufgeführt ist. Die Referenz zu New-Website beschreibt ebenfalls Pfad, Port und Pool; legen Sie nach dem Assistenten nicht dieselbe Site nochmals an.

Clientzugriff und HTTP-Antwort getrennt prüfen

Prüfen Sie zunächst auf WEB1 das Domänenprofil der Laborschnittstelle. Öffnen Sie dann wf.msc → Eingehende Regeln → Neue Regel → Port → TCP und lokaler Port 8080 → Verbindung zulassen → nur Domäne. Vergeben Sie Lab-IIS-HTTP-8080, sofern noch nicht vorhanden. Begrenzen Sie anschließend unter Eigenschaften → Bereich die Remote-IP-Adressen auf 172.24.50.0/24 und prüfen Sie Port und Profil. Die Firewall-Regelfilter unterscheiden lokalen Port und entfernte Quelle. Bei unerwartetem Profil prüfen Sie DNS und Domänenverbindung, statt alle Profile zuzulassen oder die Firewall auszuschalten. Prüfen Sie auch andere Regeln oder Richtlinien mit möglicherweise größerem erlaubtem Bereich.

Führen Sie auf CLIENT1 im erlaubten Subnetz den folgenden Test aus und öffnen Sie danach beide URLs im Browser. TcpTestSucceeded: True bestätigt nur einen aufgebauten TCP-Kontakt auf dem Port, nicht korrekten HTML-Inhalt, Berechtigungen oder die richtige Site. Bei False prüfen Sie Weg, Profil, Regel und Listener, statt zuerst Website-Anmeldedaten zu ändern:

Test-NetConnection -ComputerName 172.24.50.30 -Port 8080
Symptom Prüfung
Zeitüberschreitung Netzwerkweg, Firewallprofil und Regeln, lauschender Port und erlaubter Bereich.
403.14 Vorhandenes Standarddokument und seine Konfiguration; Verzeichnisdurchsuchen nicht als Umgehung aktivieren.
401.3 Wirksame anonyme Identität und NTFS-Leserechte auf Ordner und Datei.
404 Physischer Pfad, Dateiname und Erweiterung; Unterstatus prüfen, bevor jede 404-Antwort einer fehlenden Datei zugeschrieben wird.
503 Poolzustand, Schutz bei schnellen Fehlerfolgen und Ereignisse; Schutz nicht zum Verbergen der Ursache deaktivieren.

Prüfen Sie im IIS-Manager unter LabSite → Erweiterte Einstellungen die Site-ID und unter Protokollierung den aktiven Protokollpfad. Ordnen Sie Client, URL und Zeitpunkt dem Ordner C:\inetpub\logs\LogFiles\W3SVC mit angehängter Site-ID zu, sofern diese Standardablage verwendet wird; beachten Sie die Zeitzone des Protokollformats. Die IIS-Diagnose für HTTP-Fehler unterscheidet Status und Unterstatus. Erreicht eine Anfrage IIS nicht, muss sie dort nicht protokolliert sein. Trennen Sie Netzwerkfehler von HTTP-Antworten. Bewahren Sie zur Bereinigung benötigte Protokolle auf und stoppen und entfernen Sie nur LabSite. Prüfen Sie vor dem Entfernen von LabSitePool, dass keine anderen Anwendungen ihn nutzen, und entfernen Sie nur diesen neuen Pool und die neue Regel. Löschen Sie den Ordner nur mit ausschließlich eigenen entbehrlichen Dateien. Standardwebsite, fremde Regeln und gemeinsam genutzte Rolle bleiben erhalten.