Bereits Kunde? Jetzt einloggen.
Lesezeit ca. 10 Min.

Microsoft IIS absichern und verwalten: Passendes Werkzeug


IT Administrator - epaper ⋅ Ausgabe 9/2020 vom 31.08.2020

Wer den IIS auf Windows-Servern einsetzt, kann mit Bordmitteln umfassend auf die Funktionen zugreifen und den Webserver effektiv verwalten. Neben dem altbekannten Internetinformationsdienste-Manager lässt sich IIS auch im Windows Admin Center oder per Power-Shell verwalten. In diesem Beitrag beleuchten wir die verschiedenen Wege.


Artikelbild für den Artikel "Microsoft IIS absichern und verwalten: Passendes Werkzeug" aus der Ausgabe 9/2020 von IT Administrator. Dieses epaper sofort kaufen oder online lesen mit der Zeitschriften-Flatrate United Kiosk NEWS.

Bildquelle: IT Administrator, Ausgabe 9/2020

In unserem Workshop zeigen wir, welche Möglichkeiten Microsoft zur Verfügung stellt, um die Internetinformationsdienste (IIS) effektiv zu verwalten. Damit administrieren Sie auch Webserver unter Windows Server 2019 problemlos mit mehreren Werkzeugen, natürlich auch parallel. Für ...

Weiterlesen
epaper-Einzelheft 8,99€
NEWS 14 Tage gratis testen
Bereits gekauft?Anmelden & Lesen
Leseprobe: Abdruck mit freundlicher Genehmigung von IT Administrator. Alle Rechte vorbehalten.

Mehr aus dieser Ausgabe

Titelbild der Ausgabe 9/2020 von News: Bergfest. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
News: Bergfest
Titelbild der Ausgabe 9/2020 von News: Geheimtransport. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
News: Geheimtransport
Titelbild der Ausgabe 9/2020 von News: Verbesserte Lastenschaukel. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
News: Verbesserte Lastenschaukel
Titelbild der Ausgabe 9/2020 von Interview: »Die Wolke ist auch kein Selbstläufer«. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Interview: »Die Wolke ist auch kein Selbstläufer«
Titelbild der Ausgabe 9/2020 von Praxiswissen für Administratoren: Wissen ist gefragt. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Praxiswissen für Administratoren: Wissen ist gefragt
Titelbild der Ausgabe 9/2020 von LiteSpeed Enterprise Webserver: Sprinter. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
LiteSpeed Enterprise Webserver: Sprinter
Vorheriger Artikel
.NET Core unter Linux betreiben: Auf zu neuen Ufern
aus dieser Ausgabe
Nächster Artikel Exchange Web Services für den Postfachzugriff: Mailmanager
aus dieser Ausgabe

... die Power-Shell steht zum Beispiel das Modul "IISAdministration" zur Verfügung. Auch die Befehlszeile auf Windows-Servern bietet die Möglichkeit, den Webserver zu verwalten. Dazu dienen etwa die Tools "appcmd" oder "iisreset". Das gilt nicht nur auf Servern mit grafischer Oberfläche, sondern auch auf Core-Servern und in Containern. In unserem Beitrag gehen wir von der Konfiguration der IIS auf Windows Server 2019 aus. Die meisten Einstellungen gelten auch für Windows Server 2012 R2 und 2016.

Webserver und Seiten verwalten

Sind die IIS am Start, ist die Verwaltung über den Internetinformationsdienste-Manager möglich. Diesen rufen Sie am schnellsten durch die Eingabe von "inetmgr.exe" auf. Ist es notwendig, den Systemdienst des IIS neu zu starten, verwenden Sie entweder net stop w3svc und net start w3svc oder Sie arbeiten in der PowerShell mit Stop-Service, Start-Service oder Restart-Service. Im Windows Admin Center steht Ihnen hierfür der Bereich "Dienste" zur Verfügung. Die Systemdienste selbst erreichen Sie mit "services.msc".

Um den Webserver neu zu starten, setzen Sie in der Befehlszeile die Befehle iisreset oder iisreset /noforce ab. Neben dem Starten und Stoppen des kompletten Servers lassen sich auch einzelne Webseiten zeitweise deaktivieren. Alle anderen Webseiten des Servers bleiben davon unbeeinflusst. Klicken Sie dazu im Internetinformationsdienste-Manager auf die Website, die Sie neu starten oder beenden möchten. Im "Aktionen"-Bereich der Konsole sehen Sie im Abschnitt "Website verwalten" die Befehle zum Neustart und zum Beenden angezeigt.

Über die Eingabeaufforderung führen Sie mit dem Tool "Appcmd" einen Neustart oder das Beenden durch. Zum Beenden der Webseite "Contoso" geben Sie den Befehl appcmd stop site /site.name:contoso ein, mit appcmd start site /site.name:contoso starten Sie die Seite wieder. Das Tool befindet sich allerdings nicht direkt im Pfad der Eingabeaufforderung, lässt sich also nicht direkt aufrufen. Sie müssen zuvor inden Ordner "\Windows\System32\inetsrv" wechseln. Eine ausführliche Hilfe erhalten Sie über appcmd /?. Da die Hilfe kontextsensitiv ist, bekommen Sie auch für einzelne Befehle wie zum Beispiel appcmd site /? entsprechende Unterstützung.

Bild 1: Ob IIS auf einem Server installiert ist, überprüfen Sie mit der PowerShell.


Bild 2: Das Verwalten der IIS über das Windows Admin Center ist relativ einfach möglich.


Anfragen anzeigen und Backups erstellen

Der Befehl appcmd dient dem Anzeigen der aktuellen Anfragen an einen Webserver sowie dessen Datensicherung. Die aktuellen Anfragen erhalten Sie via appcmd list request. Die Einstellungen eines Servers sichern Sie mit demselben Werkzeug, nur mit dem Befehl appcmd add backup <Name>. Damit erstellen Sie ein Backup, zum Beispiel bevor Sie Systemänderungen vornehmen. Die vorhandenen Sicherungen sehen Sie über appcmd list backups und stellen diese über appcmd restore backup <Name> bei Bedarf wieder her. Sichern Sie den Server jedoch vor der Änderung hin zu einer verteilten Konfiguration und stellen dieses Backup wieder her, haben Sie nach der Wiederherstellung wieder eine lokale Konfiguration vorliegen.

Es bietet sich natürlich an, diese Datensicherung als regelmäßige Aufgabe in Windows laufen zu lassen und die Konfiguration der IIS in eine Datei zu sichern. Dazu verwenden Sie das Kommando

Entwicklertools in Internet Explorer und Edge

Für Administratoren wie auch Entwickler sind übrigens die Entwicklertools in Internet Explorer und Edge interessant. Diese rufen Sie über die F12-Taste auf. Die Tools zeigen den Quelltext zu einer Seite an und helfen bei der Fehleranalyse, wenn zum Beispiel eine Seite lange zum Laden braucht. Über die Registerkarte "Netzwerk" können Sie die Ladedauern von Seiten überprüfen, um festzustellen, welche Bereiche einer Website das Laden verzögern. Um eine Seite auch nachträglich zu analysieren, speichern Sie die Ausgabe.

IIS im Windows Admin Center verwalten

Microsoft stellt für Server, auf denen IIS installiert ist, eine Erweiterung für das Windows Admin Center zur Verfügung. Diese verfügt bereits über nahezu alle Funktionen, die auch im Internetinformationsdienste-Manager vorliegen. Der Vorteil des Windows Admin Center zur zentralen Verwaltung des IIS besteht darin, dass hier die zentrale Verwaltung wesentlich leichter fällt als mit dem Internetinformationsdienste-Manager.

Um die Erweiterung zu nutzen, fügen Sie diese in den Einstellungen des Windows Admin Centers über "Erweiterungen" hinzu. Danach blendet das Admin Center automatisch die entsprechenden Optionen ein, wenn auf einem Server die IIS installiert sind. Die Optionen befinden sich links unten bei "Erweiterungen / IIS". Es ist zu erwarten, dass Microsoft auf Dauer die IIS-Verwaltung fest in die Menüstruktur des Windows Admin Centers integrieren wird. Falls notwendig, installieren Sie auf dem entsprechenden Server noch die Erweiterung zur Verwaltung des IIS über das Netzwerk. Das erfolgt ebenfalls im Admin Center. Die notwendige Erweiterung stellt Microsoft zudem auf GitHub zur Verfügung [1].

Nach dem Verbindungsaufbau der IISErweiterung im Windows Admin Center mit dem entsprechenden Server wählen Sie die Webseite aus, deren Einstellungen Sie anpassen möchten. Werden die Servereinstellungen nicht angezeigt, reicht die Auflösung des Monitors nicht aus. Hier kann es sinnvoll sein, die Menüleiste für das Windows Admin Center mit dem Pfeil oben links auszublenden. Danach zeigt das Windows Admin Center die Be-fehle zur Verwaltung des IIS in einem eigenen Menübereich an. Danach stehen deren Einstellungen zur Verfügung. Über die Registerkarten "Settings", "Bindings", "Limits" und "Application Pool" werden die Einstellungen der Seite verwaltet. Auch steht hier mit "Monitoring" zum Beispiel ein eigener Bereich zur Leistungsüberwachung eines Webservers zur Verfügung.

Bild 3: Die Windows-Firewall spielt eine wichtige Rolle, wenn es um die Absicherung von Windows-Servern geht. Das gilt auch für den IIS.


Anpassen der Sicherheitseinstellungen

Über die bereits erwähnten Tools passen Sie die Sicherheitseinstellungen des Webservers an. In den meisten Fällen kommt hier noch der Internetinformationsdienste-Manager zum Einsatz. Wichtige Einstellungen betreffen zunächst die Firewall des Servers. Hierzu greifen Sie auf die Standardkonsole der Firewall (wf.msc) oder das Windows Admin Center zurück. Auch mit der PowerShell lassen sich Regeln für die Windows-Firewall auf Webservern setzen. Vorteil dabei ist die Möglichkeit, die Konfiguration zu scripten beziehungsweise zu automatisieren. Um eine neue Firewallregel zu erstellen, verwenden Sie zum Beispiel den Befehl

Wie Sie im Befehl erkennen, geben Sie den Namen des Protokolls an, legen das Protokoll fest und steuern die jeweilige Aktion. Anstatt mit New-NetFirewallRule eine neue Firewallregel zu erstellen, ist es häufig einfacher, bestehende Firewallregeln zu kopieren. Dazu verwenden Sie den Befehl Copy-NetFirewallRule. Arbeiten Sie mit IPSec, können Sie auch hier die Regeln kopieren. Dazu nutzen Sie das Cmdlet Copy-NetIPsecRule. Nachdem Sie eine Regel kopiert haben, können Sie diese natürlich auch umbenennen. Dazu verwenden Sie das Cmdlet Rename-NetFirewallRule. Sie können aber bereits beim Kopieren einen neuen Namen verwenden:

Natürlich lassen sich Firewallregeln in der PowerShell mit Remove-NetFirewall-Rule auch löschen.

Zugriffe absichern

Das Feature "Einschränkungen für IPAdressen und Domänen" ermöglicht das Erstellen von Zugriffsregeln, um fest definierte IP-Bereiche und -Domänen für den Zugriff zu sperren. Bei "Einschränkungen für IP-Adressen und Domänen" aktivieren Sie die Option "Featureeinstellungen bearbeiten". Sie müssen dazu den Rollendienst "IP- und Domänenbeschränkungen" installieren.

Bei einer HTTP-Umleitung werden alle Zugriffe auf eine bestimmte URL zu einer anderen URL automatisch umgeleitet. So lassen Sie zum Beispiel Ihre Seite umleiten, wenn Sie gerade Teile davon bearbeiten. Beispielsweise können Sie alle Anfragen zu "www.contoso.com/marketing/default.aspx" zur Seite "www.contoso.com/sales/default.aspx" umleiten lassen. Die Konfiguration der Umleitungen ist auf Serverebene oder auf Ebene der Webseiten über das Feature "HTTP-Umleitung" möglich. Sie müssen diese Funktion aber zunächst als Rollendienst installieren.

Neben der Umleitung legen Sie an dieser Stelle auch das Verhalten dieser Konfiguration fest. Aktivieren Sie das Kontrollkästchen "Alle Anforderungen an eigentliches Ziel (und nicht relativ zum Ziel) umleiten", werden Anfragen immer exakt zu der Adresse umgeleitet, die Sie in der Umleitung bestimmt haben. Das gilt auch dann, wenn Anfragen an Unterordner gestellt werden. Aktivieren Sie das Kontrollkästchen "Anforderungen zu Inhalt in diesem Verzeichnis (nicht in Unterverzeichnissen) umleiten", leitet der Server Anfragen, die an Unterordner des umgeleiteten Ordners gerichtet sind, direkt an das Weiterleitungsziel um.

Die Bindungen für SSL setzen Sie für Webseiten im IIS-Manager oder Sie verwenden auch hier das Windows Admin Center und die IIS-Erweiterung. Hier besteht die Möglichkeit, unverschlüsselte Zugriffe auf die IIS automatisch auf SSLSeiten umzuleiten. Ferner stellt Microsoft die kostenlose Erweiterung "URL Rewrite" [2] zur Verfügung. Sie installieren die Erweiterung und rufen danach im IISManager "URL Rewrite" auf. Mit "Add Rule" oder "Regel hinzufügen" erstellen Sie neue Regeln.

Die Umleitung können Sie auch manuell durchführen und haben hierfür zwei Möglichkeiten. Die entsprechenden Settings legen Sie in der Konfiguration der HTTP-403-Fehlermeldung fest. Rufen Sie auf dem Server den IIS-Manager auf und klicken Sie auf den Servernamen. Alternativ klicken Sie die Website an – auch dort finden Sie die Option "Fehlerseiten". Doppelklicken Sie auf der Startseite im Bereich "IIS" nun auf Fehlerseiten und öffnen Sie den Punkt "Fehler 403". Nun aktivieren Sie die Option "Antwortcode 302 für Umleitung", tragen die HTTPSURL ein, auf die die Anwender zugreifen sollen, und bestätigen mit "OK".

Bild 4: Mit "URL Rewrite" führen Sie automatische URL-Umleitungen aus.


Diese Art der Umleitung funktioniert allerdings nicht immer. In diesem Fall verwenden Sie die zweite Möglichkeit für die Umleitung: Starten Sie den IIS-Manager und klicken Sie auf die Seite, für die Sie die HTTP-Umleitung konfigurieren möchten. Klicken Sie auf "Bindungen" und ändern Sie den Port der Bindung von Port 80 auf einen anderen freien Port ab, zum Beispiel 8001. Klicken Sie nun mit der rechten Maustaste auf "Sites" und erstellen Sie eine neue Website mit dem Befehl "Website hinzufügen". Weisen Sie der neuen Website bei "Sitename" den Namen zu, mit dem Anwender per HTTP auf den Server zugreifen, zum Beispiel "powerpivot. contoso.int". Legen Sie jetzt einen physischen Pfad an. Der Ordner bleibt leer, Sie benötigen diesen nur wegen der IIS, nicht für die Konfiguration. Belassen Sie die Bindung auf Port 80. Da Sie die Bindung der Standardseite bereits geändert haben, ist dieser Port frei. Tragen Sie als Hostname noch den Namen ein, auf den der Server antworten soll, zum Beispiel "powerpivot.contoso.int".

Bestätigen Sie das Erstellen der Website. Sie erhalten dann eine Meldung, dass Port 80 bereits belegt ist, auch wenn Sie den Port der Seite von 80 auf einen anderen Port geändert haben. Dies liegt daran, dass Port 80 noch der Default-Website innerhalb von IIS zugeordnet ist. Diese Seite wird aber bei der Installation beendet, sodass diese auf dem Server keine Bedeutung mehr hat. Klicken Sie als Nächstes auf die neu erstellte Seite und doppelklicken dann im Bereich "IIS" auf "HTTP-Umleitung".

Aktivieren Sie dort das Kontrollkästchen "Anforderungen zu diesem Ziel umleiten" und tragen Sie die HTTPS-Adresse ein, zu der der Server die Anfragen umleiten soll. Aktivieren Sie das Kontrollkästchen "Alle Anforderungen an eigentliches Ziel umleiten" und klicken Sie auf "Übernehmen". Geben Anwender jetzt die URL ein, für die Sie eine Umleitung konfiguriert haben, wird der Zugriff von IIS erkannt und die Anfrage automatisch umgeleitet.

Protokollierung aktivieren und konfigurieren

Neben der Ablaufverfolgung für fehlerhafte Anforderungen können Sie auch den normalen Betrieb von IIS protokollieren. Dazu steht der Punkt "Protokollierung" auf der Startseite des Internetinformationsdienste-Managers zur Verfügung. Die Protokollierung lässt sich für einzelne Seiten und Anwendungen getrennt im "Aktionen"-Bereich der Konsole aktivieren. Standardmäßig ist die Protokollierung für den Server an sich und für Webseiten aktiviert.

Das Speichern der Protokolldateien ist in einem beliebigen Ordner möglich. Standardmäßig landen die Files im Ordner "\inetpub\logs\LogFiles". Im ersten Auswahlfeld geben Sie über ein Listenfeld an, ob für jede Webseite eine Protokolldatei erstellt werden soll oder eine Datei für den kompletten Server. Für die Protokolldateien stehen Ihnen verschiedene Formate zur Verfügung. Die Codierung der Protokollierung sollten Sie jedoch bei UTF-8 belassen:
-W3C: Dies ist die Standardauswahl. Diese Protokolldateien werden textbasiert gespeichert und über die Schaltfläche "Felder auswählen" legen Sie fest, was in der Datei protokolliert werden soll. Die einzelnen Felder sind durch Leerzeichen getrennt.
-IIS: Bei dieser Auswahl werden die Protokolldateien ebenfalls im Textformat gespeichert. Die einzelnen Felder sind allerdings fest vorgegeben und lassen sich daher nicht anpassen. Die einzelnen Felder werden durch Kommas getrennt.
-NCSA: Bei NCSA handelt es sich um das "National Center For Supercomputing Applications". Auch hier sind die Felder fest vorgegeben und es werden weniger Informationen protokolliert als bei den anderen Protokollmethoden.

In diesem Fenster legen Sie ebenfalls fest, wann neue Protokolldateien zu erstellen sind, also nach einem bestimmten Zeitplan (stündlich, täglich, wöchentlich oder monatlich), nach einer bestimmten Größe oder überhaupt nicht. Die Auswahl hängt unter anderem von der Besucheranzahl des Servers ab. Aktivieren Sie die Option "Lokale Zeit für Dateibenennung und Rollover verwenden" nicht, kommt standardmäßig die UTC-Zeit (Weltzeit) zum Einsatz.

Optimieren der Serverleistung

Mit einer Komprimierung lassen sich die Antwortzeiten eines Servers verbessern und Bandbreite bei der Übertragung von Webseiten einsparen. Die Komprimierung steuern Sie über das gleichnamige Feature im Internetinformationsdienste-Manager. Manche Einstellungen stehen dabei nur auf Serverebene zur Verfügung. Viele Settings können Sie aber auch auf Ebene der Websites und Anwendungen vornehmen, sodass jede Anwendung eigene Einstellungen für die Komprimierung verwendet. Aktivieren Sie die Komprimierung, belastet das jedoch die Serverhardware.

Bild 5: Selbstsignierte Zertifikate stellen Sie in der PowerShell aus und weisen diese zu.


Im Cache des Webservers können Teile der Webseiten zur Verfügung gestellt werden, sodass die Abrufe dieser Teile den Server nicht belasten. Über das Feature "Ausgabezwischenspeicherung" im Internetinformationsdienste-Manager erreichen Sie die Verwaltung dieser Funktion. Der Cache ist standardmäßig aktiviert. In den Einstellungen legen Sie Limits fest. Der Cache kommt allerdings erst dann produktiv zum Einsatz, wenn Sie über Regeln bestimmen, welche Daten der Server zwischenspeichern soll.

IIS-Verwaltung aus der Ferne

Mit der PowerShell wie auch dem Win -dows Admin Center können Sie über das Netzwerk auf einen Server mit IIS zugreifen. Das geht zwar auch mit dem Internetinformationsdienste-Manager, ist allerdings wesentlich umständlicher zu konfigurieren und zu nutzen. Der Verbindungsaufbau erfolgt zum Beispiel mit Enter-PSSession -ComputerName <Servername>. Mit Get-Website erhalten Sie die Webseiten auf dem Server angezeigt inklusive der Bindungen und aller Einstellungen. Die einzelnen Bindungen sehen Sie mit Get-Webinding. So überprüfen Sie schnell, welche Webseiten auf einem Server vorhanden sind und welche Bindungen im Einsatz sind. Auf Basis dieser Informationen lassen sich auch Bindungen zu Webseiten hinzufügen, zum Beispiel für die Verwendung von SSL. Eine neue Bindung erstellen Sie mit dem folgenden Befehl:

So aktivieren Sie zum Beispiel SSL für eine Seite. Die erfolgreiche Bindung sehen Sie anschließend mit den beiden oben genannten Befehlen. In der PowerShell lassen sich auch die Bindungen gezielt für eine Webseite ausgeben, zum Beispiel mit (Get-Website -Name '<Default Website>').bindings. Collection.

Selbstsignierte Zertifikate nutzen

In Sachen Verbindungssicherheit unterstützen die IIS auch selbstsignierte Zertifikate. Dazu steht zum Beispiel das Cmdlet New-SelfSignedCertificate zur Verfügung. Um für eine Webseite ein selbstsigniertes Zertifikat zu erstellen, geben Sie beispielsweise den folgenden Befehl ein:

Die Bindungen können Sie auch im Internetinformationsdienste-Manager oder mit dem Windows Admin Center überprüfen. Dazu rufen Sie jeweils die Einstellungen der Webseite auf und überprüfen, ob das Zertifikat übernommen und die Einstellungen gesetzt wurden. Im Windows Admin Center finden Sie die Optionen auf der Registerkarte "Bindings".

Die IIS in Windows Server 2016 und 2019 unterstützen zudem HTTP/2. Außerdem können Sie für den Host-Header auch Platzhalter verwenden, zum Beispiel mit der PowerShell:

Fazit

Für die Konfiguration der Internet Information Services stehen Ihnen verschiedene Wege offen. Wenig überraschend ist die PowerShell einer davon. Der Vorteil: Sie können Aktionen als Skripte abspeichern und so immer wieder ausführen, bei Bedarf auch automatisiert. Der zweite gängige Weg ist das Windows Admin Center. Der Internetinformationsdienste-Manager hingegen ist nicht mehr die erste Wahl. Unabhängig von der Wahl des Werkzeugs gilt: Safety first! (dr)

Link-Codes

[1] IIS-Erweiterung für das Windows Admin Center k9z61
[2] URL Rewrite k9z62