Windows Server

IIS 8.5 Yönetimsel ve Güvenlik Yapılandırma Uygulamaları – Bölüm 1

İki bölümden oluşacak bu makale serimizde organizasyonlarda her geçen gün yaygınlaşan Microsoft Internet Information Server (IIS) web ve ftp sunucu sistemleri üzerinde yönetimsel ve güvenlik alanlarında uygulanan en iyi uygulama kriterleri hakkında bilgi sahibi olacaksınız. Genel olarak önerilerimizi 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. Güvenlik teknolojilerindeki yeniliklere göre makalemizde belli dönemlerde güncellemeyi hedefliyoruz. Bu makalede belirtilen yöntemler en iyi uygulama deneyimleri ve gerçek hayattan uygulamalardan elde edilen tecrübeleri paylaşmak amacına yönelik bir içeriktir. Bu öneriler oluşabilecek güvenlik riskleri ya da zaafiyetlerini en aza indirgemeyi amaçlamakla birlikte güvenlik açıkları ya da problemlerinizin tamamen yok olacağı garanti edilmemektedir.

Web sunucusu üzerindeki yönetimsel ve güvenlik alanındaki en iyi yapılandırma prensiplerini aşağıdaki şekilde de görüldüğü gibi fiziksel katmandan başlayarak ele alıp ağ katmanı, kullanıcı katmanı ve verinin korunması katmanı olarak farklı seviyelerde ele alıyor olacağız.

clip_image002

Böylece çok katmanlı bir savunma yaklaşımı ile web sunucular üzerindeki yönetimsel ve güvenlik standartlarını değişen teknoloji ve kullanıcı deneyimleri de göz önüne alınarak daha da iyileştirmenizi hedefliyoruz.

Makalemiz içerisinde en iyi yapılandırma adımlarını aşağıdaki alanlarda inceliyoruz:

Kurulum

Temel Yapılandırmalar

Güvenlik Yapılandırmaları

ASP.NET Yapılandırmaları

Günlük Dosyalarının Yapılandırılması

İçerik Yönetim Yapılandırmaları

Yük Dengeleme Yapılandırmaları

Web Sunuculara Özel İzole Active Directory Yapılandırmaları

Diğer Yapılandırmalar

Bu makalemizde bahsi geçen belirli ticari marka isimleri kendi özgün sahiplerine aittir.

Kısaltmalar

IP

Internet Protocol

XST

Cross Site Tracing

IIS

Internet Information Server

XHR

XML HTTP Request

HTTPS

Hyper Text Transfer Protocol Secure

HTTP

Hyper Text Transfer Protocol

FTP

File Transfer Protocol

CGI

Common Gateway Interface

PHP

PHP Hypertext Processor

ASP

Active Server Pages

JSP

Java Server Pages

UML

Unified Modeling Language

B2B

Business to Business

SOAP

Service Oriented Application Protocol

SQL

Structured Query Language

LDAP

Lightweight Directory Access Protocol

XML

eXtensible Markup Language

URL

Unified Resource Locator

XSS

Cross Site Scripting

 

Kurulum

Bu başlıkta IIS 8.5 web sunucularda kurulum alanındaki en-iyi-yapılandırma deneyimleri (best-practice) paylaşılacaktır:

IIS rolünü domain controller ya da additional domain controller sunucular üzerinde aktifleştirmemelisiniz. Bunun birinci nedeni özellikle web sunucularda sıklıkla kullanılan yerel hesapların (local account) domain controller rolüne sahip sunucular üzerinde bulunmamasıdır.

 

clip_image004

IIS web sunucu rolü ile domain controller rolünün aynı sunucu üzerinde olması da güvenlik hesabı seçeneklerinizi önemli oranda sınırlandırmaktadır.

Web servislerinden dolayı web sunucu üzerinde oluşan bir güvenlik zaafiyet vakası tüm domain yapısını hatta tüm ağ yapınızı etkileyecektir.

Web sunucular üzerine sadece gerekli olan modülleri ve bileşenleri kurmalısınız. IIS 8.5 ile kırkın (40) üzerinde modül içermektedir. İhtiyacınız olan modülü kolaylıkla ilave edebilir, kullanılmayan modülleri de kaldırabilirsiniz. Sadece ihtiyacınız olan modülleri yükleyerek potansiyel saldırı ya da ataklara karşı saldırı gelebilecek yüzeyi de daraltmış olacaksınız.

Peryodik olarak IIS modüllerini gözden geçirerek kullanılmayan ya da istenmeyen modülleri kaldırın. Bu bir önceki maddede bahsettiğimiz gibi sizin saldırı gelme riski olan alanı mümkün olan en aza indirgeyecektir.

Yüksek hacimli IIS kurulumları için (özellikle çok katmanlı uygulamalarda) SQL Server, Exchange Server gibi yoğun kaynak ihtiyacı olan ürünleri IIS sunucular dışında ayrı sunucularda konumlandırın.

Antivirüs, antimalware gibi güvenlik yazılımlarınızı güncel tutun.

IIS kurulumu sonrasında sistem sürücüsü altında oluşan “Inetpub” klasörünü ve diğer web sitelerine ait içerik klasörlerini farklı bir sürücüye taşıyın. Böylece hem sistem diskinde oluşabilecek disk alanı darboğazlarının önüne geçmiş hem de güvenlik etkilerini en aza indirgemiş olacaksınız. Inetpub içeriğinin taşınması için APPCMD.exe ve XCOPY araçlarını kullanabilirsiniz. Bu konuyu ayrı bir makalede ele alıyor olacağız.

Temel Yapılandırmalar

Bu başlıkta IIS 8.5 web sunucularda en-iyi-yapılandırma deneyimleri (best-practice) referans alınarak uygulanan temel yapılandırma standartlarını bulacaksınız.

Web İçeriğinin Sistem Diski Haricinde Bir Konumda Saklanması

IIS üzerinden yayınlanan servislere ait içerikler sistem diski dışında bir disk bölümünde saklanmalıdır. Bu sayede :

Web içerikleri sistem bölümünden izole bir alanda saklanmış olur.

Web içeriğinin sistem alanındaki yer kullanması ya da tüketiminin önüne geçilmiş olur.

Web içeriğinden oluşan I/O yükünün sistem dosyalarının performansı ve veri bütünlüğü açısından oluşabilecek riskler de en aza indirgenmiş olacaktır.

Ayrıca web içeriğinden oluşabilecek gizlilik ve hassas durumlar da ortadan kaldırılmış olur.

clip_image005

clip_image007

Web Siteleri Üzerinde Host Header Tanımlama Standardı

IIS üzerinden yayınlanan tüm web siteleri üzerinde Host Header tanımlaması yapılmalıdır.

clip_image009

Bu sayede :

Aynı ip adresi ve port numarasından çoklu web site yayını yapılabilir.

DNS rebinding saldırılarına karşı koruma sağlanmış olmaktadır.

IP-tabanlı taramalarda IIS üzerinde host edilen uygulamanın tanımlanması da kolaylıkla sağlanmış olacaktır.

 

clip_image011

clip_image012

Web Siteleri Üzerinde Directory Browsing Kapatılması

IIS üzerinden yayınlanan site yapılandırmalarında “directory browsing” özelliği kapatılmalıdır.

clip_image014

Bu sayede :

Web site içeriklerinin browser tabanlı web istemcileri üzerinden görülmesi engellenmiş olacaktır.

Web site içerisindeki özel bir dosya içeriğine doküman listesinden erişim riski azaltılmış olacaktır.

Web site içeriğindeki hassas dökümanlara kontrolsüz erişim engellenmiş olacaktır.

clip_image016

Web Siteleri ve Uygulamaları Tarafından Bağımsız Application Pool Kullanımı

Application Pool kimlikleri (Identity) web sunucuları üzerindeki w3wp.exe isimli iş süreçlerini çalıştırmaya yetkili hesap ya da otoritelerdir. Web siteleri ve uygulamaları üzerinde application pool ataması yaparken her web site ya da uygulama için benzersiz, farklı application pool tanımlanmasına özen gösterilmelidir. Bu sayede :

Web site ya da uygulamalarının birbirlerinden farklı uygulama havuzları kullanmaları sağlanmış olacaktır.

Web site ya da uygulamada meydana gelecek bir kilitlenme, duraklama ya da kaynak problemi diğer web site ya da uygulamaları etkilemeyecektır.

Yoğun-kaynak ihtiyacı olan web site ya da uygulamalarının farklı uygulama havuzları kullanmalarıyla sunucu ve servisin performansı da artırılmış olacaktır.

Uygulamaların erişilebilirlik seviyesi de artırılmış olacaktır. Herhangi bir uygulama havuzunda oluşan bir sorundan sadece o uygulama havuzunu kullanan web sitesi ya da servisleri etkilemiş olacak, diğerleri hizmet kesintisi ya da duraklama yaşamayacaktır.

Web site ve uygulamaları farklı uygulama havuzlarında barındırıldıkları için uygulama seviyesinde yetkisiz erişim riski de azaltılmış olacaktır.

Web site ve uygulamaları farklı uygulama havuzlarında barındırıldıkları için kullanılmayan bir uygulama havuzunu istenildiği zaman durdurmak diğer servislerde kesintiye neden olmayacaktır.

 

clip_image018



Güvenlik Yapılandırmaları

Bu başlıkta IIS 8.5 web sunucularda en-iyi-yapılandırma deneyimleri (best-practice) referans alınarak uygulanan güvenlik yapılandırma standartlarını bulacaksınız.

Windows Kimlik Doğrulamasın Genişletilmiş Koruma Özelliği

IIS web sunucuları üzerinde Windows authentication kimlik doğrulaması aktif ise mutlaka genişletilmiş koruma özelliği olan “Extended Protection” da açmanızı öneriyoruz.

Windows Authentication kullanılabilmesi için Web Server rolü altındaki bileşenlerden kurulmuş olması gerekir. Aşağıda PowerShell ile bu gereksinim kontrol edip yüklüyoruz.

clip_image020

clip_image022

Anonim Kimlik Doğrulamasını Doğru Yapılandırın

IIS web sunucuları üzerinde Anonymous authentication kimlik doğrulaması ile birlikte diğer kimlik doğrulama yöntemlerini aktif etmemeye mümkün olduğunca dikkat edin. Çünkü çalıştığı modüle bağlı olarak çoğu durumda öncelikli olarak Anonymous authentication kimlik doğrulaması devreye gireceği için diğer kimlik doğrulamalarında sorunlara neden olacaktır.

Diğer yandan sunucu dizinlerine ve kaynaklarına anonim kimlik erişim hesabına yetki vermeyiniz. Sunucuya yapılacak dosya yükleme ya da yazma işlemleri için anonim hesabı dışındaki hesapları özellikle kullanmanızı tavsiye ediyoruz.

Default Application Pool Kimliğinin Minimum Yetkiye Sahip Principal Hesabına Atanması

Application Pool kimlikleri (Identity) web sunucuları üzerindeki w3wp.exe isimli iş süreçlerini çalıştırmaya yetkili hesap ya da otoritelerdir. Bu sayede :

Doğru ve geçerli kimlik bilgisinin tanımlanması web uygulaması ya da servisinin fonksiyonel olarak doğru çalışmasını da garanti altına almaktadır.

Aynı zamanda web uygulaması ya da servisinin gerekli en az yetkili hesapla çalıştırılarak, gereğinden fazla yetkili hesap kullandırmayarak oluşabilecek güvenlik riskleri ve zafiyetleri de en aza indirgenmiş olacaktır.

Bu aksiyon web site içeriğinde yapılabilecek zararları ya da manipülasyonları da engellemiş olacaktır.

clip_image024

clip_image026

Web Siteleri ve Uygulamaları Tarafından Kullanılan Application Pool Kimliğinin Benzersiz Olmasına Dikkat Edilmesi

Application Pool kimlikleri (Identity) web sunucuları üzerindeki w3wp.exe isimli iş süreçlerini çalıştırmaya yetkili hesap ya da otoritelerdir. Web siteleri ve uygulamaları üzerinde application pool kimlikleri tanımlanırken her web site ya da uygulama için benzersiz, farklı kimlikler tanımlanmasına özen gösterilmelidir. Bu sayede :

Doğru ve geçerli kimlik bilgisinin tanımlanması web uygulaması ya da servisinin fonksiyonel olarak doğru çalışmasını da garanti altına alınmaktadır.

Aynı zamanda web uygulaması ya da servisinin gerekli en az yetkili hesapla çalıştırılarak, gereğinden fazla yetkili hesap kullandırmayarak oluşabilecek güvenlik riskleri ve zafiyetleri de en aza indirgenmiş olacaktır.

Bu aksiyon web site içeriğinde yapılabilecek zararları ya da manipülasyonları da engellemiş olacaktır.

Web site ya da web uygulamasının ilgili alanına sadece ilgili kimlik bilgisi ile minimum yetki seviyesinde erişim sağlanması garanti altına alınmış olacaktır.

Bu sayede her uygulama havuzunun (application pool) benzersiz bir kimlikle çalışması sağlanmış olacaktır.

 

Anonymous User Kimliği Olarak Application Pool Kimliğinin Yapılandırılması

IIS sistemleri üzerinde uygulama havuzları için farklı uygulama kimlikleri kullanılabilir. IIS web site ya da uygulaması üzerindeki application pool kimlik yapılandırmasında anonymous kullanıcı hesabı tanımlanmamışsa application pool isimli kimliğini kullanması şeklinde yapılandırma yapılabilir. Bu durumda IIS üzerinde ihtiyaç duyulan hesap kimliği de minimum sayıya indirgenmiş olacak, hesap yönetimi de kolaylaşacaktır. Önerilen Application Pool Identity’nin Anonymous User Identity olarak yapılandırılmasıdır. Bu yapılandırma minimum yetki ile servislere erişimin yapılmasını sağlarken, site yönetimini de kolaylaştıracaktır.

clip_image028

Web Sitesi Dynamic IP Address Kısıtlanması

IIS web sunucular üzerinde ihtiyaca göre ip adresi, network adresi ya da domain bilgisine göre erişim kısıtlamaları yapılmalıdır. Bu sayede :

Yetkisiz kişi ve sistemlerin web sitesine erişimi engellenmiş olur.

Dinamik olarak tanımlanan kapsamda olan sistemler kısıtlama kapsamına girmektedir.

DDOS saldırıları engellenmiş olacaktır.

Dynamic ip kısıtlaması için web sunucu üzerinde Web-IP-Security isimli IP and Domain Restrictions bileşeninin  kurulu olması gerekir. Standart web server kurulumunda bu özellik kurulu gelmez. Yüklemek için aşağıdaki şekilde görülen PowerShell komutlarını işletmek gerekecektir.

clip_image029

Bu işlemden sonra IIS konsolu içerisinde IP and Domain Restrictions görünmüş olacaktır.

clip_image031

IP Address and Domain Restrictions kısıtlamaları aşağıdaki seviyelerde uygulanabilir:

IIS Sunucu seviyesinde

Web Site seviyesinde

Web Application seviyesinde

Üst seviyeden uygulanan kısıtlamalar miras yoluyla alt seviyelere geçmektedir.

IP Address and Domain Restrictions simgesi üzerine çift tıklayınca gelen aşağıdaki ekranda sağ kısımda gelen Actions menüsü kullanılarak izin verilecekler için Allow Entry, yasaklanacaklar için de Deny Entry seçenekleri kullanılır. Spesifik IP adresi için kısıtlama ya da izin verme uygulanabileceği gibi IP adres aralığı ya da IP Subnet tanımı da yapılabilir.

clip_image033

Bu ekranda tanımlanmamış diğer adresler için geçerli olacak aksiyon ayarını da Edit Feature Settings ile belirleyebilirsiniz:

clip_image035

Yukarıdaki şekilde de görülen ekranda “Access for unspecified clients” ile tanımlanmamış istemciler için erişim durumu izin verilsin derseniz Allow yasaklansın derseniz de Deny seçeneklerinden uygun olanı liste kutusundan seçebilirsiniz. Yine bu ekranda “Enable domain name restrictions” kutucuğu işaretlenerek domain bazında da Allow Entry ya da Deny Entry tanımlanabilir, ilgili seçenekler Add Allow Entry ya da Add Deny Entry seçeneklerinden uygun olana tıklayınca gelecektir.

FTP Sitesi Erişiminin Kısıtlanması

IIS web sunucular üzerinde FTP hizmetlerinde ihtiyaca göre ip adresi, network adresi ya da domain bilgisine göre erişim kısıtlamaları yapılmalıdır. Bu sayede :

Yetkisiz kişi ve sistemlerin ftp sitesine erişimi engellenmiş olacaktır.

Dinamik olarak tanımlanan kapsamda olan sistemler kısıtlama kapsamına girmiş olacaktır.

Yetkisiz kişiler tarafından FTP içeriği görüntülenmesi ya da içerik yüklenmesi engellenmiş olacaktır.

Brute force ataklar bloklanmış olacaktır. Böylece yerel Administrator hesabının ele geçirilip saldırı yapılmasının da önüne geçilmiş olacaktır.

Yetkisiz kullanıcıların web site içeriğini kapsayan ftp alanına zararlı yazılımlarla oluşturabileceği riskler engellenmiş olacaktır.

FTP User Isolation yöntemi kullanılarak kullanıcıların FTP alanında sadece kendilerine izin verilen klasör alanına erişmeleri, yetkisiz alanlara erişmeleri engellenmiş olacaktır.

FTP Sitesine erişimde kullanıcı hesabı seviyesinde filtreleme ve sınırlandırma yapılarak yetkisiz kullanıcıların ftp sitesine erişimleri yasaklanmış olacaktır.

FTP Request Filtering yeteneği ihtiyaca göre kullanılarak FTP alanında belirtilen uzantılar dışında içerik yüklenmesi engellenmiş olacaktır.

Web Sitesi Global Authorization Rule İle Erişim Kısıtlanması

IIS 7.0 ile gelen URL Authorization sayesinde dosya sistemi yerine URL-bazlı yetkilendirme kuralları ile web sitesi koruması sağlanmalıdır. Authorization kuralları sunucu, web sitesi, web application, virtual directory ya da dosya seviyesinde uygulanabilir. URL authorization kuralları .NET modülleri, statik sayfalar, ASP sayfaları gibi tüm içeriklere gelen istekler için etkilidir. Bu kapsamda web servisi ve uygulamasına göre sunucu seviyesinde URL Authorization kuralları uygulanarak içerikle beraber hedefe taşınmaktadır. Böylece :

İçeriğin konumu değişse de yukardan aşağıya yetkilendirme kuralları miras olarak aktarılarak sürekli etkinliğini korunacaktır. Bu sayede uygulanan kısıtlamalar konum-bağımsız etkinliğini koruyacaktır.

Şu anki ve gelecekteki web içeriğine erişimde belirlenen kurallar dışında erişimin yapılması engellenmiş olacaktır.

İstek dışı ve yetkisiz erişimlerin yapılması engellenmiş olacaktır.

Web Sitesi Form Kimlik Doğrulamasında SSL Zorlanması

IIS üzerinden yayınlanan web sitesi içeriğine göre form-tabanlı kimlik doğrulaması kullanılan site ya da sayfalar üzerinde SSL erişim zorunluluğu getirilmelidir. Böylece forma girilen bilgilerin kriptolanarak web sunucuya güvenli mimaride iletilmesi sağlanacaktır. SSL sonlandırması uygulamaya göre bazı senaryolarda Load-Balancer aygıtı üzerinde gerçekleştirilebilir. IIS sunucularda gerçekleşen SSL sonlandırmalarında da Load-balancer (yük dengeleme) cihazı gelen isteklere SSL optimizasyon uygulaması sağlanabilir.

 

ÖZETLE :

İki bölümden oluşan bu makale serimizin ilk bölümünün sonuna geldik. İkinci bölümde de IIS sunucularımız üzerinde aşağıdaki maddeler için yönetimsel ve güvenlik alanında en iyi uygulama standartlarını paylaşmaya devam edeceğiz:

ASP.NET Yapılandırmaları

Günlük Dosyalarının Yapılandırılması

İçerik Yönetim Yapılandırmaları

Yük Dengeleme Yapılandırmaları

Web Sunuculara Özel İzole Active Directory Yapılandırmaları

Diğer Yapılandırmalar

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