ISA Server üzerinde barındırdığı pek çok kontrol mekanizması sayesinde üzerinden geçen ( inbound veya outbound yönünde ) her türlü paketi incelemekte ve belirtilen kurallar doğrultusunda filtreleme yapılmaktadır. ISA üzerinde tanımlama yapabileceğiniz pek çok filtre bulunmaktadır, ben ise bu makalemde bunlardan en etkili olanı http Filter konusunu anlatacağım.
Adından da anlaşılacağı gibi bu filtreleme işlemi sadece “http” paketleri için geçerlidir, yani yazacağınız bir smtp, pop3, rdp kuralı için http filter çalışmayacaktır. Peki, neden sadece “http” için bir filtrelemeye gidilmiştir. Aslında bu sorunun cevabı basittir, günümüz şartlarında bir şirkette kapatılamayacak tek protokol http dir, peki bu durum pek çok sorunu beraberinde getiriyor mu? Bu sorunun cevabı evet tir. Çünkü http protokolü üzerinden, müzik dinleyebilir, film seyredebilir, oyun oynaya bilirsiniz. Yapılan işlemler aslında hep bu protokolün içerisine gizlenmiştir bu sebep ile kısıtlamaları biz bu protokol ile beraber gelen paketlerde yapmalıyız. http filter bu konuda bize yardımcı olmaktadır, ISA Server http isteklerini ve cevaplarını dinleyebilir ayrıca bunlar üzerine oynama yapabilmektedir.
ISA Server üzerinde http filter a ulaşmak için aşağıdaki yolu izliyoruz.


Standart olarak açık olan http filter istenirse buradan kapatılabilir. http filter ın konfigürasyonunu yapmak için ise içerisinde http protokolü olan bir kurala sağ tıklamamız yeterli.

Açılan menüden “Configure http” kısmına tıklıyoruz.

Seçenekleri tek tek inceleyelim;
Maximum headers length: internet sayfalarının açılması için kullanılan adreslerde ki yani URL ler deki maksimum değerdir. ( byte cinsinden ) . Bu değer in fazla olması bu yolla yağılacak ataklara davetiye çıkaracaktır, bu nedenle bu değerin çok yüksek olmaması gerekmektedir. URL boyutundaki bu değerin büyüklüğü olası buffer overflow ve bazı denial of service ataklarına sebebiyet verebilir. Koruma amaçlıda değeri de çok küçültmek http hizmetlerinde sorun teşkil edecektir. Standart değer olan 32768 i tecrübelerim doğrultusunda 12000 ila 15000 arasında bir değer vermenizde fayda var.
Request Payload = bu yayınlan web server lar için gönderilecek maksimum paket boyutunu belirlediğimiz alandır. Pek çok forum ve sitede dosya yüklemek için sınırlamalar görürsünüz, buna benzer sizde publish ettiğiniz site için yüklenecek dosyalara bir sınır koyabilirsiniz. Şu andaki durumda herhangi bir sınırlama bulunmamaktadır.
Maximum URL Length (Bytes): İzin verilecek maksimum URL değeridir.
Maximum Query length (Bytes): İzin verilecek maksimum kuyruk değeridir
Yayınlamış olduğumuz sunucuya ( internet sitesine ) bir takım sorgular gelmektedir. Bunlar http protokolünün kullandığı “get” ve “port” metotlarıdır. Eğer sitemize uzun bir “GET” isteği geliyor ise bu bir ataktır ve bu nedenle bu URL uzunlukları mutlaka belirlememiz gerekmektedir. En ideal değer standart gelen değerlerdir, o nedenle oynamanızı tavsiye etmiyorum.
Verify normalization: Yayınlamış olduğumuz sunucuya gelen ve içerisinde özel karakter bulunduran URL istekleri için normalizasyon yapılması gereklidir, eğer bu işlemin sonrasında doğrulama yapılamaz ise isteğin reddedilmesi sağlanır. Yani bir takım karakterler kullanan istekler örneğin en çok bilinen; html kodlarında boşluk yerine % ibaresi kullanılır, ama gelen istekteki % ibareleri gerçekten boşluk anlamında mı bu kontrol edilir.
Block High bit character: bu kutucuk işaretli ise gelen istekler içerisinde Double Byte Characters (DBCS) ve Latin1 karakterlerini bulunduran istekler kabul edilmez.
Executables: Bu kutucuğun işaretlenmesi sonucunda çalıştırılabilir dosyalar olarak bilinen executable dosyaların download edilmesi yâda çalıştırılması mümkün olmayacaktır.
Bir sonraki sekme ise http method larını ayarladığımız “Methods” sekmesidir.

Aslında ISA Server üzerinde Methods kavramı biraz html bilgisine biraz http protokol bilgisine dayanmaktadır. http de kullanılan belli başlı metotlar vardır;
· HEAD
· GET
· POST
· PUT
· DELETE
· TRACE
· OPTIONS
· CONNECT
Bu metotlar, internet sitelerinde veri almak, veri göndermek, bağlantı kurmak, silme işlemlerini yapmak gibi temel eylemleri gerçekleştirirler, ISA Server da bu menü sayesinde bu metot lardan istediğimize izin vermeyi sağlar. Ancak unutulmaması gereken nokta internet üzerindeki sitelerin karakteri, yani adres bar dan veri transferi yapan bir site için “get” kullanılamaz bir metot ise bu internet sayfası çalışmayacaktır. Yada bir başka örnek olarak başlık verileri değişiyor ise bir sitede o zaman had metot una ihtiyaç duyuyoruz demektir.
Bir örnek ile açıklamak gerekir ise
cozumpark.com?sifre=123456 = GET
<input type=hidden value=1234 name=sifre> = POST
Biraz daha sadeleştirir isek, get almak post ise göndermektir, o nedenle istediğiniz yasaklamaları bu metot ları bilerek yapmanızda fayda var. Şirket içerisinden sadece upload yapılsın istiyorsanız sadece metotlardan “post” a izin vermeniz yeterli veya uplaod yapılmasın istiyorsanız “post” dışındakilere izin vermeniz yeterli. Örnek kural aşağıdaki gibidir.

Bu kuralda “post” dışındaki metotlar izinli yani upload yasak ama diğer bütün eylemler izinlidir.
Bir sonraki sekme ise extensions dır.

Bu bölümde ise http trafiğinden geçecek olan dosya uzantılarında yasaklama yapabiliyoruz. http trafiğinde yasaklanmasını istediğiniz uzantıları ekleyerek bunların çalışmasını engelleyebilirsiniz.
Bir sonraki sekme ise headers tır.

ISA Server gelen ve giden paketlerdeki “header” bilgilerini yakalayabilir ve bizim belirttiğimiz doğrultuda da bazılarını yasaklayabilmektedir. Buraya tanımlayacağınız header bilgisi sayesinde bir takım programların çalışmasını engelleyebilirsiniz.

Örneğin buraya Kazaa için gerekli olan header bilgisini girerek bu programın kullanımını yasaklamış oluyorum.
Yine aynı sekmede bulunan diğer seçenekler ise şöyledir
Server Header: Sunucumuza dışarıdan gelen isteklere verdiği cevapların “header” bilgilerinin nasıl olacağını belirleyebiliriz.
Send orginal header: Header bilgisinde değişiklik yapmaz.
Strip header from response: Header bilgisi göndermez.
Modify header in response: Header bilgisini istediğimiz şekilde değiştirerek karşı tarafa gönderir.
Via Header: Sunucudan dışarıya giden isteklerdeki header bilgisinin nasıl olacağını belirleyebiliriz.
Send orginal header: Header bilgisini değiştirmez
Strip header from response: Header bilgisini göndermez
Modify header in response: Header bilgisini istediğimiz şekilde değiştirerek karşı tarafa gönderir.
Bir sonraki sekme ise signatures sekmesidir.

Bu sekmede ise gelen ve giden paketlerdeki “header” ve “body” bilgisi kontrol edilerek belirtilen filtreler sayesinde yasaklamalar yapıla bilmektedir. Paketlerin header veya body kısmında neler olduğunu bildiğiniz programların imzalarını buraya yazmanı halinde http trafiği içerisinden yararlanmak isteyen bu programlar ISA Server ın http filtresine takılacaktır. Örneğin imza ile msn Messenger yasaklamamız mümkündür.

Bu sayede artık http filter ın gücünü kullanarak ISA Server ı daha etkin kullanacağınızı düşünüyorum.
Bir başka isa makalesinde görüşmek üzere.
Kaynak : http://www.isaserver.org/tutorials/Configuring-ISA-Server-2006-HTTP-Filter.html