magnify
Home IIS Application Pool Identities Virtual Account Managed Local Account ApplicationPoolIdentity
formats

Application Pool Identities Virtual Account Managed Local Account ApplicationPoolIdentity

Tarih 21 Temmuz 2011 yazar içinde IIS

Windows Server 2008 Sp2 ve Vista Sp2 ile beraber IIS application pool için yeni bir güvenlik çözümü sunmaktadır. Bildiğiniz gibi bir web sitesinin bağlı olduğu application pool için bir kimlik tanımlaması yapabiliyorduk. Bu tanımlama lokal veya bir domain user oluyor ve şifresinide belirli aralıklar ile değiştirmek gerekiyordu. Ancak bu yeni özellik sayesinde biz herhangi bir hesap oluşturmadan bu işlemler otomatik yapılabiliyor.

IIS6 ve IIS7 varsayılan olarak application pool için NETWORKSERVİCE olarak isimlendirdiğimiz ve windows kurulumu ile gelen built-in bir hesap kullanır. Bu hesap şifre istemez çünkü bunu windows kendi tanımlamıştır. Yine bu hesap son derece sınırlı yetkilere sahiptiki bu da zaten IIS gibi kritik bir servisin güvenliğini üst düzeye çıkarmak için yapılmış bir aksiyondur.
Ancak bu hesap aynı zamanda bu bilgisayar üzerindeki bazı diğer servisler tarafından ortak kullanılmaktadır. Bundan doğacak güvenlik açıklarını engellemek için Virtual Accounts olarak isimlendirilen ve IIS’ ın diğer servislerden ayrı olarak kendine özgü kullanabileceği hesap tipleri oluşturmasını sağlayan yeni bir özellik gelmiştir.

Eğer IIS 7.5 kullanıyorsanız açtığınız her application pool ismi için IIS Admin Process (WAS) bir virtual hesap açar ve bu application pool’ a ait olan worker process ( w3wpe.exe ) bu hesap ile çalışmaya başlar.

Eğer Windows Server 2008 ile çalışıyorsanız bu durumda Application Pool kimlik doğrulamasını değiştirmeniz gerekmektedir.

Veya bunun için komut setinide kullanabilirsiniz

%windir%\system32\inetsrv\appcmd.exe set AppPool <your AppPool> -processModel.identityType:ApplicationPoolIdentity

Özetlemek gerekirse, siz IIS üzerinden yeni bir Application pool oluşturursanız IIS Admin servisi bu pool isminde bir virtual account oluşturur ( SID’si ile birlikte ), örneğin Application pool ismi cozumpark ise cozumpark isminde bir virtual account oluşur ve ona bir SID bağlanır. İşte bu noktadan sonra IIS altındaki web sitesine ait olan kaynaklar bu SID ile korunabilir. Fakat bu hesap gerçek bir hesap olmadığı için Windows User olarak grafik ekranlarda görüşmemektedir. Ancak yinede web sitesi kaynakları için bu SID ilişkilendirmesi yapmak istiyorsanız eğer bu durumda ACL üzerinde Application pool ismi ki zaten bu virtual hesap ismidir, bunu seçebilirsiniz.

Buradaki yazım şekline dikkat edin!  “IIS AppPool\” sonrasında application pool ismi yazıyorum ve bu otomatik olarak algılanıyor, oysaki baktığınız zaman “hakanuzuner” isminde bir user yok.

Veya yine komut setini kullanabilirsiniz

ICACLS index.html /grant “IIS AppPool\hakanuzuner”:F

Windows Server 2008 R2 ve Windows 7 üzerinde çalışan IIS application pool varsayılan olarak “AppPoolIdentity” ismindeki kimlik bilgisi ile çalışmaktadır. Bu sayede IIS Worker process yani w3wp.exe bu kimlik ile çalışır. Örneğin aşağıdaki resimde olduğu gibi

Peki bu durum neden bu kadar önemli derseniz, eski sistemde yani IIS 6 ve 7 de application pool varsayılan olarak NETWORKSERVICE hesabı ile çalıştığı için aslında farklı web siteleride ortak bir hesap kullanıyordu.

Yukarıdaki şekilde de görüldüğü gibi bu açık nedeni ile bir web sitesi üzerinden aslında diğer web sitesi kaynaklarına ulaşım imkanı vardı. Oysaki bu sistemde herbir application pool ayrı bir SID ile bağlandığı için açık kapatılmıştır. Örneğin aşağıdaki komut yardımı ile application pool’ lara bağlı SID leri görebilirsiniz

icacls.exe %systemdrive%\inetpub\temp\appPools\appPool.config /save output.txt

 

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Application Pool Identities Virtual Account Managed Local Account ApplicationPoolIdentity için yorumlar kapalı  comments 
© Hakan Uzuner
credit