IIS Bestandteile und erste Website einrichten.

Werbung
IIS für Einsteiger
Erste Schritte – IIS Bestandteile und erste Website einrichten.
Nach der Installation – Bestandteile des IIS.
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 editierbare XML Datei welche die Root-|Hauptdatei des IIS 7.0
Konfigurationssystems darstellt. Sie beeinhaltet Definitionen für alle Websites , Anwendungen,
virtuelle Verzeichnisse und Anwendungspools , sowie globale Standards 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).
Inetpub-Verzeichnis
Das C:\inetpub Verzeichnis ist das Lese- und Schreibverzeichnis des IIS. Es enthält folgende
Unterverzeichnisse:
Ordner
Beschreibung
C:\inetpub\AdminScripts
C:\inetpub\custerr
C:\inetpub\history
VB Skript zur Administration der IIS
Vorgängerversion (IIS6) – wg.
Kompatibilität – kommt mit den „IIS 6
Scripting Tools“
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
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
svchost.exe -k apphost
Application Host
(C:\Windows\system32\)
Helper Service
(AppHostSvc)
IIS Admin Services
inetinfo.exe
(C:\Windows\system32\inetsrv\)
Web
Management
Service (WMSVC)
wmsvc.exe
(C:\Windows\system32\inetsrv\)
Beschreibung
Verantwortlich u.a. für automatische
Konfigurationssicherung. App -Pool -Konto Mapping.
(-> C:\inetpub\history)
Sinnvoller Dienst.
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).
Ermöglicht die remote Verwaltung des IIS7 (via
https). Nicht gestartet bei Default.
Windows Process
Activation Service
(WAS)
svchost.exe -k iissvcs
(C:\Windows\system32\)
World Wide Web
Publishing Service
(W3SVC)
svchost.exe -k iissvcs
(C:\Windows\system32\)
Verwaltet Anwendungs-Pool Konfiguration
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 Performance Counter 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
IUSR
Siehe Understanding Built-In User
and Group Accounts in IIS 7
IIS_IUSRS
Siehe Understanding Built-In User
and Group Accounts in IIS 7
ApplicationPoolIdentity z.B.
“IIS
APPPOOL\DefaultAppPool”
Mehr dazu unter Application Pool
Identities
Typ
Bedeutung | Verwengungszweck
Benutzer Der IIS greift standardmäßig unter diesen
Benutzerkontext für anonyme Website Besucher auf
html Dateien zu.
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 dieser Gruppe zugeteilt sind haben
die notwendigen Rechte auf Dateien und
Systemressourcen um für den IIS als AnwendungsPool Identität (und damit w3wp.exe User) zu
fungieren.
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
einfache Isolation 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 Hosting Szenarien bzw.
Betreiben von Websites von Dritten)
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.ä):
Die Beispielseite finden Sie hier zum download.
samplesite1.zip
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 der IIS eine Liste an Default
Dokumenten (aka Webserver directory index), die definiert welche Dateien einer Seite als mögliche
Startseiten in Betracht kommen. 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 Default Document Liste aufnehmen
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 kein Neustart der Website notwendig – 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) die
Möglichkeit dem Webserver Einstellungen für die eigene Website 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 mehrere Websites anlegen. Die Frage „Wieviele?“ läßt sich nicht
generell beantworten, da dies davon abhängig ist wie stark die Websites den Server beanspruchen.
Soviel sei jedoch gesagt, bei Internet Service Providern können das schon mal hunderte bis 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
Beispiele
Bedeutung
Parameter
IP Adresse All Unassigned oder * Alle auf dem
Die IP ist quasi die ‚Telefonnummer‘ des
Server vohandenen IPs
Servers, davon kann ein Server mehrere
192.168.2.1 IPv4 Adresse
haben. Einzelne Websites können auf eine,
2a01:110:8:f001:200:5efe:65.53.236.86 mehrere oder alle IP Adressen ‚hören‘. Egal
Ipv6 Adresse
ob Ipv4 oder Ipv6.
Port
80 Standardport für http
Die ‚Durchwahlnummer‘
443 Standardport für https
I.d. Regel würde man im Browser den Port
Oder andere
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
www.microsoft.com Fully Qualified
„Kann ich bitte den Klaus sprechen?“:
Name
Domain Name
Beim Aufruf von http://www.microsoft.com
bfrank7 Host Name
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 einem IIS ist darauf zu achten, daß die Bindings sich
voneinander unterscheiden. 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
Häufig anzutreffen auf Internet Webservern mit einer IP auf dem
und unterschiedlicher
mehrere unterschiedliche Domains gehostet sind, welche alle über
Hostname
den http Standardport angesprochen werden sollen.
Gleiche IP,
Seltener anzutreffen, gut zum mal schnell testen. Die Ports müssen
unterschiedlicher Port und explizit in der URL im Browser angegeben werden z.B.
gleicher (oder kein)
http://www.xyz.de:8080 und http auf nicht Standardports werden ggf.
Hostname
von Firewalls blockiert bzw. müssen explizit erlaubt weren.
Unterschiedliche IP,
Z.B. Wenn mehrere Websites auf einem Server via verschlüsseltem
gleicher Port, und gleicher
https erreichbar sein müssen (z.B. mehrere Internet shops auf einem
(oder kein) Hostname
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
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:
samplesite2.zip
Beispiesite hier:
Und bekommt abschließend noch die für den IIS notwendigen Benutzerrechte:
Jeweils Read & Execute für den Benutzer IUSR und die Gruppe IIS_IUSRS auf den Ordner mit den
Web-Inhalten:
Ein Aufruf von http://localhost:8080/im lokalen Internet Explorer liefert:
Damit haben wir erstmal was es braucht um mehrere anonyme Websites auf einer IIS Installation
einzurichten. Weitere Einstellungen des IIS gibt es in nachfolgenden Einträgen.
Herunterladen