İçeriğe geç

CITRIX (ADC) NETSCALER GEOIP 2 DATABASE

Amaç:

www.tnetshop.com adresine Farklı Location’ lardan (Hindistan, Rusya, Amerika, Çin gibi farklı Ülkelerden) gelen istekleri Citrix ADC (Netscaler) cihazının üzerinde bloklanmasını talep ediyoruz.

Bu işlemi Citrix ADC (Netscaler) cihazında bloklamak için GeoIP2 database’i yükleyebiliriz. Citrix ADC (Netscaler) cihazı eskiden Maxmind’ın Geoip formatını (yeni ismi ile GeoIP Legacy) desteklemekteydi ancak Maxmind firması şuan GeoIP Legacy yerine GeoIP2 formatını desteklemektedir.

Bilgi:

Statik proximity veri tabanına sahip UNIX tabanlı bir ASCII dosyasıdır. Bu veritabanına bir konum dosyasından eklenen girişlere statik girişler denir. Citrix ADC (Netscaler) cihazına sadece bir adet konum dosyası yüklenebilmektedir.

Varolan dosyanın üzerine yeni bir dosya eklerseniz bir öncekini geçersiz kılacaktır.

Bu database dosyaları Citrix ADC (Netscaler) cihazı tarafından desteklenen bir formatta / var / netscaler / inbuilt_db dizininde bulunmaktadır.

Citrix ADC (Netscaler) cihazı GeoIP2 database’ini netscaler formatına dönüştürebilmesi için bir Converter Tool kullanmanız gerekmektedir.

Maxmind firmasını hem ücretli hem de ücretsiz versiyonu bulunmaktadır. Ücretsiz versiyonda kullanılabilir ancak ücretli versiyon daha sık güncellenmekte ve daha güvenilirdir.             

Ücretsiz Versiyon: GeoLite2 database

Ücretli Versiyon: GeoIP2 database

Bu makaleyi hazırlarken ben GeoLite2 database’ ini kullanarak yazdım.

Talimatlar:

1) Maxmind’ dan GeoIP2’yi indirdirme

Maxmind gibi GeoIP2 database indirebileceğimiz firmalardan da bulup indirebilirsiniz ancak ben testlerimi Maxmind’ dan GeoIP2 database’ ini indirerek yaptım. Link aşağıda mevcuttur. 

GeoIP2 yi indirirken GeoLite2 Country ve CSV formatında indirmemiz gerekmektedir.

1.1) İndirme işlemini tamamladıktan sonra WinSCP programını kullanarak indirmiş olduğumuz dosyayı;

  • /var/netscaler/locdb dizisinin içine yüklüyoruz.

2) Citrix ADC (Netscaler) Cihazına Converter Tool’ u indirme.

Citrix ADC (Netscaler) cihazının GeoIP2’ yi kendi formatında çalıştırabilmesi için Sıkript’e yani Converter tool’ a ihtiyacı vardır.

              Converter Tool’ u indirmek için aşağıdaki link’ i kullanabilirsiniz.

https://github.com/citrix/MaxMind-GeoIP-Database-Conversion-Citrix-ADC-Format

2.1) Converter Tool’ u indirme işlemini yaptıktan sonra, Converter Tool’u :

  • /var/netscaler/locdb dizisinin içine yüklüyoruz.

3) Converter Tool’ u Çalıştırma

Converter Tool’ u /var/netscaler/locdb klasörünün içine yükledikten sonra ssh il Converter Tool’u çalıştırıyoruz.

SSH’ la bağlandıktan sonra sırasıyla aşağıdaki komutları çalıştırıyoruz;

> shell

Copyright (c) 1992-2013 The FreeBSD Project.

Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994

        The Regents of the University of California. All rights reserved.

root@CitrixADC# cd /var/netscaler/locdb/

root@CitrixADC# chmod +x Convert_GeoIPDB_To_Netscaler_Format_WithContinent.pl

root@CitrixADC#

3.1) Geoip2 Database’i Citrix ADC (Netscaler) Formatına Dönüştürme

Converter Tool’ u çalıştırdıktan sonra Perl işlemini yani GeoIP2 database’ ini netscaler formatına çeviriyoruz. Burada Perl etmemiz gereken dosyalar;

GeoLite2-Country-Blocks-IPv4.csv

GeoLite2-Country-Blocks-IPv6.csv

GeoLite2-Country-Locations-en.csv

SSH’ la bağlandıktan sonra sırasıyla aşağıdaki komutları çalıştırıyoruz;

root@CitrixADC# perl Convert_GeoIPDB_To_Netscaler_Format_WithContinent.pl -b GeoLite2-Country-Blocks-IPv4.csv -i GeoLite2-Country-Blocks-IPv6.csv -l GeoLite2-Country-Locations-en.csv

Converting the file to netscaler format….

Converting the file to netscaler format….

root@CitrixADC#

3.2) Perl işlemini Tamamladıktan Sonra;

Perl ettiğimiz yani Netscaler formatına dönüştürdüğümüz dosya zip’ li bir dosya olarak oluşturulur. Netscaler’ a bind etmemiz için zip’ li dosyayı açmamız gerekmektedir:

root@CitrixADC# gunzip Netscaler_Maxmind_GeoIP_DB_IPv4.csv.gz

root@CitrixADC# ls

COPYRIGHT.txt                                  

 LICENSE.txt

Netscaler_Maxmind_GeoIP_DB_IPv4.csv

Netscaler_Maxmind_GeoIP_DB_IPv6.csv.gz

4) Netscaler’ a Bind Etme

Netscaler formatına çevirdiğimiz GeoIP2 databse’ ini Citrix ADC (Netscaler) cihazına bind ediyoruz.

> add locationfile  /var/netscaler/locdb/Netscaler_Maxmind_GeoIP_DB_IPv4.csv

 Done

4.1) Location Wildcard Parameter

Citrix ADC (Netscaler) cihazında Wildcard “yes” olarak değil de “no” olarak geliyor. Bu komut yalnızca NetScaler 11.1 build 53.11 ve üst versiyonları için geçerlidir.

Wildcard’ ı “yes” olarak ayarlamak için:

> set locationParameter -matchWildcardtoany YES

5) Eklenen GeoIP2 Database Kontrolü

Bu komutu yazmamızın amacı eklemiş olduğumuz GeoIP2 database’ inde hata alıp almadığımızı kontrol etmektir. Görüldüğü üzere 323920 satır okunmuş ve 0 hata alınmıştır.

> show locationparameter

Static Proximity

—————-

Database mode: File

Flushing: Idle; Loading: Idle

Context: geographic

Qualifier 1 label: Continent

Qualifier 2 label: Country_Code

Qualifier 3 label: Subdivision_1_Name

Qualifier 4 label: Subdivision_2_Name

Qualifier 5 label: City

Qualifier 6 label: Organization

IPv4 Location file (format: netscaler):

 /var/netscaler/locdb/Netscaler_Maxmind_GeoIP_DB_IPv4.csv

Lines: 323920 Warnings: 0 Errors: 0

Current static entries: 323913  Current custom entries: 0

IPv6 Location File

Location file (format: ):

 Not loaded

Lines: 0 Warnings: 0 Errors: 0

Current static entries: 0  Current custom entries: 0

Match wildcard qualifier to any: YES

 Done

6) Senaryomuza Göre Policy Oluşturma:

Citrix ADC (Netscaler) cihazında www.tnetshop.com adresine farklı location’lardan yapılan istekleri  bloklamak için Responder Policy oluşturarak block işlemini gerçekleştirebiliriz.

  • AppExpert > Responder >  Responder Policy > Add
  • Name: Turkiye-Harici-Blok
  • Action: RESET

Expression: CLIENT.IP.SRC.MATCHES_LOCATION(“*.TR.*.*.*.*”).NOT

Not: Ben action olarak RESET kullandım, isterseniz action’ ı DROP da kullanabilirsiniz.


7) İlgili Virtual Server’ a bind etme.

Traffic Management > Load Balancing > Virtual Server ‘ üzerine sağ tıklayıp Edit’liyoruz:

 7.1) Policy Bind Etme  

Edit’ ledikte sonra Policies tabını add’ liyoruz.

  • Oluşturduğumuz Policy’nin type’ını şeçiyoruz:
  • Policy Binding’ den oluşturmuş olduğumuz policy’i seçmek için Click to select’ i seçiyoruz: 
  • Oluşturmuş olduğumuz Responder policy’ i seçip Select’ e tıklıyoruz.  
  • Policy’ imizin Priority’ sini belirledikten sonra Bind işlemini tamamlayabiliriz.

8) Policy’ i Test Etme

  1. Policy’i devreye alamadan siteyi kontrol ediyorum.

Site çalışmaktadır.

2. Policy’i devreye aldıktan sonra aşağıda da görüldüğü üzere sayfamız RESET dönmektedir.

3. Aşağıda da görüldüğü üzere Policy’miz hit etmektedir.

Kategori:Citrix (ADC) NetscalerMakaleler