Bu döküman, Apinizer platformu üzerinde geolocation (coğrafi konum) özelliği kullanılarak belirli şehirlerden gelen isteklerin nasıl engelleneceğini veya izin verileceğini anlatmaktadır.

Çalışma sonunda, bu gelen isteklerin hangi şehirlerden geldiğini görselleştirmek için Kibana Map üzerinden gösterim yapacağız.

1-) Geolocation Verisi Sağlama

Bu veriyi sağlamak için MaxMind , IpGeolocation hizmetlerinden yararlanabilirsiniz. Bu hizmetler, IP ve şehir bilgisini içeren veritabanlarını indirmenize olanak tanır.

Bu adımda, MaxMind’in sunduğu ücretsiz GeoLite2 City veritabanını indirerek nasıl kullanılacağını anlatacağız.

Apinizer, geolocation verisini elde etmek için genellikle istemci IP adresini kullanır. Gelen IP adresi, bir veritabanı üzerinden sorgulanarak isteğin hangi şehirden geldiği belirlenir.


Sayfaya kayıt işlemi tamamlandıktan sonra, aşağıda belirtilen kırmızı işaretli alana giderek GeoLite2 City bölümünde zip dosyasını indiriyoruz ve bunu çıkartarak .mmdb uzantılı dosyamızı elde ediyoruz:

 


2-) Geolocation Veritabanının Apinizer'a Entegrasyonu


Administration → System Settings → IP Geolocation Setting sayfasından .mmdb uzantılı dosya buraya eklenir ve deploy edilir.


3-) XFF Aktifleştirme ve Allow/Block IP List Politikası Ekleme 

Apinizer üzerinden, X-Forwarded-For (XFF) header bilgisi kullanılarak, isteklerde (request) istemcinin (client) gerçek IP adresi belirlenebilir.

Allow IP politikası ile belirli IP adreslerinden veya belirli şehirlerden gelen isteklere izin verilebilir. Block IP politikası kullanılarak ise bu istekler engellenebilir.


XFF bilgisini kullanabilmek için, Proxy ayarları üzerinden Settings sekmesinde aktif edebilirsiniz:


Bu Proxy'e Blocked IP List politikasını ekleyerek, İstanbul üzerinden gelen istekleri engelleyelim:


IP Geolocation alanından İstanbul seçilir ve kaydedilir:


4-) Erişimin Engellenmesi ve Sonuç


İstanbul lokasyonundaki bir IP adresi ile servise yapılan istekte erişim engellendi:


  1. Apinizer platformu üzerinde İstanbul'dan gelen istekleri nasıl engellediğimizi anlattık.
  2. MaxMind'in sunduğu GeoLite2 City veritabanını indirip, bu veriyi Apinizer'a entegre ettik. 
  3. X-Forwarded-For (XFF) header bilgisi ile istemcilerin gerçek IP adreslerini belirleyerek, belirli şehirlerden gelen istekleri kontrol ettik.
  4. İstanbul'dan gelen istekleri engellemek için Block Ip List politikalarını kullanarak, İstanbul'u seçtik ve bu şehirden gelen erişimi başarıyla engelledik.


Çok Önemli

Kibana üzerinden gelen isteklerin hangi şehirlerden geldiğini görselleştirmek için bakınız.