IIS – INETPUB Ordner auf ein nicht-Systemlaufwerk verschieben
Aus Sicherheitssicht ist es besser, den Inhalt eines Web-Servers von der Systempartition zu trennen. In früheren Versionen war dies bereits bei der Installation per unattended Setup File möglich. Seit Windows Server 2008 (IIS7) ist dies bedingt durch Änderungen in der Setup-Routine nicht mehr möglich und muss nach Abschluss der Installation manuell durchgeführt werden.
Im folgenden Beispiel zeige ich euch, was es mit den verschiedenen Ordner auf sich hat und wie mann die entsprechenden Ordner verschiebt. Ziellaufwerk ist in diesem Fall Laufwerk D:\.
LOGS\FREBLOGS
Failed Request Event Burffering (FREB) ist ein neues Feature in IIS8, das fehlgeschlagene Requests protokolliert.
Standardpfad: %systemdrive%\inetpub\logs\FailedReqLogfiles.
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.traceFailedRequestsLogging.directory:"D:\inetpub\logs\Failed\ReqLogFiles"
LOGS\LOGFILES
Standardpfad: %systemdrive%\inetpub\logs\logfiles.
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.logfile.directory:"D:\inetpub\logs\logfiles" %windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralBinaryLogFile.directory:"D:\inetpub\logs\logfiles" %windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralW3CLogFile.directory:"D:\inetpub\logs\logfiles"
TEMP\APPPOOLS
AppPool Isolation ist ebenfalls ein neues Feature in IIS7. Eine dedizierte AppPool Konfigurationsdatei wird automatisch generiert, bevor ein neuer AppPool startet.
Standardpfad: %systemdrive%\inetpub\temp\appPools
reg add HKLM\System\CurrentControlSet\Services\WAS\Parameters /v ConfigIsolationPath /t REG_SZ /d D:\inetpub\temp\appPools
HISTORY
Die Konfigurationshistorie stellt sicher, dass Änderungen rückgängig gemacht werden können.
Standardpfad: %systemdrive%\inetpub\history
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/configHistory -path:"D:\inetpub\history"
TEMP\ASP COMPILED TEMPLATES
Klassisches ASP speichert kompilierten ASP Code auf die Disk, wenn sich mehr als 250 kompilierte Templates im Speicher befinden.
Standardpfad: %systemdrive%\inetpub\temp\ASP Compiled Templates
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/asp -cache.disktemplateCacheDirectory:"D:\inetpub\temp\ASP Compiled Templates"
TEMP\IIS TEMPORARY COMPRESSED FILES
IIS7 cached komprimierte Responses auf Disk, wenn dies nötig ist.
Standardpfad: %systemdrive%\inetpub\temp\IIS Temporary Compressed Files
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpCompression -directory:"D:\inetpub\temp\IIS Temporary Compressed Files"
CUSTERR
Im CUSTERR Ordner werden die Custom Error Pages des IIS gespeichert.
Standardpfad: %systemdrive%\inetpub\custerr
%windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='401'].prefixLanguageFilePath:"D:\inetpub\custerr" %windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='403'].prefixLanguageFilePath:"D:\inetpub\custerr" %windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='404'].prefixLanguageFilePath:"D:\inetpub\custerr" %windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='405'].prefixLanguageFilePath:"D:\inetpub\custerr" %windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='406'].prefixLanguageFilePath:"D:\inetpub\custerr" %windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='412'].prefixLanguageFilePath:"D:\inetpub\custerr" %windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='500'].prefixLanguageFilePath:"D:\inetpub\custerr" %windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='501'].prefixLanguageFilePath:"D:\inetpub\custerr" %windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode='502'].prefixLanguageFilePath:"D:\inetpub\custerr"
WWWROOT
Standardpfad: %systemdrive%\inetpub\wwwroot
Zusätzlich ist für Service Packs und andere Installer der Pfad in der Registry spezifiziert und muss angepasst werden.
%windir%\system32\inetsrv\appcmd set vdir "Default Web Site/" -physicalPath:"D:\inetpub\wwwroot" reg add HKLM\Software\Microsoft\inetstp /v PathWWWRoot /t REG_SZ /d D:\inetpub\wwwroot
FTPROOT
Standardpfad: %systemdrive%\inetpub\ftproot
Zusätzlich ist für Service Packs und andere Installer der Pfad in der Registry spezifiziert und muss angepasst werden.
%windir%\system32\inetsrv\appcmd set vdir "Default FTP Site/" -physicalPath:"D:\inetpub\ftproot" reg add HKLM\Software\Microsoft\inetstp /v PathFTPRoot /t REG_SZ /d D:\inetpub\ftproot
Nach Abschluss der Anpassungen muss noch der Inhalt des inetpub-Ordners an die neue Stelle kopiert werden:
xcopy %systemdrive%\inetpub D:\inetpub /E /O /I
/E kopiert alle Verzeichnisse, auch leere
/O kopiert alle Sicherheitseinstellungen, z.B. ACLs
/I definiert das Ziel als einen Ordner
Der alte Ordner %systemdrive%\inetpub sollte NICHT gelöscht werden.
Im Abschnitt LOGS\FREEBLOGS hat sich leider ein kleiner Tippfehler eingeschlichen.
Der Abschnitt sollte selbst besser LOGS\FREBLOGS heißen und der dort stehende AppCmd-Befehl muss korrekt so geschrieben werden:
%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.traceFailedRequestsLogging.directory:“D:\inetpub\logs\Failed\ReqLogFiles“
Hallo Pedro. Danke für den Hinweis. Die Überschrift war natürlich ein Tippfehler, aber bei dem Parameter war ich mir sicher, er wird „Request“ geschrieben und nicht „Requests“. Getäuscht, du hast Recht. Ist korrigiert. Gruß. Andreas
Hallo
Ich bekomme immer einen Fehler, wenn ich den Befehl „LOGS\LOGFILES“ – Befehl als ADMIN im CMD ausführe:
C:\Windows\system32>C:\Windows\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.logfile.directory:“D:\inetpub\logs\logfiles“?C:\Windows\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralBinaryLogFile.directory:“D:\inetpub\logs\logfiles“?C:\Windows\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralW3CLogFile.directory:“D:\inetpub\logs\logfiles“
Fehler beim Verarbeiten der Eingabe: Der Parameter „config“ muss mit / oder – (HRESULT=8007005)
Kann mir jemand helfen, wo das Problem liegen könnte??
Hallo,
klasse Beschreibung, Danke.
Ich bekomme folgenden Fehler bei den custom errors:
%windir%\system32\inetsrv\appcmd set config -section:httpErrors/[statusCode=’401′].prefixLanguageFilePath:“D:\inetpub\custerr“
ERROR ( message:Unbekannter Konfigurationsabschnitt „httpErrors/[statusCode=’401′].prefixLanguageFilePath:D:\inetpub\custerr“. Durch „?“ ersetzen, um Hilfe anzuzeigen. )
Kann es sein, dass sich das mit neuen IIS Versionen geändert hat?
Hallo Astrid
Also bis inkl. IIS 7.5 hat die Änderung des Pfads noch so funktioniert.
In diesem Microsoft Artikel steht aber etwas davon, dass der Konfigurationsabschnitt
system.webServer
in IIS 8.0 geändert wurde; in der Beispiel-XML stehthttpErrors
jetzt da drin. Du kannst mal folgenden Befehl probieren (ich hab leider aktuell keinen IIS, um das selbst auszuprobieren):%windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpErrors/[statusCode=’401′].prefixLanguageFilePath:"D:\inetpub\custerr"
Gruß
Andreas