Quantcast
Channel: Bernhard Frank's Blog
Viewing all 40 articles
Browse latest View live

IIS für Einsteiger Teil 1: Installation

$
0
0

Generelles zum IIS 7.x (Setup)

Wie sich der folgenden Tabelle entnehmen lässt gibt es den IIS schon geraume Zeit:

OSIIS Version by http server headerJahr
Windows NT 4 ServerMicrosoft-IIS/4.01998 (als Teil des NT 4 Option Packs)
Windows Server 2000Microsoft-IIS/5.02000
Windows XP Microsoft-IIS/5.12001
Windows Server 2003Microsoft-IIS/6.02003
Windows VistaMicrosoft-IIS/7.02006
Windows Server 2008Microsoft-IIS/7.02008
Windows 7Microsoft-IIS/7.52009
Windows Server 2008 R2Microsoft-IIS/7.52009

Nach NT4 wurden die IISVersionen an das OSgekoppelt, d.h. höhere Versionen des IIS bekomme ich nur mit Installation einer aktuelleren Version von Windows. Einzelne Installer des IIS für frühere Betriebsystemversionen stehen nicht zur Verfügung. Beim Upgrade eines OS auf eine hörere Version wird auch der IIS mit upgegradet.

Aktuell sind die Versionen 7.x welche es sowohl fürClient als auch ServerBetriebsysteme gibt, der Vorteil: Entwickler haben keinenVersions- und (vernachlässigbaren) Feature-Bruch mehr zwischen den Entwicklungs- und Betriebs-Webserver mehr.

Die Installation von IIS7.x auf dem Client OSunterscheidet sich nur geringfügig von der Installation des IIS7.x auf Windows Server 2008 (R2).

Während man beim Client OS den IIS7.x über die Option Windows Features installiert,

Turn Windows features on or off dialog

Bekommt man beim Server OS den IIS7.x über den Server Manager auf das System. Beim Server OS lassen sich die Internet Informationsdienste einfach durch Auswahl der WebserverRolleinstallieren.

Windows Server 2008 Server Manager window

Das Setup ist in beiden Fällen deutlich granularer als im Vergleich zu früheren Versionen des IIS, so hat der IIS7 (Windows Server 2008) mehr als 40 auswählbare Sub-Features (bei IIS6 waren es < 20).

Windows Server 2008: Select Role Services dialogKontrolle ist gut, auch in punkto Sicherheitist weniger installierte Komponentenmehr, aber…

"…welche Standard Rollendienste für den IIS brauch ich denn?"

It depends, deswegen der Tipp für die, die es genau wissen wollen|müssen: Eine Beschreibung der einzelnen Features werden im Installations Dialog angezeigt, bzw. können über die eingebaute Hilfe abgefragt werden:

Windows Server 2008: Select Role Services help

Ebenfalls muss man keine Angst haben abhängige Komponenten zuvergessen – das Setup ist so schlau und zieht die Abhängigkeiten automatisch mit.

 

Ein "Serviervorschlag"

„Was oder welche Serverrollendienste sollte ich also bei einer Standardinstallation auswählen? Hier meine Auswahl in Anlehnung an folgenden link“:

  

Weitere Infos und beschreibungen zu den Einzelnen Features finden sich hier

Wer keine Lust hat zu klicken hier die Befehlszeilenvariante:

start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-Security;IIS-BasicAuthentication;IIS-URLAuthorization;IIS-IPSecurity;IIS-RequestFiltering;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn 

Wichtig: Kein Stress wenn man was vergessen hat. Es lassen sich jederzeitFeatures im Server Managernachträglichhinzufügen oder entfernen.

Weiterer Vorteil von Windows Server 2008: Die für die IIS installation notwendigen Dateien sind bereits bei der Installation des OS mit auf dem System abgelegt worden, d.h. das Installieren des IIS oder aktivieren von Sub-Features braucht keine Installations DVD.

 

Die weitere IIS7.x Installation in Bildern:

Windows Server 2008: Select Role Services dialogWindows Server 2008: Confirm Installation Selections dialogWindows Server 2008: Progress dialog

Windows Server 2008: Confirm Installation Results dialog

Windows Server 2008 Server Manager - selected Web Server Role window

IIS installieren für die Befehlszeilen-Liebhaber

Ohne GUI, für unattended Setups, nützlich für konsistente Massen-Installationen -Hier die Befehlszeilen Alternativen:

Tool

OS Variante / Edition

Beschreibung

pkgmgr.exe

Windows Vista, Windows 7, Windows Server 2008 (R2)

Windows Package Manager

Cmd line Werkzeug zum Installieren,Enfernen und Updaten von Windows Paketen. Seit Vista wurde auf ein Image basiertes Setup umgestellt in dem Funktionalitäten in Komponenten paketiert wurden.Sehr mächtig siehe Package Manager Technical Reference

Beispiele:

Installing IIS 7.0 from the Command Line

servermanagercmd.exe†)

†) The ServerManagerCmd.exe command-line tool has been deprecated in Windows Server® 2008 R2.

Windows Server 2008 (R2†))

Nicht Server Core

Command line Variante des Server-Manager unter Windows Server® 2008. Wird eingestampft daher nicht mehr verwenden -> die Powershell übernimmt die Funktionalitäten – s.u.

Beispiele: Install Typical IIS Workloads

Powershell 2.0 mit den Cmdlets:

Add-WindowsFeature,

Get-WindowsFeature,

Remove-WindowsFeature

Windows Server 2008 R2

Windows PowerShell-Cmdlets für den Server-Manager

Ersatz für servermanagercmd.exe

Commandlets müssen vor der Verwendung über Befehl:

import-module servermanager

importiert werden.

Siehe: Server-Manager-Befehle (Übersicht)

 

Installation testen:

Am einfachsten mittels Aufruf der Default-Seite im lokalen Browser mit http://localhost , das Ergebnis sollte so aussehen:

IIS 7 Default Document

 

Ein erster Blick auf die IIS-Verwaltungskonsole (inetmgr) und Starten | Stoppen der Website

Die IIS Verwaltungskonsole basierend auf der Microsoft Management Console (MMC) erreicht man entweder über Start->Administrative Tools->Internet Information Services (IIS) Manager:

Icon Internet Information Services (IIS) Manager

Oder direkt über Eingabe von inetmgr im Suchfeld bei Start. Ein erster Blick auf die Console lässt erahnen dass es zahlreiche Konfigurationsmöglichkeiten für den IIS gibt:

Internet Information Services 7 (IIS) Management Console (aka inetmgr)

Der IIS ist so konzipiert dass er alle Konfigurationsänderungensofortanwendet, d.h. in der Regel keinDurchstarten der Webdienstenotwendig ist. Für diejenigen, die dennoch die den IISmanuelldurchstarten möchten z.B. gerade wenn man am Anfang viele Dinge durchspielt ist iisreset das wichtigsteKommando:

C:\Users\Administrator>iisreset

 

Attempting stop...

Internet services successfully stopped

Attempting start...

Internet services successfully restartedarted

2x Sanity Check?! oder Nichts vergessen?

1. Der Microsoft Baseline Security Analyzer (MBSA)

Mit dem MBSA Version 2.1 (Stand 11.06.2010) Tool läßt sich einfach der Sicherheitsstatus des Servers auch nach IIS und SQL Gesichtspunkten hin überprüfen. Den MBSA gibt’s als separaten Download.

Ein Scan Ergebnis sieht etwa so oder ähnlich aus:

MBSA Version 2.1 Scan Result Umfassender als der BPA (s.u.) so werden u.a. Dinge überprüft wie z.B. ob die interne Firewall verwendet wird, Ablaufenden Kennwörter verwendet werden und wie Berechtigungen auf wichtige SQL Server Verzeichnisse gesetzt sind.

2. Der Best Practice Analyzer (aka BPA) ist im Server Manager ab Windows Server 2008 R2 zu finden.

Anhand von Regeln kann man sich die Konfiguration von installierten Rollen (auch des IIS) überprüfen lassen. Geprüft wird auf Sicherheit und Performanz. Derzeit gibt es noch nicht allzuviel was geprüft wird -schaden kanns aber auch nicht:

Windows Server 2008 R2: Best Practice Analyzer (aka BPA) in Server Manager showing Scan Result

 

 Web Platform Installer (aka WebPI) IconWeb Platform Installer - der „IIS Paketmanager“

„Das wichtigste zum Schluss oder wie geht es weiter?“

Der Web Platform Installer (kurz WebPI) hilft mir u.a. Web-Anwendungen in wenigen Schritten einfach zu installieren (siehe blogpost).

Und nicht nur das sondern:

  • informiert mich über Neuerungen und interessante Apps für den IIS.
  • hilft mir Abhängigkeiten von Webanwendungen und Frameworks zu erkennen und installiert diese.
  • ist quasi „Windows Update“ für manche IIS Erweiterungen.

Web Platform Installer (aka WebPI) Application

Kurz: WebPI: Spart Zeit und Nerven.


IIS für Einsteiger Teil 2: Erste Schritte nach der Installation

$
0
0

Was sind die wichtigsten Verzeichnisse und Dateien für den IIS, welche Benutzerkonten werden angelegt bzw. verwendet und wie heißen die IIS-Dienste welche bei der Installation des IIS7 erzeugt werden:

Wichtige Verzeichnisse und Dateien.

C:\Windows\System32\inetsrv

Hauptverzeichnis des IIS beeinhaltet z.B. die Dateien zur IIS Konfiguration, Verwaltung (z.B.MMC), IIS-Module, Executables für die IIS Dienste.

 

C:\Windows\System32\inetsrv\config\applicationHost.config

ApplicationHost.config ist eine editierbareXMLDatei welche die Root-|Hauptdatei des IIS 7.0 Konfigurationssystems darstellt. Sie beeinhaltet Definitionen für alle Websites , Anwendungen, virtuelle Verzeichnisse und Anwendungspools , sowie globaleStandards für die Web-Server -Einstellungen. Die Konfiguration sollte in regelmässigen Abständen gebackupt werden, z.B. mit dem Commando:

C:\Windows\System32\inetsrv>appcmd add backup

BACKUP object "20100623T150732" added

Die Backups landen im Verzeichnis: C:\Windows\System32\inetsrv\backup

Mehr unter Introduction to ApplicationHost.config und Arbeiten mit Konfigurationsdateien in IIS 7.0

 

Web.config

Der IIS erlaubt das Delegieren von Einstellungen. D.h. es können IIS Einstellungen außerhalb der applicationHost.configüberschrieben | modifiziert werden, um das Verhalten des IIS auf z.B. Website-, Anwendungs- und Verzeichnis-Ebene zu verändern. Beispiel (s.u.): Caching für einen Untordner deaktivieren. Die Einträge werden in eine web.config Datei geschrieben und im selben Order der Webinhalte abgelegt (i.d.R).

IIS7: feature delegation sample - caching settings are stored in local web.config file

 

Inetpub-Verzeichnis

Das C:\inetpub Verzeichnis ist das Lese- und Schreibverzeichnis des IIS. Es enthält folgende Unterverzeichnisse:

 

Ordner

Beschreibung

IIS7: inetpub folder extended

C:\inetpub\AdminScripts

VB Skript zur Administration der IIS Vorgängerversion (IIS6) - wg. Kompatibilität - kommt mit den „IIS 6 Scripting Tools"

C:\inetpub\custerr

Enthält die Fehler-Seiten welche der IIS im Fehlerfall (z.B. File not found 404) dem Websiten Besucher schickt. Unterstützt Mehrsprachigkeit. Mehr unter How to Use HTTP Detailed Errors in IIS 7.0

C:\inetpub\history

Sicherheitsnetz: Die IIS Konfiguration wird automatisch bei Änderungen gesichert. Ermöglicht den „rollback" zu einer früheren funktionierenden Konfiguration falls Fehler bei Einstellungen gemacht wurden.

C:\inetpub\logs

Ordner für IIS Log-Dateien aller Art, u.a. Web Zugriff- Log-Dateien und Fehlerlogs

C:\inetpub\temp

Zwischenspeicher-Verzeichnis u.a. um komprimierte Web-Dateien vorzuhalten oder für bereits kompilierte ASP.NET Dateien

C:\inetpub\wwwroot

Beherbergt das Verzeichnis für die IIS7 Default Web Seite.

 Anm.: Standardmäßig wird der Inetpub Ordner auf der Systempartition installiert. Aus Sicherheitsgründen mag es evtl. Sinn machen diesen Ordner zu Verschieben siehe hierzu: IIS7: Moving the INETPUB directory to a different drive

 

Welche Dienste bringt die IIS Installation?

Dienstname

Prozessname

Beschreibung

Application Host Helper Service (AppHostSvc)

svchost.exe -k apphost

(C:\Windows\system32\)

Verantwortlich u.a. für automatischeKonfigurationssicherung. App -Pool -Konto -Mapping. (-> C:\inetpub\history)

Sinnvoller Dienst.

IIS Admin Services

inetinfo.exe

(C:\Windows\system32\inetsrv\)

Für Kompatibilität: Bestandteil der „IIS6 Management Kompatibility" Features. Verantwortlich für das schreiben in das „alte" IIS6 Konfig-System „metabase.xml". Nur erforderlich wenn der Windows SMTP Dienst oder der „alte" FTP-Dienst betrieben wird (also vor FTP7.5).

Web Management Service (WMSVC)

wmsvc.exe

(C:\Windows\system32\inetsrv\)

Ermöglicht die remoteVerwaltung des IIS7 (via https). Nicht gestartet bei Default.

Windows Process Activation Service (WAS)

svchost.exe -k iissvcs

(C:\Windows\system32\)

VerwaltetAnwendungs-PoolKonfiguration und Web-Arbeitsprozesse (w3wp.exe) und startet diese ggf. (Prozess Aktivierung). Dieser Service ist für den IIS unerlässlich! Benötigt auch für WCF Anwendungen.

World Wide Web Publishing Service (W3SVC)

svchost.exe -k iissvcs

(C:\Windows\system32\)

Konfiguriert und updated den HTTP.sys. Informiert den WAS wenn eine http Anfrage eintrifft. Sammelt PerformanceCounter für Websites.Dieser Service ist für den IIS unerlässlich!

 

Wichtige IIS7 Benutzer Konten & Gruppen:

Die unten aufgeführten Benutzerkonten benötigen Rechte auf die Ordner mit Website Inhalten siehe hierzu Secure Content in IIS Through File System ACLs

Name

Typ

Bedeutung | Verwengungszweck

IUSR

 Siehe Understanding Built-In User and Group Accounts in IIS 7

Benutzer

Der IIS greift standardmäßig unter diesen Benutzerkontext für anonyme Website Besucher auf html Dateien zu.

IIS_IUSRS

 Siehe Understanding Built-In User and Group Accounts in IIS 7

Gruppe

Webseiten verrichten ihre Arbeiten auf dem System in w3wp.exe Prozessen und sind, da i.d.Regel mehrere w3wp.exe's, voneinander isoliert (Prozessisolation).

Die w3wp.exe Prozesse können mit verschiedenen Benutzern betrieben werden um die Isolation der Seiten durch unterschiedliche Benutzerrechte weiter zu erhöhen (z.B. durch unterschiedliche Rechte für w3wp.exeUser1 auf Verzeichnis X zu w3wp.exeUser2 auf Verzeichnis Y ).

Benutzer welche dieserGruppe zugeteilt sind haben die notwendigen Rechte auf Dateien und Systemressourcenum für den IIS als Anwendungs-Pool Identität (und damit w3wp.exe User) zufungieren.

ApplicationPoolIdentity z.B. "IIS APPPOOL\DefaultAppPool"

 Mehr dazu unter Application Pool Identities

Benutzer

Neuer Benutzeraccount , eingeführt (für IIS7.x) ab SP2 für Windows Vista und Windows Server 2008.

Ab diesen SP Stand können Application Pools je unter einer eigenen quasi dynamisch für ihn erzeugten Identität laufen. Vergibt man Zugriffsrechte auf Ordner pro Application Pool Identität, erreicht man eine einfacheIsolation der Application Pools untereinander und kann somit Websites voneinander sicher abgrenzen.

Ist automatisch Mitglied in der IIS_IUSRS Gruppe.

Sollte man sich ansehen grade wenn man Isolation von mehreren Websiten auf ein und demselben System sicherstellen muss (z.B. in HostingSzenarien bzw. BetreibenvonWebsitesvonDritten)

 

Jetzt geht’s los – „Die erste Webseite.“

Start -> Eingabe von „inetmgr" öffnet die IIS Verwaltungskonsole. Wir wählen die Default Web Site aus und gelangen über einen rechten Mouseklick + Explore in den für die Website konfigurierten Inhalts-Ordner. Wir tauschen die vorhandenen Dateien gegen eine Beispiel Site bestehend aus statischen Inhalten (Html, Bilder, Stylesheet u.ä):

IIS7: Exchanging the contents of the default website 

Die Beispielseite finden Sie hier zum download.

Zum Anzeigen der Seite im Browser wählen wir die Option „Browse" vom Action-Menü:

IIS7: browse web site

Der Internet Explorer startet und wir bekommen wahrscheinlich folgende Fehlermeldung:

403.13 error when no default document configured and directory browsing is disabled

Grund für diese Fehlermeldung ist:

Der Besucher hat ein Verzeichnis angesurft (siehe URL http://localhost/), daher wird versucht dem Besucher eine Start Seite (z.b. index.htm) zurückzuspielen. Dazu hat derIIS eine Liste an DefaultDokumenten (aka Webserver directory index), die definiertwelcheDateieneinerSeiteals mögliche StartseiteninBetrachtkommen. Findet der IIS im Verzeichnis keine Datei welche in der Liste aufgeführt wird versucht er das Verzeichnis als Ganzes aufzulisten, da dies aus Sicherheitsgründen standardmäßig untersagt ist bekommen wir die Fehlermeldung 403 Forbidden.

Abhilfe: Wir teilen dem IIS mit dass er die Seite start.html in die DefaultDocumentListeaufnehmen soll:

Default Web Site auswählen -> Doppelklick auf Default Document -> Add -> start.html

 IIS7: configuring a default document (aka directory index)

Anm.: Dieser Eintrag wird in eine lokale (also im Ordner der Website) web.config Datei geschrieben, d.h. man hätte auch die Einstellung direkt mit einem Texteditor machen können. Das ist kein absonderlicher Weg und dazu ist keinNeustartderWebsitenotwendig - sondernd der IIS reagiert automatisch Änderungen in der web.config Datei. Warum?:  Damit haben Entwickler welche z.B. nur Dateien per FTP hochladen können (und keinen anderen Zugang zu Verwaltungstools haben) dieMöglichkeit dem WebserverEinstellungenfür die eigeneWebsite selbst zu regeln.

Greifen wir nun auf unsere Website mit http://localhost/ zu, erscheint folgende gewünschte Ansicht:

sample site 1

 

„Noch eine Website anlegen!“

Auf einem IIS lassen sich natürlich mehrereWebsites anlegen. Die Frage „Wieviele?" läßt sich nicht generell beantworten, da dies davon abhängig ist wiestark die Websites den Serverbeanspruchen. Soviel sei jedoch gesagt, bei Internet Service Providern können das schon mal hundertebis wenige tausende sein.

Es gibt 3 Parameter welche eine IIS-Website eindeutig bestimmen: Die IP Adresse, den Port und Host Namen. Das Triplet IP:Port:Hostname wird als Binding bezeichnet:

Binding Parameter

Beispiele

Bedeutung

IP Adresse

All Unassigned  oder *  Alle auf dem Server vohandenen IPs

192.168.2.1 IPv4  Adresse

2a01:110:8:f001:200:5efe:65.53.236.86 Ipv6 Adresse

Die IP ist quasi die ‚Telefonnummer' des Servers, davon kann ein Server mehrere haben. Einzelne Websites können auf eine, mehrere oder alle IP Adressen ‚hören'.  Egal ob Ipv4 oder Ipv6.

Port

80 Standardport für http

443 Standardport für https

Oder andere

Die ‚Durchwahlnummer'

I.d. Regel würde man im Browser den Port mit bei der URL angeben z.B. http://www.microsoft.com:80 macht kein Mensch - außer wenn kein Standardport verwendet wird (z.B. AdministrationsSite welche nicht für jedermann gleich sichtbar sein soll)

Host Name

www.microsoft.com  Fully Qualified Domain Name

bfrank7 Host Name

Kann ich bitte den Klaus sprechen?":

Beim Aufruf von http://www.microsoft.com im Browser wird in einem Teils des Nachrichtenkopfes der http Anfrage dem sog. Host Header mit dem String „www.microsoft.com"  geschrieben.  Der IIS wertet diesen Header aus leitet die Anfrage an die entsprechende Website weiter. D.h diverse Websites können dieselbe IP haben müssen aber unterschiedliche Hostnamen haben. Als Host Header funktionieren FQDN's (Internet). Im Intranet finden auch Host | Maschine-Namen Verwendung.

Vorsicht: Host Namen lassen sich nur mit Einschränkung für https verwenden. Siehe dazu:SSL certificates on Sites with Host Headers

Bei der Erstellung von mehreren Websites auf einemIIS ist darauf zu achten, daßdieBindingssichvoneinanderunterscheiden. Ansonsten läßt der IIS die Website erst gar nicht starten, z.B.:

  IIS7: Error message cannot start website

 

Mögliche Konstellation von mehreren Websites auf einem IIS:

Konstellation

Beispielszenarien

Gleiche IP, gleicher Port und unterschiedlicher Hostname

Häufig anzutreffen auf Internet Webservern mit einer IP auf dem mehrere unterschiedliche Domains gehostet sind, welche alle über den http Standardport angesprochen werden sollen.

Gleiche IP, unterschiedlicher Port  und gleicher (oder kein) Hostname

Seltener anzutreffen, gut zum mal schnell testen. Die Ports müssen explizit in der URL im Browser angegeben werden z.B. http://www.xyz.de:8080 und http auf nicht Standardports werden ggf. von Firewalls blockiert bzw. müssen explizit erlaubt weren.

Unterschiedliche IP, gleicher Port, und gleicher (oder kein) Hostname

Z.B. Wenn mehrere Websites auf einem Server via verschlüsseltem https erreichbar sein müssen  (z.B. mehrere Internet shops auf einem Server)

Anm.: Bei Verwendung von https machen Hostnamen nur im Ausnahmefall Sinn. Siehe dazu: SSL certificates on Sites with Host Headers

 

Wir erstellen nun eine 2te Website die sich zur 1sten bei im Port (80 vs. 8080) unterscheidet. Default Web Site auswählen -> rechter Mouseklick auf Sites  -> Add Web Site -> Folgende Einstellungen:

Site name: myothersite

Physical path: c:\webs\myothersite

Port: 8080

 IIS7: add a 2nd web site

Die neu erstellte myothersite bekommt die ID 2 zugewiesen und ist bereits gestartet. Man beachte, daß als Website Verzeichnis ein neu angelegter Ordner (c:\webs\myothersite) angegeben worden ist.

Dieser Ordner wird mit Inhalten gefüllt (Beispiesite download hier):

 IIS7: exchange content for second website 

Und bekommt abschließend noch die für den IISnotwendigenBenutzerrechte:

Jeweils Read & Execute für den Benutzer IUSR und die Gruppe IIS_IUSRS auf den Ordner mit den Web-Inhalten:

 IIS7: IUSR Permissions for a website folder

Ein Aufruf von http://localhost:8080/im lokalen Internet Explorer liefert:

 sample site 2

Damit haben wir erstmal was es braucht um mehrereanonymeWebsites auf einerIIS Installation einzurichten. Weitere Einstellungen des IIS gibt es in nachfolgenden Einträgen.

IIS für Einsteiger Teil 3: IIS Arbeitsweise verstehen: Anwendungspool, Arbeitsprozess und Co.

$
0
0

In den beiden vorangegangen Kapiteln haben wir den IIS installiert und 2 Beispielwebseiten angelegt. Nur wer oder welcher Windows Prozess ist für die Abarbeitung der http-Anfragen auf die beiden Websites verantwortlich?

Für die Verarbeitung einer Http-Anfrage sind mehrere Stellen des IIS verantwortlich, den Administrator und Entwickler sollten jedoch besonders die sog. Arbeitsprozesse interessieren. (siehe Introduction to IIS 7 Architecture)

Warum sind Arbeitsprozesse interessant?

Weil ein Arbeitsprozess (w3wp.exe) http Anfragen verarbeitet und die dazu passende Antwort erzeugt. Verarbeiten heißt z.B. einen Benutzer authentifizieren, Inhalte (html, jpg, etc.) von der Festplatte | Cache holen oder ASP.NET bzw. PHP Code Ausführen lassen und das Ergebnis an den Anfrager zurücksenden.

Was ein Arbeitsprozess tut um Anfragen zu bearbeiten lässt sich konfigurieren und anprogrammieren.

Über die IIS Management Konsole kann ich einsehen welche http Anfragen gerade pro ausgeführten Arbeitsprozess ausgeführt werden:

Auf einem IIS sind in der Regel mehrere Arbeitsprozesse aktiv, wie viele ist Konfigurationssache.

Warum brauche ich mehrere Arbeitsprozesse?

Das Konzept der Arbeitsprozesse ermöglicht Websites oder Teile von Websites voneinander zu isolieren, so können z.B. 2 Websites in ihren eigenen w3wp.exe's laufen und unterliegen damit der Prozessisolation des Windows OS. Zusätzlich lassen sich den Arbeitsprozessen jeweils unterschiedliche Benutzerkonten zuweisen, dadurch kann man mittels NTFS Berechtigungen Datei und Ordnerzugriff einschränken.

Warum sollte ich isolieren?

Das erhöht die Stabilität, weil Website X auch dann noch antwortet wenn Website Y abgestürzt ist.

Troubleshooting wird einfacher, weil man sich peel-the-onion-mäßig an den Problemteil einer Website heran-‚isolieren' kann.

Sicherheit wird erhöht indem man unterschiedliche Accounts für die Arbeitsprozesse verwendet und den Arbeitsprozessen damit nur NTFS Rechte auf den eigenen Webordner gibt.

Verhalten | Leistung von Websites wird planbarer, weil sich die Zuweisung von CPU- und Speicher- Ressourcen auf die Arbeitsprozesse steuern lässt und man kontrollieren kann was passiert wenn Limits überschritten werden. (mehr dazu Verwalten von Anwendungspools in IIS 7 und Using WSRM to manage IIS 7 AppPool CPU Utilization)

 

Wie isoliere ich mit Arbeitsprozessen?

Die Arbeitsprozesse werden im IIS über Anwendungspools (Application Pool) angelegt und verwaltet:

In einem Anwendungspool ist definiertwelche (Teile einer) Websitevon welchem Arbeitsprozess(en) ausgeliefert werden– letztlich heißt das, dass ein Anwendungspool definiert wer die Bearbeitung einer (oder mehrerer) URL(s)übernimmt.

Um z.B. eine Website nun einemAnwendungspoolzuzuordnen sind folgende Schritte notwendig:

IIS Manager -> Sites -> Website auswählen ->Advanced Settings -> "Application Pool" drop down box auswählen -> aus einer Liste von Anwendungspools auswählen.

In diesem Beispiel wurde eine ganze Website dem Anwendungspool "myothersite" zugeordnet, alternativ könnte man nur Teile z.B. ein Unterverzeichnis einem Anwendungspool zuordnen. Voraussetzung ist, dass das Unterverzeichnis (wie z.B. unten "shop") eine Anwendung (im Sinne des IIS) ist:

Ordner welche als IIS Anwendungen markiert sind erhalten in der Ansicht eine kleine Weltkugel.

Was ist eine IIS Anwendung?

Eine Site ist für den IIS ein Container in dem Anwendungen und (virtuelle) Verzeichnisse mit Inhalten (*.html, *.css, *.gif,....) und Code (ASP.NET Seiten o.ä.) liegen. Auf eine Site kann von außen z.B. über http zugegriffen werden.

Ein (virtuelles) Verzeichnis ist für den IIS ein Ort (Pfad) wo er Inhalte einer Website findet. Dabei wird der Name des Verzeichnisses Teil der URL der Website über die von ‚draußen' auf die Inhalte zugegriffen werden kann (z.B. http://www.meinewebsite..../gallery/).

Eine IIS Anwendung (aka application) definiert wie ein Verzeichnis eine Gruppe von Dateien die Inhalte einer Website liefert - zusätzlich kann für eine Anwendung noch die Zugehörigkeit zu einem Anwendungspool definiert werden.

Anm.: D.h. durch ‚Aufspalten' meiner Website in mehrere Anwendungen wäre ich in der Lage diese Website durch mehrere Anwendungspools ausliefern zu lassen.

(Mehr dazu unter Understanding Sites, Applications, and Virtual Directories on IIS 7)

 

Welche Websites (oder Anwendungen) sollten in einen Anwendungspool isoliert werden?

Persönliche Meinung des Autors: "Jede Website sollte im eigenen Anwendungspool mit eigener Identität – idealerweise der Application Pool Identity – laufen." Das ist übrigens auch das Standardverhalten beim Neuanlegen einer Website beim IIS7 unter Windows 7 oder Windows Server 2008 R2.

Um Ressourcen zu sparen mag man möglicherweise davon abrücken und mehr Websites in einen Anwendungspool packen, jedoch in folgenden Fällen würde(müsste) ich immer isolieren:

Szenario

Link zur Vorgehensweise

Websites mit Problemen (z.B. Memory Leaks), Experimenteller oder Beta Code sollten in eigenen Application Pools laufen.

Verwalten von Anwendungspools in IIS 7

Websites von unterschiedlichen Leuten (gehostet auf einem IIS) bei denen sichergestellt werden soll dass sie nicht auf die Inhalte des anderenzugreifen (lesen, schreiben, löschen) können.

Websites welche unterschiedliche .NET Framework-, PHP- Versionen o.ä. verwenden.

s.o.

Wenn die IIS-Anwendung einen höher privilegierten Benutzerkontext braucht.

Specify an Identity for an Application Pool (IIS 7)

Wenn IIS-Anwendungen zu IIS 6 kompatibel sein müssen bzw. wenn ASP.NET 1.1 auf IIS7 verwendet werden soll

Was sind jetzt die wichtigsten Einstellungen für einen Anwendungspool?

Sehen wir uns dazu die Einstellungen des Anwendungspools "myothersite"an:

IIS Manager -> Application Pools -> doppelclick auf "myothersite":

Der Name eines Anwendungspools muss eindeutig und sollte aussagekräftig sein. Pro Anwendungspool kann nur eine Version des .NET Frameworks geladen werden (Evtl. mit dem Entwickler abklären, welche Version des .NET Frameworks benötigt wird).

Der Managed pipeline mode bestimmt welche Architektur im Arbeitsprozess (w3wp.exe) genommen wird:

  • classic: IIS 6 kompatibel
  • integrated: IIS7 Architektur

Der Managed pipeline mode beeinflusst wann .NET Module aufgerufen werden und das hat Auswirkung wie http Anfragen abgearbeitet werden.

Persönliche Meinung des Autors:"Ich würde Anwendungspools immer im Integrated Pipeline Mode betreiben, weil: neu, verständlicher, erweiterbarer und nur bei Problemen den Classic Modus verwenden"

(Mehr dazu Introduction to IIS 7 Architecture und ASP.NET Integration with IIS 7)

 

Anwendungspool-Identität und Recycling

Für Mehr Isolation/Sicherheit und Stabilität sollte man noch 2 Einstellungen von Anwendungspools kennen:

IIS Manager -> Application Pools -> "myothersite" auswählen -> Advanced Settings auswählen:

Identität

Der Benutzerkontext unter dem der Arbeitsprozess läuft kann ein Built-in Account wie z.B. Network Service, die ApplicationPoolIdentity oder ein anderer Windows Benutzer sein.

Was ist eine ApplicationPoolIdentity?

Seit Windows 7 (oder Windows Server 2008 R2, bzw. ab Windows Server 2008 Service Pack 2) kann der IIS7 pro ApplicationPool einen virtuellen Benutzer verwenden – die sog. ApplicationPoolIdentity. Dieser Benutzer trägt den gleichen Namen wie der Anwendungspool.

Vorteile von ApplicationPoolIdentities:

  • Haben nur die minimal notwendigen Rechte
  • Werden vom IIS automatisch angelegt (d.h. kein Eingeben von Passwörtern: kein Vergessen &Verfallen)
  • Ich kann NTFS Rechte pro ApplicationPoolIdentity vergeben z.B. um Zugriff auf Web-Verzeichnis einzuschränken – Isolation.

Beispiel: Anwendungspool "myothersite" läuft unter der ApplicationPoolIdentity im Taskmanager sehe ich den Arbeitsprozess w3wp.exe dessen Benutzername "IIS AppPool\myothersite" ist:

(mehr dazu Application Pool Identities)

Recycling

Standardmäßig wird der Arbeitsprozess(e) eines Anwendungspools nach 29h (=1740 min) neu gestartet ("Regular Time Intervals"). Das gibt bis dahin vergebenen Speicherwiederfrei und initialisiert die Webanwendung. Dabei wird ein neuer Arbeitsprozess gestartet, dieser bekommt neue eingehende http-Anfragen zugewiesen. Der ‚alte' Arbeitsprozess(e) darf seine verbleibenden Anfragen abarbeiten und wird dann beendet. D.h. das Recyclen geht ohne Ausfallzeit und der Websitebesuchermerktdavonnichts (=Overlapped Recycle). Um Ressourcen zu sparen wird ein neuer Arbeitsprozessimmernurdanngestartetwenn auch wirklich http-Anfragen dafür anliegen– d.h. die erste http Anfrage nach 30minLeerlauf auf einen Webserver könnte wegen des Startups ein bisschen länger dauern. (Abhilfe siehe:Using the IIS Application Warm-Up Module)

Ist die Webanwendung gut programmiert, geht bewusst mit Ressourcen um und ist über einen längeren Zeitraum stabil dann spricht nichts dagegen das Zeitraum für das Recycling zu verlängern oder ganz abzuschalten.

(mehr unter Verwalten von Anwendungspools in IIS 7)

 

Kurz zusammengefasst:

Der IIS bearbeitet http-Anfragen durch die Arbeitsprozesse (w3wp.exe).

(Teile von) Websites lassen sich über die Arbeitsprozesse voneinander isolieren für mehr Stabilität.

Arbeitsprozesse und Stabilitäts-Funktionalitäten werden im IIS über Anwendungspools konfiguriert.

Weiterführend empfehle ich Introduction to IIS 7 Architecture zu lesen.

Wer einfach mal sehen möchte worauf ein w3wp.exe unter welchem Account zugreift sollte mit dem Process Monitor spielen – auch für Troubleshooting zwecke ganz hilfreich:

IIS für Einsteiger Teil 4: Authentifizierung und Autorisierung mit dem IIS

$
0
0

Warum ist das wichtig?

Jeder IIS Administrator sollte das prinzipiell verstanden haben, da dieses Thema, wenn falsch konfiguriert, immer wieder nette Probleme, Fehlermeldungen, nervenden Passwortabfragen oderSicherheitslöchernverursacht.

Das eigentliche Anwendungsszenario ist einfach:

Ich möchte meine Websites oder Teile einem eingeschränkten Besucherkreis zugänglich machen – alle anderen sollen ‚draußen' bleiben.

Kurz: Wer darf was auf meiner Website sehen – und wie gehe ich vor.

Nicht authentifiziert - oder wer ist die Anonymous User Identity (IUSR)?

Im IIS ist standardmäßig ist die anonymeAuthentifizierungaktiviert. Diese ermöglicht es allen Website Besuchern auf Inhalte zuzugreifen ohne dass eine AbfragevonBenutzername und Passwort im Clientbrowser erfolgt – also quasi anonym. Für das Dateisystem jedoch erfolgt so ein Zugriff unter dem Benutzerkontext der Anonymous User Identity des "IUSR" Accounts. Im Hintergrund impersonifiziert der IIS nämlich anonyme Browseranfragen auf den IUSR Account – da dieser Standardmäßig als Anonymous User Identity eingetragen ist:

Der IUSR (Default Anonymous User Identity) ist ein Benutzerkonto das bei der Installation des IIS7 angelegt wird. Daher sollte der IUSR Benutzer NTFSBerechtigungen auf den Ordner mit den Inhalten für Ihre Website haben z.B. Read / Execute:

Fehlen der Anonymous User Identity (Default: IUSR) die Rechte auf die angeforderte Datei (Seite) wird ein "Access Denied" = http Status 401 zurückgegeben. Der Website Besucher wird dann, je nach Konfiguration des IIS, nach Benutzernamen und Passwort gefragt (Password Prompt (s.u. links)| Login Seite) oder bekommt eine Fehlerseite (s.u. rechts), falls keine alternative Authentifizierungsmethode aktiviert ist:

 

Authentifizierung oder "Wer bin ich?"

Will ich Jedermann Zugriff auf meine Website geben, dann muss ich lediglich dafür sorgen dass die Anonymous Authentication beim IIS aktiviert ist:

und dass die eingetragene Anonymous User Identity (Default: IUSR) Read / ExecuteNTFSRechteauf die Inhalte hat.

Möchte ich im Gegenzug nur bestimmte Besucher auf meine Website lassen, dannbrauche ich eine Authentifizierung um herauszufinden wer ist der Besucher überhaupt. In der Regel passiert das über eine Benutzername- und Kennwort-Abfrage. Der IISprüft dann in der Benutzerdatenbank ob dieser Benutzername mit diesem Passwort existiert. Die Benutzerdatenbank kann sein z.B. die lokale Windows Accounts Datenbank, das Active Directory oder z.B. eine ASP.Net Membership DB. Für die ArtderAuthentifizierung stehen mir im IIS7 diverse Authentifizierungsmethoden zur Verfügung mit unterschiedlichen Vorzügen und Voraussetzungen:

 

Methode 

Wie loggt sich der Besucher ein?

BenutzerDB | Welche Accounts können verwendet werden?

Anmerkungen 

Anonymous Authentication

Kein Login (notwendig)

Active Directory (AD) oder/und lokale Windows Accounts

Default. Um anonyme Benutzer Zugriff auf die öffentlichen Bereiche Ihrer Web- oder FTP-Site zu erlauben ohne Abfrage nach Benutzernamen oder Kennwort.

Basic Authentication

Einfache Benutzer- & Passwort-Abfrage mit Dialog

AD + lokale

Kennwort und Benutzername werden nur leicht verschlüsselt übertragen. Bitte nur mit Verschlüsslung (https/SSL) verwenden! Häufig verwendet für Internet facing Websites – wird von allen gängigen Browsern unterstützt.

Forms Authentication

Login via Formularfeld auf Website

ASP.NET Membership

Häufig von Webanwendungen verwendet. Vorteil: hier liegen Benutzer z.B. in einer Datenbank welche auch in der Webanwendung einfach "wiederverwendet" werden können.

Bitte nur mit Verschlüsslung (https/SSL) verwenden, da Kennwörter übertragen werden!

Anm.: Forms Auth. kann nicht mit anderen Auth. Methoden wie z.B: Basic, Windows, Digest kombiniert werden.

Windows Authentication

Für den Benutzer i.d. Regel transparent - Authentifizierung läuft automatisch ab.

Login Dialog nur im Fehlerfall

AD + lokale

Versucht wird den gerade am Browsing-Client angemeldeten Benutzer beim Server zu authentifizieren. Sicherer als Basic Authentication da Benutzername und Passwort nicht übers Netz übertragen werden. Eher für Intranet Szenarien geeignet - Single Sign On.

Digest Authentication

Benutzer- & Passwort-Abfrage

AD 

Sicherer als Basic Authentication da Benutzername und Passwort nicht übers Netz gehen. Gut geeignet für Internet. Wird von vielen Browsern unterstützt.

Client Certificate Mapping authentication

Benutzer wird aufgefordert ein Client-Zertifikat für die Authentifizierung auszuwählen

(=Zertifikatsauswahl-Dialog)

AD 

Ordnet einem Zertifikat einen Benutzer zu. IIS frägt das Active Directory an welchem Benutzer das vorgezeigte Zertifikat zuzuordnen ist, d.h. im AD ist vorher eine Verknüpfung (User:Zertifikat) vorzunehmen. Benutzer muss Clientzertifikat auf seinem Rechner installiert haben.

Setzt eine verschlüsselte Verbindung https/SSL voraus.

IIS Client Certificate Mapping authentication

Zertifikatsauswahl-Dialog

lokale + AD

Benötigt https/SSL. Besucher braucht ein Clientzertifikat welches von einer für den IIS7 vertrauenswürdigen Zertifizierungstelle ausgestellt worden ist.

Der IIS ordnet einem (One-To-One) oder vielen (Many-To-One) Besucher-Zertifikat(en) einen Benutzer-Account zu.

Anm.: Aufgelistet sind Authentifizierungsmethoden welche Microsoft mit dem IIS 7 liefert. Es gibt Dritthersteller-Erweiterungen wie z.B. RSA Authentication Agent 7.0 for Web for Internet Information Services). Alternativ lässt sich der IIS7 einfach erweitern um z.B. eine eigene Authentifizierungsmethoden zu implementieren (siehe Developing a Module Using .NET oder Custom Basic Authentication for IIS )

Wie stelle ich nun Authentifizierung ein?

Um die Auswahl der richtigen Authentifizierungs-Methode(n) etwas zu erleichtern hier mal 2 Beispieleum den Benutzernamen des Website Besucherszuerfahren.

  1. Basic Authentication einrichten

Meiner Meinung nach die einfachste Variante eine Benutzerauthentifizierung einzurichten und mit https Verschlüsselung auch recht sicher.

  • Erstelle einen Ordner in der myothersite "authentication\basic"
  • Wähle den Ordner aus und klicke auf Authentication.
  • Deaktiviere Anonymous- und aktiviere die Basic Authentication:

Den Sicherheitshinweis nehmen wir ernst und aktiveren noch die SSL Verschlüsselung.

  • Lege ein neues Binding für den Https Port 443 für die myothersite an.
  • Wähle als Serverzertifikat das localhost Testzertifikat

(Praktischerweise hat IIS 7 sich schon selbst ein Zertifikat für Testzwecke erzeugt):

  • Erzwinge SSL für den Pfad in dem authentifiziert wird:

Die myothersite ist nach wie vor über http erreichbar, nur unser "basic" Unterordner erfordert eine verschlüsselte Verbindung, andernfalls wird ein Fehler aufgeworfen. Das bedeutet aber auch dass ich auf die Seite von nun an mit https://localhost/authentication/basic/.... zugreifen muss.

Jeder der jetzt auf die Seite zugreifen will muss sich zuvor authentifizieren:

Anm.: Der IE beschwert sich über das Testzertifikat, das sich der IIS selbst ausgestellt hat aber normalerweise von einer vertrauenswürdigen Zertifizierungsstelle (Verisign, Thawte, o.ä.) kommen sollte. Der Verschlüsselung tut das keinen Abbruch.

Nach erfolgreicher Anmeldung kann ich auf die Inhalte zugreifen. Die Benutzerinformationen können auch von einer z.B. in ASP.NET geschriebenen Seite ("Auth_User.aspx") ausgelesen werden:

Wichtig ist lediglich noch, dass der Benutzer mit dem ich mich anmelde NTFS Rechte auf die im Ordner "basic" liegenden Dateien hat.

 

  1. Windows Authentication einrichten

Die Windows Authentication Methode ist auch ohne SSL Verschlüsselung sicher zu verwenden und erfordert weniger Mouseklicks in der Konfiguration. Diese Methode ist sehr gut geeignet für Intranet Szenarien, bringt allerdings ein paar Tücken mit wenn man diese Methode auch für die Authentifizierung von Websites im Internet einsetzen möchte (siehe HTTP Error 401.1 – Unauthorized bei Verwendung von Windows Authentication). Hier kurz die Vorgehensweise:

  • Erstelle einen Unterordner "windows" im Ordner "authentication"
  • Wähle diesen aus und aktiviere unter Authentication nur die Windows Authentication:

Was ist der Unterschied?

Die Windows Authenticationerfolgt normalerweise ohneBenutzer und Kennwort-Abfrage, es wird versucht den am Browsing-Client angemeldeten Benutzer (In meinem Fall ein Domänen Benutzer) beim IIS zu authentifizieren. Dies geschieht für den Benutzer transparent. Bei dieser Autentifizierungs-Methode wird das Kennwort nicht übertragen, der IIS bekommt kein Passwort, kann dieses nicht in den Server-Variablen ablegen und deshalb zeigt die obige Seite auch nur einen leeren String an.

 

Der authentifizierte Benutzer braucht NTFS Berechtigungen auf die Datei | Ordner ("windows") damitder IIS diese ausliefert.

Autorisierung oder "Was darf ich?"

Nach erfolgreicher Authentifizierung erfolgt die Autorisierung. Hierbei bestimmen die Autorisierungs-Einstellungen den Zugriff des Besuchers auf die verschiedenenBereicheeinerWebsite.

Ich habe 2 Möglichkeiten um festzulegen worauf ein Benutzer zugreifen darf:

  1. Autorisierung mittels Ordner & Datei-Rechte

Hierzu werden einfach mittels NTFS Berechtigungen auf Basis der Benutzer-Accounts | Gruppen der Zugriff auf Dateien | Ordner erlaubt.

Beispiel: Wir erlauben nur Benutzer einer bestimmten Gruppe Zugriff auf ein Verzeichnis

  • Erstelle lokale Benutzergruppe "myothersite authenticated visitors" und füge erlaubte Benutzer hinzu.
  • Erstelle Ordner "authenticated-visitors" in myothersite.
  • Aktiviere Windows Authentication.
  • Rechter Mousklick auf "authenticated-visitors" -> Edit Permissions -> Entfernen der Anonymous User Identity und hinzufügen der "myothersite authenticated visitors" Gruppe:

Jeder Besucher der auf diesen Ordner zugreifen will muss sich authentifizieren und Mitglied der Gruppe "myothersite..." sein.

Wennichsehen möchte wer den Zugriff gemacht hat, dann kann ich das z.B. mittels

  • der IIS Log Datei:

#Software: Microsoft Internet Information Services 7.5

#Version: 1.0

#Date: 2011-04-07 07:36:04

#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username ...

2011-04-07 07:36:04 ::1 GET /authenticated-visitors/ - 8080 EUROPE\bfrank ...

  • dem Failed Request Tracing Log:

tun.

 

  1. Autorisierung mittels URL

Wem das editieren von NTFS-Rechten zu mühsam ist hat eine 2te Alternative die Zugriffsrechte festzulegen, die IIS 7 URL Authorization. Diese Variante ist einfachzubedienen und Einstellungenlassensichleicht von einer Maschine zur anderen kopieren. Die Einstellungen "Wer worauf zugreifen darf" stehen in der web.config Datei. Somit ist diese Variante ideal, wenn man z.B. auf einer gehosteten Website nur Zugriff auf die Webinhalte hat nicht aber auf die UI um NTFS Rechte zu ändern. Ein weiterer Vorteil der URL Autorisierung: Sie funktioniertauchfür Nicht-Windows Benutzer-Accounts (also Accounts die z.B. in einer ASP.NET Membership DB liegen)

Kurz: Autorisierungsregeln werden auf Basis des URL Pfads und Benutzers anstelle der zugrunde liegenden Dateisystemressource gesetzt.

Diese Variante setzt voraus, dass die "URL Authorization" Option für den IISinstalliert wurde.

("Internet Information Services" –>" World Wide Web Services" –> "Security")

Beispiel: Wir erlauben nur Benutzer einer bestimmten Gruppe Zugriff auf einen URL-Pfad

  • Erstelle einen Ordner "secure" in myothersite.
  • Wähle eine Authentifizierungs-Methode für "secure" z.B. Windows Authentication
  • In Authorization Rules:
    • "Allow All Users" löschen.
    • Allow Regel für Gruppe "myothersite authenticated visitors" anlegen.

Die Authentifizierung läuft wie gehabt. Anschließend stell das URL Authorization Modul sicher, dass der Benutzer Zugriffsrechte auf die URL http://localhost:8080/secure/... hat.

Ich würde diese URL Autorisierungsmethode derjenigen mit NTFS Rechten vorziehen, da man die Zugriffsrechteüber die IIS Konsole verwalten kann und die Vergabe der Zugriffsrechte auf URL Pfadeinfachernachzuvollziehen ist, als über NTFS Rechte – gerade dann wenn mit virtuellen Verzeichnissen gearbeitet wird (d.h. die Ordner in der URL anders heißen als der Ordner auf dem Laufwerk).

 

Anm.: NTFS Rechte muss der authentifizierte Benutzer dennoch haben um auf Inhalte zuzugreifen, allerdings kann man diese getrost ‚grob' halten weil ja die URL Autorisierung vorgeschaltet ist und eine granularere Zugriffsverwaltung ermöglicht.

 

Was passiert wenn mehrere Authentifizierungsmethoden aktiviert sind?

Werden dem Browser mehrere Authentifizierungsmethoden angeboten kann er entscheiden. Der IE wählt z.B. immer die sicherste Option (also Windows vor Basic Auth) macht aber auch keinen Fallback auf die nächstunsicherere sollte bei der Ersten die Authentifizierung fehlschlagen.

Deshalb macht es meiner Meinung nach keinen Sinn z.B. Basic Authentication und Windows Authentication gleichzeitig zu aktivieren. Denkbar wäre eher dieKombinationausAnonymousAuthenticationund einer anderen Authentication Methode: Dadurch könnten alle Benutzer auf Inhalte zugreifen auf die die Anonymous User Identity NTFS-Rechte hat und für die Inhalte wo der Anonymous User Identity die Rechte fehlen würde dann eine Authentifizierung gemacht – der Ablauf sieht vereinfacht etwa so aus:

 

Eine Authentifizierung und Autorisierung wie hier beschrieben ist nur eine Facette aus dem Bereich Webserver Sicherheit, deshalb empfehle ich Interessierten noch folgende Links:

 

Links:

IIS für Einsteiger Teil 5: FTP – oder wie lade ich Dateien auf meinen Webserver?

$
0
0
Beste Video-Qualität mit Silverlight Get Microsoft Silverlight

Das File Transfer Protocol (FTP) ist zwar nicht das neueste Protokoll, dafür aber effizient und schnell wenn es darum geht großeDateien oder vieleDateienmiteinem (Web)Serverauszutauschen.

Ein weiterer Vorteil: Viele teilweise komfortable FTP Clients (z.B. Filezilla) stehen mir kostenlos zur Verfügung. Damit lassen sich einfach z.B. die Dateien meiner Website von meinem Entwicklerrechner auf den IIS Webserver übertragen.

Der IIS versteht auch FTP zur Übertragung von Dateien. Auf dem Server werden dazu Verzeichnisse zum Publizieren freigegeben.

Was muss ich tun um FTP auf dem IIS zu ermöglichen?

Erstens sollte man sicherstellen, dass man den aktuellstenFTPDienst für den IIS 7 installiert hat. Hintergrund: Der FTP 7.5 ist erst nach Fertigstellung des Windows Server 2008 entwickelt worden. Deswegen gibt es für diese IIS/OS Version einen separaten Download. Bei Windows Server 2008 R2 ist der FTP7.5 auf der OS DVD mit drauf.

Am einfachsten überprüft man mit dem Web Platform Installer ob der aktuellste FTP Dienst schon drauf ist oder installiert ihn darüber:

 

Den FTP Dienst verwaltet man in der IIS Administrationskonsole:

Im zweiten Schritt richten wir denFTPDienstein, dazu müssen wir angeben:

  • wie ist der FTP Dienst erreichbar (z.B. IP Adresse)
  • ob die Verbindung ver-oder unverschlüsselt erfolgen soll
  • ob sich ein FTP Benutzer anmelden muss oder ob der Anonymous Benutzer ausreicht.
  • welches Verzeichnis auf dem Webserver soll via FTP erreichbar sein soll
  • welche Zugriffsrechte die Benutzer (Lesen oder/und Schreiben) haben sollen

3 Szenarien:

Man kann Verzeichnisse welche über FTP erreichbar sein sollen unterschiedlich konfigurieren. Die Verzeichnisse werden innerhalb einer FTP Site verwaltet. Ich möchte 3 Einstiegs-Szenarien vorstellen, die jeweils ihre Vor- und Nachteile besitzen:

  1. Eine FTP Site zum Publizieren in alle Websites mit einen (oder wenigen) FTP Benutzer-Konto.
  2. Eine FTP Site pro Website mit jeweils unterschiedlichen Anmelde-Informationen (Benutzername, Adresse)
  3. Eine FTP Site mit mehreren FTP Benutzer-Konten + Isolierung, d.h. Benutzer sehenjenachLoginnamen nureinbestimmtesVerzeichnis.

Diese Beispiele sollen zeigen, wie eine FTP Site grundsätzlich aufgebaut werden kann. Weitere Anpassungen und Erweiterungen sind natürlich möglich, sollen jedoch nicht Fokus sein, siehe dazu auch die weiterführenden Links.

(1) Eine FTP Site für alle Websites mit einem FTP Benutzer-Konto – keine Isolierung.

Hier die Schritte zum Einrichten der wohl einfachsten Variante. (Siehe auch Creating a New FTP Site)

In der IIS Administrationskonsole -> Rechter Mouseklick auf Sites ->Add "FTP Site":

Anschließend legen wir den Namen der FTP Site fest und geben an welches Root-Verzeichnis auf dem IIS über FTP erreichbar sein soll (in unserem Fall c:\webs):

 

Unter der Dialogseite "Binding and SSL" wird festgelegt auf welcher IP Adresse und Port der FTP Dienst für diese Website hören soll, wir nehmen hier die Standardeinstellungen.

Der FTP 7.5 unterstützt nun Verschlüsselung (FTPS). Eine Option die sehr sinnvoll ist gerade wenn man bedenkt, dass unverschlüsseltes FTP das Passwort bei der Benutzer-Anmeldung Clear-Text über das Internet schickt und mittels Netzwerk-Sniffer von Dritten mitgeschnitten werden könnte. Wer mehr Sicherheit möchte kann Verschlüsselung erlauben oder erzwingen. Wir erlauben SSL und wählen noch das selbstausgestellte Testzertifikat (hier "localhost") aus:

 

 

Im nächsten Dialog werden die Authentifizierungs- und Autorisierung-Einstellungen – also das "wer darf was über FTP" gemacht. Hier kann ich die erste Zugriffsregel festlegen:

Zunächst sollen sich Benutzer nur als Anonymous User beim FTP anmelden können (müssen also kein Passwort eingeben) – und haben nur Lese-Zugriff auf die Website.

 

Anm.: Den Lese-Zugriff des Anonymous User impersonifiziert der Microsoft FTP Dienst im Hintergrund standardmäßig auf den IUSR Account, da dieser als Anonymous User Identity für die Anonymous Authentication Methode eingetragen ist. D.h. der IUSR Account braucht Lese- Berechtigungen auf dem Filesystem für C:\Webs

 

Mit klicken auf "Finish" taucht die FTP Site in der Konsole auf und ist bereit FTP Verbindungen anzunehmen:

Über FTP ist jetzt das Root Verzeichnis (hier: C:\Webs) inklusive aller Sub-Ordner erreichbar. Wenn ich weitere Ordner freigeben möchte, dann erstelle ich ein virtuelles Verzeichnis in meiner FTP Site:

IIS Manager -> rechter Mausklick auf "FTP Site" -> Add Virtual Directory:

Der Server Ordner c:\somewhere ist damit per FTP als Verzeichnis vDir erreichbar. Im FTP Client wird dieser virtuelle Ordner standardmäßig nicht angezeigt. Ich muss den FTP Server anweisen virtuelle Verzeichnisse in Ordnerlisten anzuzeigen:

IIS Manager -> FTP Site auswählen -> FTP Directory Browsing -> aktiviere "Virtual directories" -> Apply:

Wir machen einen Test und greifen mit Filezilla einem FTP-Client (lokal) auf unsere FTP Site (lokal) zu.

Server: localhost

Benutzername: anonymous

In Filezilla ist Links die Ordneransicht auf dem "Client", Rechts: der "FTP Server. Unser vDir taucht in der Ordneransicht auf. Dateien können einfach per drag&drop (je nach Berechtigungen) kopiert werden. Wenn wir z.B. versuchen einen neuen Ordner auf dem Server anzulegen bekommen wir einen "Access denied":

Das ist auch gut so, denn schließlich handelt es sich hier um den Anonymous User, der nur Lese Berechtigungen auf den Server hat. Wenn wir bestimmten Benutzern Schreibrechte geben möchten dann muss ich auf dem IIS noch die FTP Authentifizierung aktivieren:

Wir wählen die Basic Authentication als Methode für die FTP-Authentifizierung. Jetzt müssen wir noch eine FTP-Autorisierungs / Zugriffs-Regel anlegen um z.B. den Benutzer ftpuser, Lese- und Schreib- (Read and Write) Berechtigungen für die FTP Site zu geben:

Das FTP Benutzer-Konto muss (bei Basic Authentication als Methode) auch als Windows Account existieren und die entsprechenden Ordner und Datei Berechtigungen (hier C:\Webs) haben. Den ftpuser erstellen wir uns über die Kommandozeile:

net user ftpuser * /add

Im Hintergrund impersonifiziert der Microsoft FTP Dienst ( ) bei Zugriffen in das angemeldete FTP Benutzer Konto. Deswegen braucht der ftpuser auch die erforderlichen Berechtigungen im Filesystem auf C:\Webs. Andernfalls könnte es bereits beim Anmelden, Anlegen oder Löschen von Dateien und Ordnern zu Fehlermeldungen kommen, z.B.:

530-User cannot log in, home directory inaccessible ... Error details: File system denied the access.

MKD /Neues Verzeichnis ...550-Access is denied ... Error details: File system denied the access.

RMD Neues Verzeichnis ... 550-Access is denied ... Error details: File system denied the access.

Hier zur Übersicht das Flow-Chart für das Anlegen eines neuen Ordners (bei verwendeter Basic Authentication):

 

Wir geben dem ftpuser von der Kommandozeile aus die notwendigen Filesystem-Berechtigungen (Modify) auf C:\Webs:

ICACLS c:\webs /grant ftpuser:(OI)(CI)(M)    

(Alternativ auch von über den Windows Explorer)

 

Eine Person kann nun mit einem FTP Client über das FTP Konto ftpuser von remote aus über das FTP Protokoll auf Verzeichnisse des Servers zugreifen um Änderungen vorzunehmen.

 

Anm.: Es lassen sich natürlich noch weitere Benutzer Konten anlegen und über FTP Autorisierungs-Regeln festlegen worauf diese zugreifen können.

 

Fazit:

+ Einfacher Weg einen Verzeichnisse eines Servers per FTP erreichbar zu machen.

+ gut geeignet für ein bis wenige FTP User.

- Isolation, was ein User darf aufgrund von Autorisierungsregeln.

- Websites von FTP Site getrennt. Benutzer muss navigieren um in das richtige Verzeichnis für die richtige Website zu gelangen.

 

(2) Eine FTP Site pro Website - "Per Site FTP Publishing"

Diese Methode integriert, verheiratet eine Website mit FTP. Website und FTP Einstellungen liegen beieinander und nicht getrennt in separater Web und FTP Site. (Siehe auch Adding FTP to a Web Site)

Ein Administrator muss dazu lediglich "FTP Publishing" zu einer Website hinzufügen. Dieser Vorgang lässt sich für andere Websites wiederholen und man erhält letztlich mehrere FTP Sites auf einem IIS.

Für einen reibungslosen Betrieb müssen die FTP Sites sich in den Binding-Einstellungen voneinander unterscheiden.

Der FTP Benutzer muss nicht lange in den Webordner navigieren sondern landet direkt im Verzeichnis seiner Website, das "Routing" passiert aufgrund der Anmelde-Informationen.

 

 

Wie schon unter (1) wird ein Wizard gestartet und es werden sofort die Binding-Informationen abgefragt:

Wir haben ja bereits eine FTP Site am Laufen, aber genau wie bei Websites kann der IIS auch mehrere FTP Sites haben. Voraussetzung dafür ist, dass sich die FTP Binding Informationen unterscheiden. Ein FTP Binding setzt sich analog zu einem http Binding aus IP, Port, Virtual Host Name zusammen (siehe "Noch eine Website anlegen!" in Teil 2 IIS für Einsteiger.).

Wenn wir den "Virtual Host Name" verwenden oder variieren, dann können wir mehrere FTP Sites auf einem IIS anlegen, ohne dass wir dazu zusätzliche IP Adressen brauchen (oder vom Standard-Port abweichen müssen). Für einen Server im Internet mit Domäne könnte das z.B. ftpXXX.%meineDomäne%.de sein.

Für mein Demobeispiel im Intranet nehme ich localhost. Die anderen Einstellungen bleiben die Defaults.

Unter "Authentication and Authorization" verwenden wir die gleichen Einstellungen wie bei (1), d.h.

Nur der Anonymous User kann sich FTP anmelden und hat nur Lese-Zugriff.

Ist FTP Publishing erfolgreich für die Site aktiviert erscheint im Site Icon (nach einem Refresh)ein ‚?'. Zusätzlich wird in den Bindings ein Eintrag für das FTP Protokoll hinzugefügt:

Die Verwendung von Virtual Host Names hat eine praktische Auswirkung auf den FTP Benutzer:

Für das Anmelden muss der Benutzer den Loginnamen zusammenbauen aus: "Virtual Host Name+|%PipeSymbol%+Benutzername" (z.B.ftp.contoso.com|administrator )

Vergisst man den Virtual Host Name beim Login bekommt man den Fehler:

Antwort:    220 Microsoft FTP Service

Befehl:    USER anonymous

Antwort:    530-Valid hostname is expected.

Antwort:     Win32 error: No such host is known.

Antwort:     Error details: Hostname didn't match any configured ftp site.

 

Anm.: Auch für den Anonymous User muss der Host Name vorangestellt werden. Wir melden uns mit localhost|anonymous für die myothersite an:

 

Fazit:

+ Web- und korrespondierende FTP-Site liegen beieinander – lästiges Navigieren fällt weg.

- gesamte FTP Einstellungen verteilt auf mehrere Sites.

- FTP Benutzer muss sich noch zusätzlich zum Login noch die FTP Verbindungseinstellungen merken.

 

(3) Eine FTP Site mit FTP Benutzer-Konten-Isolierung

Dieses Szenario stellt eine Erweiterung zu (1) dar. Die FTP Einstellungen werden in nur einer FTP Site zentral verwaltet aber mit vielen FTP Benutzer Konten. Der Benutzer-Isolationsmodus (FTP User Isolation) im FTP 7.5 ermöglicht es Benutzern individuelle FTP-Verzeichnisse zum Uploaden von Inhalte anzubieten. Die eine FTP Site nimmt alle FTP Anmeldungen entgegen und entscheidet aufgrund des Login-Namens was der FTP Benutzer sehen darf. Die Benutzer haben nur Zugriff auf ihre eigenen Verzeichnisse und können z.B. nicht nach oben heraus aus Ihrer Verzeichnisstruktur navigieren.

Dieses Szenario ist gut geeignet wenn Websites nur einem (oder wenigen) FTP Benutzer(n) zugeordnet werden soll.

Die FTP User Isolation setzt eine bestimmte Verzeichnisstruktur in der FTP Site voraus. Der FTP-Benutzer sieht nur den Inhalt des Verzeichnisses (physikalisch oder virtuell) welches den gleichen Namen trägt wie sein FTP-Benutzer-Konto. Wichtig ist noch, dass die Benutzer-Verzeichnisse sich im Ordner LocalUser befinden müssen:

Wir bauen obiges Szenario nach und modifizieren dazu unsere FTP Site. Zuerst legen wir uns auf dem Dateisystem folgende Ordnerstruktur an:

Anschließend in der IIS Administrationskonsole die FTP Site auswählen und rechts unter Advanced Settings den Physical Pathändern, z.B. in c:\inetpub\ftproot

Dann rechter Mauseklick auf FTP Site und "Add Virtual Directory" mit Namen LocalUser welches auf den LocaUser Ordner im Dateisystem zeigt:

Dann ändern wir noch die Autorisierungs-Regeln, sodass nur user1 Lese und Schreib-Berechtigungen für das Verzeichnis user1 hat.

Die Basic Authentification muss aktiviert sein. Wir erzeugen uns noch das Benutzerkonto user1 von der Kommandozeile:

net user user1 * /add

und geben diesen Account noch Modify-Berechtigungen auf den physikalischen Ordner:

ICACLS C:\websites\LocalUser\user1 /grant user1:(OI)(CI)(M)    

 

Dann aktivieren wir noch die FTP User Isolation:

IIS Administrationskonsole -> FTP Site auswählen -> FTP User Isolation -> "User name directory (disable global virtual...)" auswählen -> Apply:

 

Eine Verbindung mit Filezilla für user1 sollte ungefähr so aussehen:

Fazit:

+ Gut für ein "Hosting Szenario" mit vielen FTP Benutzern: Ein FTP Benutzer auf 1 bis x Website(s). Benutzer sollen voneinander isoliert sein.

+ Benutzer muss nicht mehr groß navigieren um in das richtige Verzeichnis für die eigene Website zu gelangen.

- stellt Anforderungen an Verzeichnisstruktur.

- Website von FTP Site getrennt.

- unübersichtlich wenn viele FTP Benutzer auf die gleichen Websites zugreifen sollen.

 

Sechs FTP Sicherheits-Tipps:

Das "öffnen" eines Webservers für FTP bringt Gefahren mit sich – gerade der Schreibzugriff macht FTP so interessant für Angreifer, sei es zum Zwischenlagern von illegalen Dateien oder dem Hochladen von Spionageprogrammen. Steht ihr Server im Internet und haben Sie FTP aktiviert ist es nur eine Frage der Zeit bis Angreifer versuchen die Passwörter zu knacken. Deswegen hier ein paar Sicherheits-Tipps:

  1. Nur Benutzerkonten mit wenigen Rechten für FTP verwenden

Also nicht Administrator-Konten für FTP freischalten! Denn sollte jemand mittels Netzwerkverkehr-Mitschnitt an das Passwort gelangen, hat er nicht gleich die Komplett-Herrschaft über die Maschine.

Noch besser wäre es, wenn für die Anmeldung am FTP Dienst Benutzer verwendet würden, dienicht im Active Directory oder im Windowsangelegtsind. Der IIS und FTP 7.5 bieten (auf dem Windows Server 2008) die Möglichkeit IIS interne Benutzer Accounts zu verwenden – siehe dazu Configure FTP with IIS 7 Manager Authentication.

  1. Komplexe Passwörter verwenden

Nur ausreichend komplexe Passwörter für FTP Benutzer Konten bieten Schutz. Die Angreifer testen automatisch verschiedene Benutzer Konten und Passwortkombinationen durch (brute force). Wie energisch? Auf einen meiner DemoFTPServer hatten es Angreifer mehr als 3,5 Mil. / Tag mal versucht. Daher sollte man es den Angreifern mit komplexen Passwörtern so schwer wie möglich machen.

  1. Verschlüsseltes FTPS verwenden.

Bei unverschlüsseltemFTP werden Passwörter beim Anmelden im Klartextübertragen. Jemand der in der Lage ist den Netzwerkverkehr mitzuschneiden (mittels Sniffer) kommt an das Passwort. Bei FTPS ist der Netzwerkverkehr verschlüsselt.

  1. FTP dienst abschalten wenn nicht benötigt

Klingt banal aber reduziert das Angriffs-Zeit-Fenster. Vor dem Update über Remote Desktop den FTP Dienst starten und nach dem publizieren die FTP Site wieder stoppen.

  1. IP Filtering für FTP aktivieren.

Reduziert das Angriffs-Standort-Fenster. Ideal, wenn FTP Verbindungen nur aus einem bestimmten Netzwerkbereich gemacht werden. Angenommen werden nur FTP Clients, die eine bestimmte IP Adresse(n) haben die anderen werden abgewiesen.

  1. Selbst weitere Sicherheitsfilter einbauen

Der FTP 7.5 ist erweiterbar: Im How to Use Managed Code (C#) to Create an FTP Authentication Provider with Dynamic IP Restrictions wird beschrieben, wie man einen Lösung bauen kann um IP-Adressen zu blockieren, von denen innerhalb eines bestimmten Zeitraums fehlgeschlagene Anmeldeversuche ausgehen.

 

Was steht im Weg? Firewalls & Co. und Limitationen

Aktivierte Firewalls auf Server sind zum Glück die Norm. Um den FTP Dienst auf einem Server von außen erreichbar zu machen verlangt es eine Firewall Regel um eingehenden TCP/IP Verkehr auf Server Port 21 (Control Channel) zu akzeptieren. Allerdings ist das bei FTP nicht alles: Die Dateien- und Ordneransichten werden über Daten Kanäle übertragen. Diese zusätzlichen Datenverbindungen machen den Firewalls Arbeit und setzen voraus dass FTP überhaupt unterstützt wird. Die eingebaute Windows Firewall hat das sowohl auf dem Client als auch auf dem Server im Griff und die Ausnahmeregeln werden beim Server, bei der Installation des FTP Dienstes, und beim Client bei erster Verwendung von z.B. Filezilla eingerichtet.

Problematischer wird das wenn man im Betrieb sitzt und noch die firmeneigene Firewall überwinden muss. Leider birgt auch die verschlüsselte FTPS Verbindung ein paar Konfigurationstücken – Ich hatte die beste "Experience" wenn ich im Filezilla Client die Server-Verbindung über "Explizites FTP über TLS" im Active Mode aufgebaut habe. Wenn es zu Problemen kommt empfehle ich Windows Firewall setup for Microsoft FTP Publishing Service for IIS 7.0.

 

Limitationen: Obwohl es mit anderen FTP Servern möglich ist, z.B. Verzeichnisberechtigungen via FTP Client zu vergeben – so wird dies vom FTP 7.5 nicht unterstützt:

Status:    Berechtigungen für '/test/blubber' werden auf '755' gesetzt

Befehl:    SITE CHMOD 755 blubber

Antwort:    500 'SITE CHMOD 755 blubber': command not understood

Entpacken von Archiven oder Einspielen von Datenbanken macht man ebenfalls nicht über den FTP 7.5.

 

FTP Alternativen

Es gibt Alternativen zu FTP (für IIS) für den Datei- oder Datenaustausch, allerdings leider nicht einfacher zu implementieren. Web Deploy ist die Neueste und hat den Vorteil über Dateien hinaus Konfiguration und Datenbanken, etc. auf den Server zu spielen.

Protokoll / Technologie

Was?

Anmerkungen:

WebDAV

Dateien, Ordner

WebDAV ist eine Erweiterung zum Trägerprotokoll http(s). Stellt als Protokoll weniger Anforderungen an Firewalls. Nicht so häufig anzutreffen.

Web Deploy (aka msdeploy)

Dateien, Ordner, Konfiguration, Datenbanken, RegistryKeys, Zertifikate, etc.

Das ist die Zukunft! Nicht nur schnöder Dateiupload sondern Komplett-Deployment von Websites inkl. DB via http(s). Derzeit noch ein bisschen komplex für einfachen Datei-Upload.

Background Intelligent Transfer Service (BITS)

Dateien, Ordner

Für große Down- oder Uploads. BITS Server Erweiterung zum IIS muss über den Server Manager installiert werden. Wenig dokumentiert – selten anzutreffen.

 

Links:

IIS für Einsteiger Teil 6: Web Work Loads – oder wieso kann mein IIS .html, .jpg, .css,...?

$
0
0

Diese Frage kommt einem vielleicht nicht so leicht in den Sinn, weil man von jedem Webserver erwarten würde, dass er in der Lage ist die Inhalte meiner Website an Browser auszuliefern.

Und in der Tat, schafft der IIS diese Anforderung in der Default Installationsvariante. D.h. wenn Sie den IIS 7 installieren, beinhaltet die Standardinstallation alle IIS-Module, die erforderlich sind, um statische HTML-Dateien, Dokumente und Bilder auszuliefern.

servermanager add default iis role

Meist wird dieses Work Load Szenario mit anderen Work Loads kombiniert z.B. um zusätzlich Seiten auszuliefern, die in PHP oder ASP.net geschrieben worden sind.

Was sind statische Inhalte und wo liegen die im IIS?

In Jetzt geht's los – "Die erste Webseite." haben wir gesehen, dass die Inhalte meiner Website letztlich auf der Festplatte des Servers liegen (auch remote Share ist möglich). Liefert ein Webserver den Inhalt (z.B. aus einer .html Datei) welcher beim ihm auf Platte liegt genauso beim Browser ab, dann spricht man von statischen Inhalten.

Was sind dann dynamische Inhalte?

Liegen auf dem Server dagegen Code Dateien (.php, .asp,.aspx, etc.) wird erwartet, dass der Browser nicht Quellcode bekommt sondern dass der IIS Server die Code-Dateien nach abzuarbeitenden Code durchsucht (interpretiert) diesen kompiliert, ausführt und die Antwort Browser verständlich (z.B. html (+javascript) )zurückschickt – dabei spricht man von serverseitigen dynamischen Inhalten.

Serverseitig(er) versus Browserseitig(er-Code):

Serverseitige dynamische Inhalte (siehe auch Server-side scripting) werden auf dem Webserver bearbeitet und dienen meist dazu interaktive Websites bereitzustellen, die z.B. Inhalte aus Datenbanken darstellen (wie z.B. Webshops, CMS, Blog, o.ä.).

Daneben gibt es auch noch Inhalte/Skripte die im Browser ausgeführt werden (Client-side scripting) und dadurch die Darstellung / Interaktivität einer Website beeinflussen. In der Regel sind diese Inhalte in JavaScript geschrieben und im html eingebettet oder zugeladen.

Anm.: Da Serverseitig kein Javascript ausgeführt wird ist aus der Sicht des Webserver javascript statischer Inhalt – und wird entsprechendem Mime-Type Eintrag wie folgt ausgeliefert:

javascript mime type

Mime-Type: Oder wo wird festgelegt welche Datei-Endungen als statische Inhalte gelten?

Welche Datei-Erweiterungen (in der URL) für den IIS als statisch gelten definiert man bei den Einstellungen für die MIME-Typen (siehe auch Internet media type – Wikipedia). Hier wird eine Liste aller Dateitypen hinterlegt die als statisch gelten.

Anm.: Einträge für dynamische Dateien (z.B. php ) sucht man deshalb hier vergebens.

mime types

Mime-Types haben die wichtige Aufgabe das übermittelte zu klassifizieren also zubeschreibenwasdaüberhaupt vom Server gesendet wird (z.B. Text, Bild, Zip, etc.) – also ähnlich wie Dateiendungen.

Da man sich aber nicht (mehr) auf die Dateiendung in der URL Zeile verlassen möchte ist gerade für Browser der korrekte Mime-Type zum übermittelten Inhalt besonders wichtig. Warum?:

Nur wenn der Browser weiß was er vom Server bekommen hat, kann er den Inhalt richtig darstellen.

Mit einem Mime-Type Eintrag sage ich dem IIS welche Dateiendung statischen Inhalt transportiert und welchen Mime-Type der IIS beim Ausliefern einer solchen Datei an den Browser mitschicken soll:

mime-type text_html

Wenn ich Browser nun z.B. die "start.html" von meinem IIS aufrufe, dann bekomme als Antwort im Http-Protokol Header "Content-Type" den eingetragenen Mime-Type ausgeliefert:

wfetch content-type

[Download zu wfetch Tool]

Mime-Types bearbeiten? - Oder 404.3 Fehler bei unbekannten Dateiendungen!

Wenn Sie diese Fehlermeldung sehen:

HTTP Error 404.3 - Not Found

The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

, dann haben Sie wahrscheinlich von ihrem IIS eine Datei aufgerufen dessen Datei-Endung und Mime Type dem IIS nicht bekannt ist.

Hintergrund: Statische Inhalte für die im IIS kein Mime-Type definiert ist werden nicht ausgeliefert– der IIS antwortet mit einer 404 (.3) Not Found Fehlermeldung.

Abhilfe: Der IIS hat zwar eine Standardliste mit Verknüpfungen von Datei-Endungen zu bekannten Mime-Types, dennoch kann es vorkommen, dass man diese Liste selbst erweiternmuss (siehe auch z.B. Configuring IIS for Silverlight Applications)

Beispiel: Um statische Inhalte vom Typ Scalable Vector Graphics (.svg Dateien) vom IIS7 ausliefern zu können muss ein neuer Mime-Type Eintrag gesetzt werden (siehe auch Adding IE 9 MIME Types to IIS 7)

Als Test .svg-Datei kann z.B. der Variable Resistor von Wikipedia dienen. Ich platziere diese Datei in meinem c:\inetpub\wwwroot Ordner (=Standard Web Site).

Ohne zusätzlichen Mime-Type Eintrag bekomme ich, im Browser:

svg mime type error 404.3

Wir fügen jetzt den notwendigen Mime-Type hinzu:

IIS Management Konsole -> Server Namen auswählen -> Mime-Types Feature auswählen -> Open Feature -> Mit "Add" einen neuen Eintrag festlegen:

File name extension

.svg

MIME type:

image/svg+xml

add svg mime type

Ein erneuter Aufruf im Browser erzeugt keinen Fehler und die Vektor Grafik wird korrekt dargestellt:

variable resistor

Wo bekomme ich den Mime-Type für ein Dateiformat her?

Kurz: Im Internet ;-)

Bei der Internet Engineering Task Force (Wikipedia Eintrag zur IETF) liegen die sog. RFC – Beiträge aus, die u.a. dokumentieren wie die Mime-Typen zu setzen sind.

Anm. d. Autors: Ich musste noch nicht die RFC konsultieren um einen Mime-Type für einen Datei-Type herauszufinden, meist existiert ein Wikipedia Eintrag der den Mime-Type gleich mit angibt oder alternativ hilft eine Suchanfrage nach der Dateiendung und "Mime-Type".:

Wer hat die Antwort auf statische Inhalte - oder was macht der StaticFile Handler?

"Handler Mappings" im IIS7 legenfest, wer die Antwort auf eine http Anfrage übernimmt:Die Zuordnung welcher Handler für welche Anfragen zuständig ist geschieht auf Basis des angefragten Dateityps:

handler mappings

Ein IIS7 soll in der Regel viele unterschiedliche Inhalte (.html, .php, .asp, .aspx, etc.) ausliefern können. Je nachdem ob es ich dabei um statische oder dynamisch Inhalte handelt, ergeben sich daraus unterschiedliche Anforderungen an die Darstellung: Dynamische Inhalte müssen vor Versand noch "aufbereitet" (z.B. kompiliert) werden – statische Inhalte zuvor von der Platte geholt werden. Das erklärt die zahlreichen Handler-Einstellungen. Mehrfachbelegungen sind möglich, je nach Konfiguration bestimmt der IIS7 dann welcher Handler für eine Anfrage genommen wird.

Für alle statischen Inhalts-Dateitypen gibt es Default nur ein Handler-Mapping : Das StaticFile-Handler Mapping:

static file handler mapping

Anstatt für alle statischen Inhalte / Dateiendungen (.htm, .html, .jpg, etc. ) jeweils ein Handler-Mapping zu haben, verwendet der IIS7 ein Wildcard Mapping im Pfad ("*"). Die eigentliche Arbeit übernehmen die eingetragenen Handler: z.B. das StaticFileModule.

Das StaticFileModule liest den Inhalt einer Datei passend zur http Anfrage von der Festplatte und übergibt diesen als http Antwort.

Fehlt das StaticFileModule bekommt man bei einer Anfrage auf statische Inhalte o.ä.:

HTTP Error 500.21 - Internal Server Error

Handler "StaticFile" has a bad module "StaticFileModule" in its module list

Fehlt das Handler-Mapping für statische Inhalte erzeugt eine http-Anfrage darauf o.ä.:

HTTP Error 404.4 - Not Found

The resource you are looking for does not have a handler associated with it.

Tipp:

Wer wissen möchte welches Handler-Mapping für eine bestimmte http Anfrage vom IIS ausgewählt worden, kann das IIS7 Failed Request Tracing aktivieren:

z.B. "slow.aspx" (ASP.NET 4.0)

Handler Changed aspnet40

NewHandlerName="PageHandlerFactory-Integrated-4.0", NewHandlerModules="ManagedPipelineHandler", NewHandlerScriptProcessor="", NewHandlerType="System.Web.UI.PageHandlerFactory"

 

"start.html"

Handler Changed static file

NewHandlerName="StaticFile", NewHandlerModules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"

 

Zusammenfassung:

Handler sind Komponenten im IIS7 und erzeugendenInhaltdenderIISalshttpAntwort schickt.

Für den IIS7sindInhalte | Datei-Erweiterungen statisch (.html, .jpg, .css, etc. ), wenn dafür ein gültiger Mime-Typeangegebenist.

Für alle statischen Inhalte greift standardmäßig ein Handler Mapping -"StaticFile".

Dieses Mapping legtu.a. fest, dass dasStaticFileModule den Inhalt passend zur http Anfrage von Festplatte lesen und als http Antwort zurückgeben soll.

 

Links:

Install Typical IIS Workloads : Installing IIS 7 : Installing and Configuring IIS 7

Deploying a Static Content Server (IIS 7)

IIS 7 Modules Overview : Introduction to IIS 7 Architecture

PowerShell Begleit-Skripte zum MVA Kurs Servermanagement und Automatisierung inkl. PowerShell 4.0

$
0
0

Im Rahmen eines MVA Kurs zum Thema Servermanagement und Automatisierung inkl. PowerShell 4.0 sind folgende Demo-Skripte entstanden. Viel Spass damit und – ganz wichtig: USE AT YOUR OWN RISK! Zwinkerndes Smiley

Active Directory Administration Light With PowerShell:

CreateABunchOfADUsers.ps1 creates a group and 100 users, puts the users into the group
PingMyHosts.ps1 gathers a list of Servers from AD and pings them

 

Hyper-V And The PowerShell:

Networking.ps1 creates a NIC Team and a hyper-V Switch, sets some IP settings
Create-VMs.ps1 creates a bunch of VMs based on a sysprep’ed .vhdx file
CheckIntegrationServicesOnHostVersusVMs.ps1 scans a list of Hosts for vms and compares it’s version of the Integration Services with the one of the host.

 

PowerShell 4.0 – Desired State Configuration (DSC) Sample Script For A Webserver:

myDSCWebConfig.ps1

a sample DSC configuration for a webserver incl. webcontent – parameterized – siehe auch: PowerShell 4.0 und die Desired State Configuration (DSC) – Mein Start

MyDSCLocalConfigurationManager.ps1

a sample Local Configuration Manager (LCM) configuration that activates the “self-healing”, “auto-repair” functionality of the DSC target server. siehe auch: PowerShell 4.0 und die Desired State Configuration (DSC) – Der LCM und die Autokorrektur
MySite Sample Website Content used in the demo

(please remove the .txt from zip)

PowerShell Skripte zum MVA Kurs.zip

PowerShell Version- und Upgrade-Übersicht:

$
0
0
 

Ich hab mich mal gefragt welche Version von PowerShell eigentlich aktuell ist bzw. welche Version mit welchem Server Betriebssystem ausgeliefert wird. Gibt es Upgrades? Wie ich von Version X nach Y?. Das Ergebnis der Übung ist folgende Tabelle:

Die PowerShell in der Version 3.0 ist automatisch Bestandteil des Windows Server 2012. Ältere Betriebssysteme (s.u.) ließen sich zwar auf 3.0 nachrüsten, aber aktuell (zum Zeitpunkt der Kurserstellung: April 2014) ist bereits die PowerShell 4.0. Das Update auf 4.0 ist Bestandteil des Windows Management Framework 4.0 (WMF). Mit dem Update auf PowerShell 4.0 bekommt man alle Funktionen von 3.0 mit.

Betriebssystem

PowerShell Version enthalten

Nachrüstbar auf & mit

Anmerkungen

Windows Server 2003

-

2.0 Update for Windows Server 2003 (KB968930)

Benötigt Server SP2

Windows Server 2008

-

3.0 Windows Management Framework 3.0

Benötigt Server SP2

Windows Server 2008 R2

2.0

4.0 Windows Management Framework 4.0

*)

Windows Server 2012

3.0

4.0 Windows Management Framework 4.0

*)

Windows Server 2012 R2 oder Windows 8.1

4.0

5.0 Windows Management Framework 5.0 Preview

Noch Preview

*) Warnung!: Einige Dienste und Anwendungen kommen jedoch nicht mit einer neueren Version zurecht. So sollen z.B. der Microsoft Exchange Server 2007 und der Windows Small Business Server 2011 Standard nicht mit dem Windows Management Framework 4.0 betrieben werden. (siehe Windows Management Framework 4.0 -> System Requirements)


Neuer MVA Kurs: Servermanagement und Automatisierung inkl. PowerShell 4.0

$
0
0

 

Zusammen mit Carsten Rachfahl habe ich im April in Hallenberg einen MVA Kurs vorbereitet. Jetzt ist er online und ich komme zum bloggen. Aus gefühlten 100h Arbeit sind 3h Inhalt geworden. Als Videos mit Tonspur in Deutsch und ganz ohne PowerPoint.

Das Thema: Servermanagement und Automatisierung inkl. PowerShell 4.0

Stichpunkte wären: Server Manager, Remote Server Administration mit GUI, Hyper-V Server, Core Server Administration, NIC Teaming einrichten, Skriptbasierte Administration via PowerShell, Active Directory und PowerShell, Hyper-V und PowerShell, RSAT Tools für Windows 8.1, PowerShell 4.0 mit der Desired State Configuration.

Alternativ hier ein Video als InhaltsangabeZwinkerndes Smiley – enjoy.

Inhaltsangabe des Kurses Servermanagement und Automatisierung inkl. PowerShell 4.0

Ich hoffe es gefällt.

Grüße,

Bernhard

My Favorite Storage Spaces / Scale Out Fileserver Links

$
0
0

Youtube Serie: Aufbau einer Cloud mit Windows Server 2012 R2, Hyper-V, System Center und dem Azure Pack

$
0
0

 

zu die Youtube Playlist ist zu finden unter aka.ms/buildmycloud

In dieser Video-Serie bauen Carsten Rachfahl und Bernhard Frank für Sie eine Cloud mit Microsoft Windows Server 2012 R2, Hyper-V, System Center 2012 R2 (insbes. Virtual Machine Manager 2012 R2) und dem Windows Azure Pack (WAP)

Es geht im wesentlichen um die Klärung von 3 Fragen:
1) Wie installiere und konfiguriere ich eine private Cloud mit Microsoft Hyper-V und System Center.
2) Wie nutzt man Windows Server 2012 R2 als hochverfügbares Storage für virtuelle Maschinen.
3) Wie kann ich mit dem Azure Pack als Self Service Portal den Nutzern meiner Cloud das Leben einfacher machen.

Wir zeigen den kompletten Aufbau, die Konfiguration und die Funktionsweise. Damit Sie entscheiden können ob diese Technologien etwas für Sie sind.

Zielpublikum: Techies, IT Pros, Administratoren und technische Entscheider. Für alle die erst glauben, wenn sie es sehen und weniger Lust auf PowerPoint haben ;-)

Idealerweise spornt diese Serie auch zum Nachbauen an. Dazu gibt es hier die verwendeten PowerShell Skripte Download.

 

Anmerkungen: In der Serie wollen wir die Funktionalitäten zeigen, einen Einstieg ermöglichen und haben daher bewusst vereinfacht. D.h. die hier gezeigten Konfigurationen sind nicht auf Eignung im produktiven Einsatz getestet – und gelten nicht als Best Practice. Das war nicht unser Anspruch für diese Serie.

Dieses CloudOS-Training wurde im Rahmen einer Microsoft Veranstaltung als sog. IT Camp mit über 500 Teilnehmern durchgeführt. Diese Serie ist die Online Variante dieser Veranstaltung.

CloudOS PowerShell Skripte und Ressourcen.zip

Activate Many Computers using PowerShell

$
0
0

Just came in handy when you need to activate a bunch of computers (from a Windows Server 2012 R2)

I combined a PowerShell AD Computer search with a filter ("blablabla") and executed slmgr.vbs /ato remotely with no prompts:

 

$computers = Get-ADComputer -filter * | where name -like "blablabla*"

foreach ($computer in $computers)

{

Invoke-Command -ComputerName $computer.Name -ScriptBlock { Write-Output $env:COMPUTERNAME; Start-Process "C:\Windows\System32\cscript.exe" -argumentlist "//B ""C:\Windows\System32\slmgr.vbs"" /ato" -Wait}

}

 

 

Have fun.

Bernhard

 

Important note:

You need the Active Directory Module for Windows PowerShell installed on the System where you execute the Get-ADComputer:

image

World Hosting Day 2015 Presentation: PowerShell – let's talk about automation

Checkpoint-ing Hyper-V with PowerShell

$
0
0

As I just needed it for my own personal test lab. Here is some Powershell to manipulate checkpoints of multiple VMs at a time.

Warning: Use at you own risk and not in production! Smiley

 

<# Removes specific checkpoints for specific virtual machines

replace the "FAB*" for your VM Name filter

replace the "*2015*" for your Snapshot name filter

remove -WhatIf to "make it so"

#>

Get-VM | Where-Object VMName -Like "Fab*" | Get-VMSnapshot | Where-Object Name -like "*2015*" | Remove-VMSnapshot -WhatIf

 

Output:

What if: Remove-VMSnapshot will remove snapshot "State 0 [04/09/2015 16:17:04]".

What if: Remove-VMSnapshot will remove snapshot "State 1 [04/09/2015 16:17:28]".

What if: Remove-VMSnapshot will remove snapshot "State 2 [04/09/2015 16:17:39]".

What if: Remove-VMSnapshot will remove snapshot "State 0 [04/09/2015 16:17:03]".

What if: Remove-VMSnapshot will remove snapshot "State 1 [04/09/2015 16:17:27]".

 

 

<# Creates Checkpoints (aka snapshots) for specific virtual machines with your name

replace the "FAB*" for your VM Name filter

#>

Checkpoint-VM -Name "FAB*" -SnapshotName "BeforeInstallingUpdates"

image

 

<# Renames specific Checkpoints and attaches date to name

 replace the "FAB*" for your VM Name filter

remove -WhatIf to "make it so"

#>

Get-VM -Name "FAB*" | Rename-VMSnapshot -Name "Before*" -NewName "Toller CP $(Get-date)" -WhatIf

image

 

 

<# Creates Checkpoints for specific virtual machines with a fancy name (counts up and adds date)

replace the "FAB*" for your VM Name filter

replace the "State" for your Checkpoint Prefix

#>

Get-VM -Name "FAB*" | ForEach-Object {Checkpoint-VM -Name $_.Name -SnapshotName "State $((Get-VMSnapshot -VM $_).count) [$(Get-date)]"}

we can run this line multiple times

imageimageimageFirst run, Second run, Third run of above script.

 

<# Reapplies a specific Checkpoint (filtered and sorted by Name ) to specific VMs

replace the "FAB*" for your VM Name filter

replace the "State*" for your Checkpoint Name filter

remove -WhatIf to "make it so"

#>

Get-VM -Name "FAB*" | ForEach-Object {$_ | Get-VMSnapshot | Where-Object Name -like "State*"| Sort Name | Select -First 1 | Restore-VMSnapshot -Confirm:$false -WhatIf}

image

Where to find makecert.exe?

$
0
0

Sometimes you need to create test certificates and keys for demos, tests and trials e.g. SSL certs for websites or for a Point-to-Site VPN connection to Microsoft Azure.

One of the cmd line tools you could use for creating test certificates is makecert.exe. However where to find & download it?:

makecert.exe is part of the Windows Software Development Kit (SDK) for Windows 8.1 oder Windows Software Development Kit (SDK) for Windows 10

Notes on the SDK:

  • there are various versions that follow the OS versions
  • at the time of the blog post (21th July 2015) it was 8.1 – you might want to check if there is a later one.
  • the tools within might be updated
  • you can install the SDK from the web or download its components as a whole (>700 MB)

You get makecert.exe when you install the “Windows Software Development Kit” portion, i.e. you don’t need to install everything:

image

After installing you’ll find it in the following folder:

C:\Program Files (x86)\Windows Kits\8.1\bin\x64

And you can create a Site-to-Site VPN Root Cert with e.g.:

makecert -sk exchange -r -n "CN=AdatumRootCertificate" -pe -a sha1 -len 2048 -ss My "AdatumRootCertificate.cer"

and a client Site-to-Site VPN Cert with e.g.:

makecert.exe -n "CN=AdatumClientCertificate" -pe -sk exchange -m 96 -ss My -in "AdatumRootCertificate" -is my -a sha1

image

 

Other example:

makecert.exe -r -n "CN=SIL Root Cert" -pe -sr localmachine -ss AuthRoot -len 2048 -sky exchange -m 36

Creates a root certificate with exportable key and places it into the Trusted root auth store of the local computer.

makecert.exe -n "CN=SILAggregator" -in "SIL Root Cert" -eku 1.3.6.1.5.5.7.3.1 -ir localmachine -is AuthRoot -pe -sr localmachine -ss My -len 2048 -sky exchange -m 36

Creates a Server SSL certificate based on the above Root cert and places it into the local computers personal store.

makecert.exe -n "CN=SILClientAuth" -in "SIL Root Cert" -eku 1.3.6.1.5.5.7.3.2 -ir localmachine -is AuthRoot -pe -sr localmachine -ss My -len 2048 -sky exchange -m 36

Creates a Client Auth certificate


DPM 2012 R2–System State Backup (BMR) of Windows Server 2012 R2 fails with error “Replica is inconsistent”

$
0
0

Scenario:
Failover Cluster with a bunch of clustered Hyper-V virtual machines residing on a CSV. Data Protection Manager (DPM) 2012 R2 with UR8 installed. Configured a “Protection Group 1” with all hosts in the cluster + System State and Bare Metal Recovery Option:

image

Problem:
System State
/ Bare Metal Recovery (BMR) is shown as inconsistent within DPM console.
Status:    Replica is inconsistent

image

Troubleshooting:
Eventlog
says: “The replica of Non VSS Datasource Writer on host3.cos.local is inconsistent with the protected data source. All protection activities for data source will fail until the replica is synchronized with consistency check. (ID: 3106)
DPM failed to create the backup. If you are backing up only System State, verify if there is enough free space on the protected computer to store the System State backup.  On protected computers running Windows Server2008, verify that Windows Server Backup (WSB) is installed and that it is not performing any other backup or recovery task. (ID: 30214)”

seen also:
http://www.tech-coffee.net/replica-is-inconsistent-in-dpm-2012r2/
https://technet.microsoft.com/en-us/library/cc161593.aspx

Solution:
Install Windows Server Backup feature on host3 (Server to be backed up) and run “Perform consistency check” afterwards

image

Then the verification process takes longer now and in the end you should get the ok:

image

It seems that Windows Server Backup feature is lousy documented a software / Feature requirement for Data Protection Manager 2012 R2 for System State / Bare Metal Recovery Replicas of Windows Server 2012 R2

Hopefully this blog post helps you save some time.

Termin: 12. Mai – Cloud & Datacenter Conference Germany

$
0
0

CDCGermany Startbild

Hier mal Werbung für die Cloud & Datacenter Conference (CDC) Germany, welche am am 12.Mai in Düsseldorf stattfindet.
Für die Nerds, hier der PowerShell 2-Zeiler zum Ausrechnen wie lange es noch dauert (Alternativen werden gerne genommen Zwinkerndes Smiley):
$CDCConferenceDate = Get-Date “12.Mai 2016 9:00″
“Time to wait {0:dd} days and {0:hh} hours” -f ($CDCConferenceDate -(Get-date))

Das Lineup lässt sich herzeigen, namhafte MVPs, Hyper-V Größen wie Ben Armstrong (Microsoft) und weniger bekannte Microsoft Mitarbeiter wie ich z.B. Zwinkerndes Smiley

Sprecher Banner

25 Sessions auf 5 Tracks (Agenda) von 9:00 bis 18:00 Uhr für 129€.

Wär ich nicht schon dort, ich würd hingehen.
Grüße,
Bernhard

Termin: 12. Mai – Cloud & Datacenter Conference Germany

$
0
0

CDCGermany Startbild

Hier mal Werbung für die Cloud & Datacenter Conference (CDC) Germany, welche am am 12.Mai in Düsseldorf stattfindet.
Für die Nerds, hier der PowerShell 2-Zeiler zum Ausrechnen wie lange es noch dauert (Alternativen werden gerne genommen Zwinkerndes Smiley):
$CDCConferenceDate = Get-Date “12.Mai 2016 9:00″
“Time to wait {0:dd} days and {0:hh} hours” -f ($CDCConferenceDate -(Get-date))

Das Lineup lässt sich herzeigen, namhafte MVPs, Hyper-V Größen wie Ben Armstrong (Microsoft) und weniger bekannte Microsoft Mitarbeiter wie ich z.B. Zwinkerndes Smiley

Sprecher Banner

25 Sessions auf 5 Tracks (Agenda) von 9:00 bis 18:00 Uhr für 129€.

Wär ich nicht schon dort, ich würd hingehen.
Grüße,
Bernhard

Termin: 12. Mai – Cloud & Datacenter Conference Germany

$
0
0

CDCGermany Startbild

Hier mal Werbung für die Cloud & Datacenter Conference (CDC) Germany, welche am am 12.Mai in Düsseldorf stattfindet.
Für die Nerds, hier der PowerShell 2-Zeiler zum Ausrechnen wie lange es noch dauert (Alternativen werden gerne genommen Zwinkerndes Smiley):
$CDCConferenceDate = Get-Date “12.Mai 2016 9:00″
“Time to wait {0:dd} days and {0:hh} hours” -f ($CDCConferenceDate -(Get-date))

Das Lineup lässt sich herzeigen, namhafte MVPs, Hyper-V Größen wie Ben Armstrong (Microsoft) und weniger bekannte Microsoft Mitarbeiter wie ich z.B. Zwinkerndes Smiley

Sprecher Banner

25 Sessions auf 5 Tracks (Agenda) von 9:00 bis 18:00 Uhr für 129€.

Wär ich nicht schon dort, ich würd hingehen.
Grüße,
Bernhard

PowerShell Version- und Upgrade-Übersicht:

$
0
0
 

Ich hab mich mal gefragt welche Version von PowerShell eigentlich aktuell ist bzw. welche Version mit welchem Server Betriebssystem ausgeliefert wird. Gibt es Upgrades? Wie ich von Version X nach Y?. Das Ergebnis der Übung ist folgende Tabelle:

Die PowerShell in der Version 3.0 ist automatisch Bestandteil des Windows Server 2012. Ältere Betriebssysteme (s.u.) ließen sich zwar auf 3.0 nachrüsten, aber aktuell (zum Zeitpunkt der Kurserstellung: April 2014) ist bereits die PowerShell 4.0. Das Update auf 4.0 ist Bestandteil des Windows Management Framework 4.0 (WMF). Mit dem Update auf PowerShell 4.0 bekommt man alle Funktionen von 3.0 mit.

Betriebssystem

PowerShell Version enthalten

Nachrüstbar auf & mit

Anmerkungen

Windows Server 2003

-

2.0 Update for Windows Server 2003 (KB968930)

Benötigt Server SP2

Windows Server 2008

-

3.0 Windows Management Framework 3.0

Benötigt Server SP2

Windows Server 2008 R2

2.0

4.0 Windows Management Framework 4.0

*)

Windows Server 2012

3.0

4.0 Windows Management Framework 4.0

*)

Windows Server 2012 R2 oder Windows 8.1

4.0

5.0 Windows Management Framework 5.0 Preview

Noch Preview

*) Warnung!: Einige Dienste und Anwendungen kommen jedoch nicht mit einer neueren Version zurecht. So sollen z.B. der Microsoft Exchange Server 2007 und der Windows Small Business Server 2011 Standard nicht mit dem Windows Management Framework 4.0 betrieben werden. (siehe Windows Management Framework 4.0 -> System Requirements)

Viewing all 40 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>