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.
Während man beim Client OS den IIS7.x über die Option Windows Features installiert,
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.
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).
Kontrolle 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:
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:
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:
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
Command line Variante des Server-Manager unter Windows Server® 2008. Wird eingestampft daher nicht mehr verwenden -> die Powershell übernimmt die Funktionalitäten – s.u.
Am einfachsten mittels Aufruf der Default-Seite im lokalen Browser mit http://localhost , das Ergebnis sollte so aussehen:
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:
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:
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:
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:
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:
Web Platform Installer - der „IIS Paketmanager“
„Das wichtigste zum Schluss oder wie geht es weiter?“
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.
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
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).
Inetpub-Verzeichnis
Das C:\inetpub Verzeichnis ist das Lese- und Schreibverzeichnis des IIS. Es enthält folgende Unterverzeichnisse:
Ordner
Beschreibung
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.
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.
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!
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"
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.ä):
Zum Anzeigen der Seite im Browser wählen wir die Option „Browse" vom Action-Menü:
Der Internet Explorer startet und wir bekommen wahrscheinlich folgende Fehlermeldung:
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
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:
„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
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)
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.
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.:
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)
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
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):
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:
Damit haben wir erstmal was es braucht um mehrereanonymeWebsites auf einerIIS Installation einzurichten. Weitere Einstellungen des IIS gibt es in nachfolgenden Einträgen.
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.
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.
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.
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.
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"
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:
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.
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:
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?
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.
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.
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.
Sicherer als Basic Authentication da Benutzername und Passwort nicht übers Netz gehen. Gut geeignet für Internet. Wird von vielen Browsern unterstützt.
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.
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.
Um die Auswahl der richtigen Authentifizierungs-Methode(n) etwas zu erleichtern hier mal 2 Beispieleum den Benutzernamen des Website Besucherszuerfahren.
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.
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:
Kopiere die Auth_User.aspx wie im Basic-Authentication Beispiel in den Ordner.
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:
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 ...
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:
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.
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:
Eine FTP Site zum Publizieren in alle Websites mit einen (oder wenigen) FTP Benutzer-Konto.
Eine FTP Site pro Website mit jeweils unterschiedlichen Anmelde-Informationen (Benutzername, Adresse)
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:
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:
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:
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:
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.
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.
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.
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.
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.
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.
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.
Für große Down- oder Uploads. BITS Server Erweiterung zum IIS muss über den Server Manager installiert werden. Wenig dokumentiert – selten anzutreffen.
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.
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:
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 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:
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:
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)
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:
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
Ein erneuter Aufruf im Browser erzeugt keinen Fehler und die Vektor Grafik wird korrekt dargestellt:
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:
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:
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:
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.
*) 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)
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.
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 Inhaltsangabe – enjoy.
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
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.
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?:
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:
Problem: System State / Bare Metal Recovery (BMR) is shown as inconsistent within DPM console. Status: Replica is inconsistent
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)”
Solution: Install Windows Server Backup feature on host3 (Server to be backed up) and run “Perform consistency check” afterwards
Then the verification process takes longer now and in the end you should get the ok:
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.
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 ): $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.
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
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 ): $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.
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
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 ): $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.
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
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.
*) 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)