26 Mayıs 2012 Cumartesi

Dansguardian

1. Dansguardian Nedir?
Dansguardian Linux , FreeBSD ,OpenBSD , NetBSD , Mac OS X  ve Solaris üzerinde çalışan  web içerik filtreleme (http trafiğini filtreleme )  yazılımıdır. Domain , kullanıcı ve ip bazlı filtreleme yeteneklerine sahip bir yazılım olan dansguardian’ın ana sayfasına

 2. Dansguardian Nasıl Çalışır?
Dansguardian istemci internet tarayıcısı ile Proxy arasında bulunur ve  aradaki trafik üzerinde gerekli işlemleri yapar. İstemci tarayıcısından çıkan web istekleri dansguardin’a ulaşır ve dansguardian filtreleme işlemlerini yaptıktan sonra isteği Proxy’ye gönderir. Aşağıda dansguardian çalışması şekillerle anlatılmıştır. Burada dansguardian’ın “8080” ve Proxy sunucusunun da “3128”’i posttan çalıştığı varsayılmıştır. 
 İstemciden web sunucusuna giden istek dansguardin'a gelir. Gerekli filtreleme işlemelerinden sonra paket Proxy’ye oradan da web sunucusuna iletilir. Web sunucusu paketi işleyip gerekli cevabı Proxy’ye gönderir ve oradan da tekrar dansguardin'a iletilir. Gerekli filtreleme işlemlerinden geçirildikten sonra paket istemciye geri döner. Dansguardian basit olarak bu şekilde çalışmaktadır.


Dansguardian Kurulumu
Kullanılan dağıtıma göre kurulum gerçekleştirilebilir. Burada kaynak koddan kurulumu anlatılacaktır. Kurulum için gerekli paket http://dansguardian.org/ adresinden temin  edinilebilir. Burada dansguardian için şu anda son sürüm olan 2.12.0.0 sürümü kurulacaktır.
# cd /usr/local
# wget http://dansguardian.org/downloads/2/Alpha/dansguardian-
2.12.0.0.tar.gz
# tar –zxvf  dansguardian-2.12.0.0.tar.gz

Çalışma dizininde dansguardian-2.12.0.0 adından bir dizin oluşmaktadır. Kurulum için bu dizin içerisinde ./configure , make , make install , make clean betikleri çalıştırılarak kurulum temel olarak yapılabilir. Özelleştirilmiş bir kurulum yapmak için ./configure betiğine çeşitli parametreler verilerek yapılabilir. ./configure –help ile bu parametreler öğrenilebilir.

3. Dansguardian Yapılandırması Ve Çalıştırılması
languagedir = ''
Dil dosyalarının bulunduğu dizin. İsteğe göre languagedir ile belirtilen dizin altındaki turkish dizini içindeki dosyalar düzenlenebilir. 

   languagedir = '/usr/local/share/dansguardian/languages'
 language = ''

Bu parametre ile hata mesajlarının gösterileceği dil belirlenir.
   language=’turkish’
 logfileformat=’’
   # 1 = DansGuardian format        2 = CSV-style format
   # 3 = Squid Log File Format      4 = Tab delimited

İsteğe göre bir değer verilebilir. Eğer log analiz programı olarak sarg kullanılması düşünülüyorsa bu değer squid log dosyası biçimi olmalıdır. Çünkü Sarg ile dansguardian log dosyası biçimini analiz edilememektedir.

logfileformat=’3’
 loglocation = ''

Bu parametre ile dansguardian'ın log tutacağı dosyanın yeri  belirtilir. 

loglocation = '/var/log/dansguardian/access.log'
 filterip = ‘’

Dansguardian'ın dinleyeceği ip adresi belirtilir. Eğer boş bırakılırsa dansguardian bütün ipleri dinleyecektir.

 filterip=’192.168.1.1’
 filterport = ‘’

Dansguardian’ın çalışacağı port numarasını belirtir.

 filterport=’8080’
 proxyip = ‘’

Dansguardian ile beraber çalışacak Proxy’nin çalıştığı ip numarası. Eğer dansguardian ve Proxy aynı makine üzerinde hizmet veriyorlarsa buraya 127.0.0.1 yazılabilir.

proxyip=’127.0.0.1’
proxyport = ‘’

Proxy’nin çalışacağı port numarası. Dansguardian istemciden gelen isteği alıp değerlendirdikten sonra bağlanacağı Proxy’nin çalıştığı port numarası. 

proxyport=3128
 weightedphrasemode = “”

Sizden yada bağlanmak istediğiniz sitenin bulunduğu sunucudaki trafik yükünün yoğun olmasından dolayı dansguardian  geç açılan siteleri engellemektedir.Bu seçenek “0”,”1”,”2” değerlerini alabilmektedir. Bu özelliği iptal etmek için bu değer “o” yapılır.

   weightedphrasemode = 0

4. Dansguardian Filtreleme İçin Gerekli Ayar Dosyaları
 Dansguardian için gerekli kısıtlamaların yapılacağı ayar dosyaları lists dizini altında bulunur. Genel olarak banned ile başlayanlar yasaklamaları exception ile başlayanlarsa filtrelemenin yapılmayacağı es geçileceği yönündedir.

Bannedextensionlist:
Engellenmek istenen dosya uzantıları belirtilir.
   Örnek tanımlama
     .exe
     .tar
 Bu  tanımla ile exe ve tar uzantılı dosyaların indirilmesi engellenmiş olur.

 Bannediplist:
Engellenmek istenen ip adresleri belirtilir.
   Örnek Tanımlama
     192.168.1.1
 Bu tanımlama ile 192.168.1.1 ipsinin internet erişimi yasaklanır.

Bannedmimetypelist
Engellenmek istenen MIME tiplerinin belirtilir.
   Örnek Tanımlama    audio/mpeg

Bannedregexpurllist
URL’de geçen kelimeler için düzenli ifade deyimleri ile url bazında filtreleme yapılır.Bannedurllist dosyasından farkı düzenli ifade deyimlerinin kullanılabilmesidir.
Örnek Tanımlama
   (nix|rosoft|nux)

Örneğin  bu dosya içinde yapılacak (nix|rosoft|nux)  gibi bir tanımla  www.unix.org www.chinaunix.net , www.microsoft.com gibi siteler engellenmiş olur. Ayrıca daha ileri düzeyde düzenli ifade terimleri kullanılabilmektedir.

Bannedsitelist
Domain bazında filtrelemenin yapıldığı dosya. Bu dosyaya yazılacak domain isimleri engellenir.
   Örnek Tanımlama
   google.com

Bu tanımlama ile sadece google.com domaini yasaklanır. Yani www.google.com yada mail.google.com yasaklanmış olur ancak www.google.com.tr için yasaklama söz konusu değildir.

Bannedurllist
İstenilen URL’lerin bir kısmını yada tamamının engellenmesi için filtrelemenin uygulandığı dosya. 
   Örnek Tanımlama
   google.com/bsd

Bu tanımlama ile www.google.com/bsd adresine erişim yasaklanmış olur ancak www.google.com/linux adresine erişim yapılabilir.Domain bazında değil url bazında filtreleme yapılır.
 Örnek Tanımlama
 yahoo.com

Bu tanımla yapıldığı takdirde www.yahoo.com adresine erişim yasaklanmış olur ancak mail.yahoo.com adresine erişim sağlanabilir.

Exceptionfilesitelist 
Dosya indirilecek olan sitelerin isimlerinin bulunduğu dosya.
   Örnek tanımlama
   windowsupdate.microsoft.com

Exceptioniplist
Engellenmek istenen ip adreslerinin bulunduğu dosya.
   Örnek Tanımlama    192.168.1.1
 Bu tanımlama ile  192.168.1.1 ipsi için filtreleme uygulanmaz.

Exceptionregexpurllist
URL’de geçen kelimeler için filtreleme yapılmaması istenen adresler belirtilir.
   Örnek Tanımlama
   ender
 Bu tanımlama ile URL’de ender geçen adresler filtrelenmez

Exceptionsitelist
Filtrelemenin yapılmayacağı domain isimleri belirtilir.
   Örnek Tanımlama
   yahoo.com
 Bu tanımlama ile yahoo.com sitesi için filtreleme yapılmaz.

Exceptionurllist
Filtrelemenin yapılmayacağı site bölümleri belirtilir. google.com/bsd yada bilgiguvenlik.org/openbsd doğru tanımlamalardır. 
   Örnek Tanımlama
   google.com/bsd 
 Bu tanımlama ile google.com/bsd adresi için filtreleme uygulanmaz.

Blacklist
SquidGuard’dan alınan kara liste uygulamasının yapıldığı siteler ve URL’ler bulunur. İsteğe göre bu klasör içerisindeki dosyalara eklemeler yapılarak engellenmek istenen domain yada URL’ler yazılabilir.

Greysitelist
Dansguardian çalışma mantığına göre “grey“ listeleri “banned” listelerinin üstüne yazar. Aynı şekilde “exception” listeleri de “banned”  listelerinin üstüne yazar. Grey listesinin exception listesinden farkı url filtrelemesini es geçmek ve diğer filtreleme kurallarının yapılmasıdır.Aşağıdaki dosyalarda gerekli belirtimler yapılsın
   Bannedsitelist  bilgiguvenlik.org
   Bannedextensionlist  .tgz 

Bu şekilde ne bilgiguvenlik.org adresine nede http://www.bilgiguvenlik.org/isoqlog/isoqlog-2.2.1.tar.gz dosyasına erişim yapılabilir. Eğer bilgiguvenlik.org ile ilgili hiçbir filtrelememenin yapılmaması isteniyorsa bilgiguvenlik.org exceptionsitelist dosyasında belirtilmelidir.
    Exceptionsitelist  bilgiguvenlik.org

Bu şekilde hem bilgiguvenlik.org adresine hemde http://www.bilgiguvenlik.org/isoqlog/isoqlog-2.2.1.tar.gz dosyasına erişim yapılabilir. Ancak bilgiguvenlik.org adresine erişim sağlansın ancak bilgiguvenlik.org sitesi için gerekli diğer filtrelemeler yapılsın istenirse burada grey listeleri kullanılmalıdır.
   Bannedsitelist  bilgiguvenlik.org
   Bannedextensionlist  .tgz 
   Greysitelist  bilgiguvenlik.org

Bu şekilde yapılan bir  tanımlama ile www.bilgiguvenlik.org sitesine erişim yapılabilir ancak http://www.bilgiguvenlik.org/isoqlog/isoqlog-2.2.1.tar.gz dosyası temin edilemez çünkü  www.bilgiguvenlik.org için gerekli filtrelemeler yapılmış ve  bannedextensionlist dosyasında tgz uzantılı dosyalar yasaklandığı için isoqlog-2.2.1.tar.gz dosyasına erişim yapılamaz. 

Greyurllist 
Greysitelist dosyasında exception listeleri banned listelerinin üstüne yazar.grey listeleri de banned listelerinin üstüne yazar ancak exception listelerinden farkı; exception listeleri filtrelemeyi tamamen kaldırır.Grey listeleri ise filtrelemede istenilen bir bölümü kaldırır tüm filtrelemeyi değil.  
   Bannedsitelist   bilgiguvenlik.org
   Greyurllist  bilgiguvenlik.org/isoqlog
Bu şekilde bir tanımlama ile  www.bilgiguvenlik.org/isoqlog için filtreleme yapılmaz ve www.bilgiguvenlik.org/isoqlog  adresine erişim yapılabilir.

5. Dansguardian İle Filtre Gruplarının Oluşturulması
Dansguardian’da filtreleme grupları oluşturarak istenilen  kullanıcıları belirlenen gruplara atayarak gruplara özgü filtreleme seçenekleri oluşturulabilir. Öncelikle dansguardian.conf dosyası içerisindeki değişikliklerin yapılması gerekiyor.

#  vi dansguardian.conf
filtergroups = 4
filtergroupslist = '/usr/local/etc/dansguardian/lists/filtergrouplist'
#
“filtergroups”

değişkeni ile kaç tane filtre grubu oluşturulacağı belirleniyor. Burada 4 tane filtreleme grubu oluşturularak örnekler verilecek.
  “filtergroupslist = '/usr/local/etc/dansguardian/lists/filtergrouplist' ”
ile de filtreleme gruplarının tanımlarının yapılacağı yer belirtiliyor.
192.168.195.159=filter1
192.168.193.47=filter2
192.168.195.250=filter3
81.213.183.239=filter4

 “authplugin = '/usr/local/etc/dansguardian/authplugins/ip.conf'” 
bu değer ile de ip bazlı tanımlamlamaların yapılacağı belirtiliyor .
 “/usr/local/etc/dansguardian/authplugins/ip.conf”   

 ip bazlı tanımlamalar yapılırken oluşturulacak grupların bulunacağı dosya belirtiliyor.
 plugname = 'ip'
ipgroups = '/usr/local/etc/dansguardian/lists/authplugins/ipgroups'
 filtreleme grupları oluşturuluyor. İsteğe göre düzenlenip gruplar oluşturulabilir.

192.168.195.159=filter1
192.168.193.47=filter2
192.168.195.250=filter3
81.213.183.239=filter4

 6. Dansguardian Çalıştırılması
 Kurulum esnasında ./configure betiğine verilen sysvdir seçeneğine göre scripts dizini altında başlangıç için hazır betikler bulunur. Kullanılan sisteme göre buradaki hazır betikler kullanılabilir yada özelleştirilebilir. Burada OpenBSD üzerine kurulum gerçekleştirildiği için  

 # cp bsd-init /usr/bin/dansguardian-hazir-betik
# chmod 755 cp bsd-init /usr/bin/dansguardian-hazir-betik
# dansguardian-hazir-betik start
# dansguardian-hazir-betik stop

 başlangıç için kullanılacak hazır betik dosyası PATH değişkeninin tanımlı olduğu bir dizine kopyalanır ve çalıştırılabilir olması için gerekli izinler chmod komutuyla verilir. PATH değişkenin tanımlı olduğu dizinleri öğrenmek için env kullanılabilir.
# env | grep ‘PATH’
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin

Ardından betiğe verilerek start ve stop komutlarıyla dansguardian başlatılır yada durdurulur. ps ile dansguardian çalışması kontrol edilebilir.
 # ps –auwx | grep ‘dansguardian’
nobody   29716  0.0  0.4 23604  1856 ??  Ss    12:23PM    0:00.08
/usr/local/sbin/dansguardian
nobody    6783  0.0  0.3 23688  1740 ??  I     12:31PM    0:00.03
/usr/local/sbin/dansguardian

Ayar dosyalarında gerekli değişiklikler yapıldıktan sonra değişikliklerin etkin olabilmesi için ya dansguardian durdurulup yeniden başlatılmalıdır yada dansguardian –r parametresi verilerek çalıştırmalıdır. which komutuyla dansguardian tam yolu bulunmalıdır.
 # which dansguardian 
/usr/local/sbin/dansguardian
ardından –r parametresi ile değişikliklerin etkin olması sağlanır.
 # /usr/local/sbin/dansguardian –r

Aynı şekilde dansguardianı durdurmak için –q parametresi verilebilir yada hazır betikleri ile de aynı işlem gerçekleştirilebilir.
# dansguardian –q

7. Dansguardian Log Takibi
 Dansguardian.conf dosyası içinde “loglocation “ parametresiyle belirtilen değişkene verilen dizinde dansguardian log’ları tutulur.  Buradan erişim yapılan adresler takip edilebilir.
# tail –f /var/log/dansguardian/access.log
  1143025442.897   1196 192.168.195.250 TCP_MISS/200 17529 GET

Hiç yorum yok:

Yorum Gönder