Windows Server

IIS 8.5 inetPub Dizininin Taşınması

Bu makalemizde Microsoft IIS sunucular üzerinde en iyi güvenlik yapılandırma önerilerinden bir tanesi olan Inetpub dizininin sistem sürücüsü yerine farklı bir sürücüye taşınmasını ele alıyoruz.

clip_image002

Uygulamalarımızı Windows Server 2012 R2 ile gelen IIS 8.5 versiyon arayüzünde inceliyor olsak da aynı standartlar IIS 7.0 ve sonrası tüm versiyonlar için geçerli olacaktır.

INETPUB İÇERİĞİNİ TANIYALIM :  

IIS web sunucularda güvenlik alanındaki en-iyi-yapılandırma pratiklerinden bir tanesi de Inetpub dizininin varsayılan olarak oluştuğu sistem diskinden farklı bir disk sürücüsüne taşınmasıdır. IIS 8.5 öncesi versiyonlarda bu işlemi işletim sistemi kurulumu esnasında katılımsız kurulum dosyası (unattend file) ile yapabiliyorduk. Özellikle Vista ve Windows Server 2008 ile başlayan yeni kurulum süreci ile bu uygulama biraz farklılaştı. Kurulum sonrasında Inetpub dizini otomatik olarak Windows ile aynı dizinde geliyor. Ve Inetpub dizinini Windows harici farklı bir disk sürücüne taşımak da kurulum sonrası gerçekleştirilmesi gerekiyor artık.

clip_image003

Aşağıdaki varsayılan kurulum sonrası Inetpub dizinini kullanan yapılandırma dosyalarını görüyorsunuz. Şimdi bu yapılandırma dosyalarını ve bunların farklı bir dizine nasıl taşındığını birlikte ele alalım. Bazı dizin isimleri sadece IIS 7 ve 7.5 versiyonuna ait olup 8.5 versiyonunda bulamayabilirsiniz.

LOGS\FREBLOGS : Failed Request Event Buffering (FREB) başarısızlıkla sonuçlanan isteklere ait günleri tutar. Varsayılan dizin yolu %systemdrive%\inetpub\logs\FailedReqLogfiles

LOGS\LOGFILES : IIS günlük dosyaları için varsayılan yol tanımı. Varsayılan dizin yolu %systemdrive%\inetpub\logs\logfiles

clip_image005

TEMP\AppPools : AppPool Isolation, ilk olarak IIS 7 ile gelmiş olan yeni bir özellik. IIS üzerinde oluşturulmuş uygulama havuzlarına ilişkin (application pools) yapılandırma dosyaları burada saklanmaktadır. Varsayılan konumu %systemdrive%\inetpub\temp\appPools

clip_image007

HISTORY : IIS sunucular için yapılandırma geçmişini tutar. Bir diğer ifade ile IIS yapılandırma ayarlarının saklandığı administration.config ve applicationHost.config dosyalarının sürekli bir yedeğini saklar. Böylece gerçekleştirilen yapılandırmalar geri alınabilir. Varsayılan konumu %systemdrive%\inetpub\history

clip_image008

 

TEMP\ASP COMPILED TEMPLATES : Classic ASP uygulamalarında derlenen ASP kodu hafıza alanında 250’yi geçerse derlenen kodlar disk üzerindeki bu alana yazılırlar. Varsayılan disk önbellekleme konumu %systemdrive%\inetpub\temp\ASP Compiled Templates

TEMP\IIS TEMPORARY COMPRESSED FILES : IIS sunucular sıkıştırılmış dosyaları gerektiğinde disk üzerinde önbellekleyebilir. Sıkıştırma önbelleği için varsayılan konum %systemdrive%\inetpub\temp\IIS Temporary Compressed Files

WWWROOT : IIS sunucular Default Web Site isimli varsayılan web sitesi ile gelmektedir. Bu siteden de varsayılan IIS yayını yapılmaktadır. Varsayılan konumu %systemdrive%\inetpub\wwwroot dizinidir.

clip_image010

clip_image012

CUSTERR : IIS sunucular için özelleştirilmiş hata sayfalarının depolandığı dizindir. Varsayılan konumu %systemdrive%\inetpub\custerr dizinidir.

clip_image013

WWWROOT ve FTPROOT: Özellikle servis paketleri (SP) ya da diğer kurulumlarda WWWROOT ve FTPROOT dizinlerinin nerede olduğuna ait bilgiler talep edilir. Bunda dolayı WWWROOT ve FTPROOT dizinlerine ait konum bilgisi registry içerisinde de kayıtlıdır.

INETPUB İÇERİĞİNİ TAŞIYORUZ : 

Yukarıdak maddeler halinde anlattığımız dizinleri sırasıyla taşımaya başlıyoruz. Bu taşıma operasyonlarında APPCMD komut satırı aracını kullanacağız. Tüm yapılandırma dosyaları taşındıktan sonra da INETPUB dizinini XCOPY aracı ile istenilen disk sürücüsüne kopyalayacağız.

LOGS\FREBLOGS Taşınması:

%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.traceFailedRequestsLogging.directory:”E:\inetpub\logs\FailedReqLogFiles”

clip_image015

LOGS\LOGFILES Taşınması:

%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/sites -siteDefaults.logfile.directory:”E:\inetpub\logs\logfiles

%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralBinaryLogFile.directory:”E:\inetpub\logs\logfiles

%windir%\system32\inetsrv\appcmd set config -section:system.applicationHost/log -centralW3CLogFile.directory:”E:\inetpub\logs\logfiles

clip_image017

TEMP\AppPools Taşınması:

reg add HKLM\System\CurrentControlSet\Services\WAS\Parameters /v ConfigIsolationPath /t REG_SZ /d E:\inetpub\temp\appPools

 

clip_image019

HISTORY Taşınması:

%windir%\system32\inetsrv\appcmd set config -section:system.applicationhost/configHistory -path:E:\inetpub\history

clip_image021

TEMP\ASP COMPILED TEMPLATES Taşınması:

%windir%\system32\inetsrv\appcmd set config -section:system.webServer/asp -cache.disktemplateCacheDirectory:”E:\inetpub\temp\ASP Compiled Templates”

clip_image023

TEMP\IIS TEMPORARY COMPRESSED FILES Taşınması:

%windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpCompression -directory:”E:\inetpub\temp\IIS Temporary Compressed Files”

clip_image025

WWWROOT Taşınması:

%windir%\system32\inetsrv\appcmd set vdir “Default Web Site/” -physicalPath:E:\inetpub\wwwroot

clip_image027

CUSTERR Taşınması:

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’401′].prefixLanguageFilePath:E:\inetpub\custerr

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’403′].prefixLanguageFilePath:E:\inetpub\custerr

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’405′].prefixLanguageFilePath:E:\inetpub\custerr

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’404′].prefixLanguageFilePath:E:\inetpub\custerr

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’406′].prefixLanguageFilePath:E:\inetpub\custerr

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’412′].prefixLanguageFilePath:E:\inetpub\custerr

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’500′].prefixLanguageFilePath:E:\inetpub\custerr

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’501′].prefixLanguageFilePath:E:\inetpub\custerr

%windir%\system32\inetsrv\appcmd set config -section:httpErrors /[statusCode=’502′].prefixLanguageFilePath:E:\inetpub\custerr

clip_image029

WWWROOT ve FTPROOT Taşınması:

reg add HKLM\Software\Microsoft\inetstp /v PathWWWRoot /t REG_SZ /d E:\inetpub\wwwroot

reg add HKLM\Software\Microsoft\inetstp /v PathFTPRoot /t REG_SZ /d E:\inetpub\ftproot

clip_image031

INETPUB İçeriğinin Kopyalanması: Yukarıdaki adımlarla yapılandırma dosyalarının yeni konumları belirlendikten sonra tüm INETPUB içeriğini Windows dizininin bulunduğu sistem sürücüsünden farklı bir disk sürücüsüne tüm klasör ve dosyaların izinleri ve boş dizinleri ile beraber taşıma yapacağız. Bunun içinde XCOPY aracını ya da ROBOCOPY aracını kullanabilirsiniz. Aşağıda örnek olarak XCOPY aracının parametreleri ile taşıma yapacak komutumuzu görüyorsunuz:

XCOPY C:\Inetpub E:\Inetpub /E /O /I

/E : Boş dizinleri de kopyalar.

/O : Dosya ve dizinleri üzerlerinde tanımlı izinlerle birlikte kopyalar.

clip_image033

Böylece tüm Inetpub içeriğini E: sürücüsüne taşımış olduk.

clip_image034

ÖZETLE :

Microsoft IIS sunucular üzerinden web tabanlı mimaride hizmet veren servisler ve uygulamalar yaygınlaştıkça güvenlik önlemleri de daha fazla önem kazanmaktadır. Bu makalemizde IIS sunucular üzerinde en iyi güvenlik yapılandırma önerilerinden bir tanesi olan Inetpub dizininin sistem sürücüsü yerine farklı bir sürücüye taşınmasını ele detaylı adımlarla ele aldık.Yeni bir makalede görüşmek dileğiyle, hoşçakalın.

 

Mesut ALADAĞ.
Microsoft MVP, MCT, P-TSP
www.cozumpark.com | www.mesutaladag.com

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu