Netscaler Rate Limiting

Netscaler üzerinden Rate Limiting özelliğini kullanarak, herhangi bir ip’den ve herhangi bir url’e yapılan istek sayısı, kullanıcıların connection sayısı, bantwidth sınırlama gibi bir çok veriye göre limitleme yapılabilmektedir. Rate Limiting tanımları ile hatalı girişlerde kullanıcının karşısına bilgilendirme sayfası çıkarma ya da başka bir sayfaya yönlendirme işlemleri de yapılabilmektedir.

Şekil 1- Rate Limiting AppExpert altında yer alır.

Şekil 1- Rate Limiting AppExpert altında yer alır.

SELECTORS

Selectors kısmında hangi verilere göre limitleme yapacağımızı belirliyoruz( Source Ip, Url ).

  • Herhangi bir IP’den herhangi bir URL’e yapılan istekler için yazılması gereken expression lar aşağıdaki gibidir.

CLIENT.IP.SRC , HTTP.REQ.URL

  • Herhangi bir IP’den belirli bir URL’e yapılan istekler için yazılması gereken expression lar aşağıdaki gibidir.

CLIENT.IP.SRC , HTTP.REQ.URL.EQ(“/index.html”)

ÖRNEK

Bu makalede herhangi bir IP adresinden herhangi bir URL’e 100 saniye içinde yapılan 5 hatalı giriş isteği sonrasında kullanıcının ekranına  hatalı giriş denemelerinden dolayı bilgilendirme notu çıkartacağız.

1.Bunun için önce Selectors tabını seçerek ADD ile yeni bir limit selector oluşturuyoruz.

Şekil 2- Yeni selector oluşturulurken karşımıza çıkan ilk ekran

Şekil 2- Yeni selector oluşturulurken karşımıza çıkan ilk ekran

2.Selector’e bir isim verip Insert seçeneği ile gerekli expression ları ekliyoruz.

Ekspressionları ekspression alanına kendimiz de yazabildiğimiz gibi sağ üst köşedeki Expression Editor

ile de yapabiliriz.

Şekil 3- Insert Ekran Görüntüsü

Şekil 3- Insert Ekran Görüntüsü

Şekil 4 – Client Ip için oluşturulan expression

Şekil 4 – Client Ip için oluşturulan expression

Bu adımda  DONE seçeneğini seçtikten sonra karşımıza çıkan Insert seçeneğini de seçerek Client IP için oluşturduğumuz expression ı tamamlıyoruz.

Şekil 5 – URL için oluşturulan expression

Şekil 5 – URL için oluşturulan expression

Bu adımda  Done seçeneğini seçtikten sonra karşımıza çıkan Insert seçeneğini de seçerek URL için oluşturduğumuz expression ı tamamlıyoruz.

Şekil 6 - Expression Editor Son Hali

Şekil 6 – Expression Editor Son Hali

Expression ını yazdıktan sonra insert ile expressionı tamamlıyoruz. Bu işlemden sonra karşımıza aşağıdaki selector sayfası geliyor. Burada Create şeçeneği ile Selector ü oluşturuyoruz.

LIMIT IDENTIFIER

Limit Identifier kısmında belirli bir süre içinde kaç adet hatalı girişi denemesinden sonra aksiyon alınması için gerekli parametreleri giriyoruz. Burada;

Threshold: Hatalı giriş sayısı

Time Slice(msec):  Zaman aralığı

Aşağıda 100 saniye içinde 5 hatalı giriş denemesini tanımlamak için oluşturulmuş limit identifierı görebilirisiniz.

Şekil 7 - Limit Identifier Oluşturma

Şekil 7 – Limit Identifier Oluşturma

RATE LIMIT RESPONDER OLUŞTURMA

Rate limiting için oluşturduğumuz tanımlardan sonra bu tanımları responder policy yazarken kullanmamız gerekiyor. Bunun için önce Responder kısmından Action oluşturuyoruz.

Şekil 8 - Rate Limiting için Responder Action Oluşturma

Şekil 8 – Rate Limiting için Responder Action Oluşturma

Oluşturduğumuz bu Actionda hatalı giriş denemelerinden sonra kullanıcı ekranına Expression kısmında yazan formatta bir bilgilendirme çıkacaktır. Ancak  Type kısmından Respond with yerine Respond with HTML Page seçeneğini seçerek kullanıcı ekranına kendi oluşturduğumuz bir HTML sayfası çıkartabileceğimiz gibi Redirect seçeneğini seçerek başka bir sayfaya da yönlendirebiliriz.

Action oluşturduktan sonra Responder Policy oluşturup oluşturduğumuz Action’ı bu Policy ile ilişkilendirmemiz gerekiyor. Yazacağımız expressionda ise oluşturduğumuz Limit Identifierı göstermemiz gerekiyor. Expression Editor ile aşağıdaki expressionı oluşturuyoruz. Done ile kaydettikten sonra Şekil-10 daki ekran görüntüsü karşımıza çıkıyor ve Create ile Responder Policymizi tamamlıyoruz.

Şekil 9 - Expression Editör İle Expression Oluşturma

Şekil 9 – Expression Editör İle Expression Oluşturma

Şekil 10 - Responder Policy Son Hali

Şekil 10 – Responder Policy Son Hali

 

Oluşturduğumuz Responderı ilgili Virtual Serverla ilişkilendirdiğimizde işlemimizi tamamlamış oluyoruz. 5 hatalı denemeden sonra 6. Hatalı isteğimizde aşağıdaki ekran karşımıza gelecektir.

11