Güvenlik

Snort IPS – IDS Windows ve Kali Linux Üzerinde Kurulumu ve Yapılandırılması

Snort dünyada en fazla tercih edilen açık kaynak kodlu IDS/IPS yazılımından biridir. Snort’u kişisel bilgisayarda kullanılabileceği gibi iyi yapılandırılması durumunda büyük yapılarda en az ticari rakipleri kadar başarılı olmaktadır. Snort’un kullanım amacı genelde IPS’ den ziyade IDS olarak kullanılmaktadır. Snortun kullanım amaçlarını aşağıdaki gibi sıralaya biliriz.

Sniffer
Packet Logger
Forensic Data Analysis tool
Network Intrusion Detection System

Snort’un iyi yapılandırılması durumunda ağınızı bir çok zararlı yazılımdan koruya bileceği gibi ağdaki sorununların kaynağının tespit edilmesinde de etkili olacaktır. Yapılandırma işleminden sonrada sürekli takip edilerek snort’un üretmiş olduğu uyarıların analizleri iyi yapılması ve analiz sonuçlarına göre yeni imzalar oluşturulmadır. Snortun iyi yapılandırılması için iyi derece TCP/IP bilgisine sahip olmak gerekmektedir.

Kurulumları Windows 7 ve Kali Linux 1.0.9a üzerinde gerçekleştireceğim.

Windows Ortamı için Kurulum ve Yapılandırma

İlk olarak https://www.snort.org adresinden “Snort_2_9_7_2_Installer.exe” ve “snortrules-snapshot-2972.tar.gz” indiriyoruz.  Snort kurulumu için gerekli olan WinPcap (“WinPcap_4_1_3.exe”) programını  http://www.winpcap.org/ adresinden indiriyoruz. WinPcap ağ analizi ve paket yakalama için açık kaynak kodlu bir kütüphane.

WinPcap 4.1.3 sürümünü kurmak için:

WinPcap_4_1_3.exe üzerine çift tıklayın
Gelen karşılama ekranını Next ile geçiyoruz.
WinPcap lisans sözleşmesini kabul ediyoruz.
Install ile kurulumu tamamlıyoruz.

Snort’un kurulumu için izlenecek adımlar:

İndirmiş olduğumuz Snort_2_9_7_2_Installer.exe üzerine çift tıklıyoruz.
Karşımıza gelen lisans anlaşmasını kabul ediyoruz.

clip_image002

Yüklenecek olan bileşenler ekranını “Next” ile geçiyoruz.

clip_image003

Snort’u kuracağımız dizini seçip “Next” ile ilerliyoruz. Ben kurulumu C:\Snort dizini altına gerçekleştireceğim.

clip_image005

“Close” ile Snort’un kurulumunu tamamlıyoruz.

clip_image007

Kurulum tamamlandıktan sonra “snortrules-snapshot-2972.tar.gz” şıkıştırılmış dosyanın içerisndeki kuralları ve config dosyalarını C:\Snort dizinine kopyalıyoruz.

clip_image009

 

Kali Lunix üzerinde Snort Kurulumu

Öncelikle Kali Linux’a ssh ile bağlanmak için ssh servisini start edip ip bilgisini kontrol ediyorum. Bu işlem için “service ssh start” ve “ifconfig” komutlarını kullanıyoruz.

clip_image010

clip_image012

Snort’un kurulumuna geçmeden Kali Linux’u güncelleme işlemini gerçekleştiriyoruz. Bu işlemi “apt-get update && apt-get upgrade && apt-get -y install dkms” komutu ile gerçekleştiriyoruz.

 

clip_image014

Snort’un kurulumunu için ilk önce snort ‘un veri toplama kütüphanesinin kurulumunu yapıyoruz.  Eğer bu kütüphanein kurulumu snortdan önce gerçekleştirmezsek snort kurulumu sırasında aşağıdaki hata alırız.

clip_image016

Kurulumu gerçekleştirme“wget https://www.snort.org/downloads/snort/daq-2.0.4.tar.gz” komutu iledownload ediyoruz.

clip_image018

Download işleminden sonra “tar xvfz daq-2.0.4.tar.gz” komutu ile şıkıştırılmış dosyaları açıyoruz.

 

clip_image020

“cd daq-2.0.4” komutu ile şıkıştırılmış dosyaları açtığımız dizine giriyoruz.

clip_image022

“./configure; make; sudo make install” komutu ile daq kurulumunu gerçekleştiriyoruz.

clip_image024

 

Bir sonraki adım olarak snort 2.9.7.2 versiyonunu download edeceğiz. “wget https://www.snort.org/downloads/snort/snort-2.9.7.2.tar.gz

clip_image026

“tar xvfz snort-2.9.7.2.tar.gz” komutu ile şıkıştırılmış dosyaları açıp. “cd snort-2.9.7.2” komutu ile şıkıştırılmış dosyaları açtığımız dizine giriş yapıyoruz.

clip_image028

clip_image030

Snort’un kurulumunu “./configure –enable-sourcefire; make; sudo make install” komutu ile gerçekleştiriyoruz.

clip_image032

Kurulum sonunda aşağıdaki gibi bir hata ile karşılaşa biliriz. Burada libpcap kütüphanesinin kurulu olmadığını belirtmekte.

clip_image034

Libpcap kütüphanesin kurulumu için ilk önce “wget http://www.tcpdump.org/release/libpcap-1.5.3.tar.gz” komutu ile download ediyoruz.

clip_image036

İndirdiğimiz şıkıştırılmış dosyayı “tar xvfvz libpcap-1.5.3.tar.gz” komutu ile açarak “cd libpcap-1.5.3”  komutu ilede ilgili klasör içerisine giriyoruz.

clip_image038

Kurulum için sırasıyla  “./configure” “make && make install” komutları çalıştırıyoruz.

clip_image040

clip_image042

Snort’un kurulumunda aşağıdaki gibi bir hata ile de karşılaşabiliriz.

clip_image044

Libdnet kurulumu için “wget https://libdnet.googlecode.com/files/libdnet-1.12.tgz” komutu ile download işlemini gerçekleştiriyoruz.

clip_image046

Download işleminden sonra” tar xvfvz libdnet-1.12.tgz” komutu ile şıkıştırılmış dosyarı açıp “cd libdnet-1.12” komutu ile şıkıştırılmış dosyaları açtığımız dizine giriyoruz.

clip_image048

Kurulumu sırasıyla “./configure “CFLAGS=-fPIC” “ , “make install” komutlarıyla tamamlıyoruz.

clip_image050

clip_image052

Libdnet kütüphanesinin kurulmu tamamladıktan sonra snort kurulumu yukarıda anlatıldığı gibi yeniden gerçekleştiriyoruz ve kurulum aşağıdaki gibi başarılı bir şekilde tamamlanıyor.

clip_image054

Kurulumu tamamladıktan sonra snort’un kurallarını “snortrules-snapshot-2962.tar.gz” www.snort.org sayfasından indirmemiz gerekmektedir. İndirmek için öncelikle kayıt olup sayfada oturum açmamız gerekmektedir.

İndirme işlemi tamamladıktan sonra “snortrules-snapshot-2972.tar.gz” şıkıştırılmış dosyanın içerisndeki  kuralları ve config dosyalarını /root/snort-2.9.7.2 dizinine kopyalıyoruz. Şıkıştırılmış dosyayı açmak için Kali Linux üzerinde “tar –xvf snortrules-snapshot-2972.tar.gz” komutunu kullanıyoruz.

clip_image055

 

Snort.conf Dosyasının Yapılandırılması

Snort ile ilgili bütün konfigurasyon ayarlarını “snort.conf” dosyası üzerinden yapacağız.  Snort.conf dosyası windows için “C:\Snort\etc” dizini içerisinde Kali Linux için kurulumu yaptığımız “/root/ snort-2.9.7.2/etc” içerisinde bulunmaktadır.Dosyanın yeri kurulum yaptığımız dizine göre değişiklik gösterecektir. Config dosyasında ilk olarak ağ ayarlarını yapılandıracağımız bölüm bulunmaktadır. Bu bölümün iyi yapılandırılması gerekmektedir.  Ağ ayarlarının iyi yapılandırılması Snort’un performanslı çalışmasını ve  az sayıda false-positive üretmesini sağlayacaktır.

Configurasyon  dosyasında IP adresleri “ipvar”, portlar “portvar”, değişken ise “var” anahtar sözcüğü ile tanımlanmaktadır. Kendi iç network’ümüzü (koruma altına aldığımız network) “HOME_NET”, dış network’ü ise (saldırı beklenen network) “EXTERNAL_NET” olarak tanımlanmış durumda. Ayrıca korumaya altına alacağımız sunucular için gerekli değişkenler de burada tanımlanmıştır.

clip_image056

IP adreslerini tek başına veya liste olarak tanımlaya biliriz. Ağ adresleri için CIDR notasyonunu da kullana biliriz. Liste veya CIDR notasyonu kullandığımızda bu yapılandırmayı “[]” köşeli parantezler arasında ifade edeceğiz. Belirtiğimiz ağ adresisi içerisindeki bazı ip adreslerini kapsam dışında tutmak istersek “!” işareti ile belirtmemiz gerekmektedir. Örnek yazılım olarak :

ipvar HOME_NET [10.10.120.10, 192.168.2.0/24, ![192.168.2.100, 192.168.2.110] ]                  

Örnekte korumaya aldığımız iç network’ümüzü 10.10.120.10 ip adresinden ve 192.168.2.0/24 ağından oluştuğunu fakat 192.168.2.100, 192.168.2.110 iplerini iç network’ümüze dahil etmediğimiz belirtmiş olduk.

Ben HOME_NET’i dahil olduğum ip bloğu olarak belirtip. EXTERNAL_NET de bir sınırlamaya gitmeyerek any olarak bırakıyorum.

clip_image058

Bir sonraki adım olarak kuralların bulunduğu dizinin config dosyasına tanımlanması gerekmektedir. Configurasyon dosyasında “RULE_PATH”, “SO_RULE_PATH” ve “PREPROC_RULE_PATH” değişkenleri kuralların bulunduğu dizini göstermektedir.

clip_image060

Kuralları Windows için kurulum yaptığımız C:\Snort dizini altında gösteriyoruz. Kali Linux için /root/ snort-2.9.7.2/etc dizini gösteriyoruz.

clip_image062

clip_image064

Bir sonraki adım olarak white ve black listituttuğumuz dosyaları göstermek için “WHITE_LIST_PATH” ve “BLACK_LIST_PATH” değişkenlerin de düzenleme yapacağız. Configurasyon dosyasında “WHITE_LIST_PATH” ve “BLACK_LIST_PATH” değişkenleri için indirdiğim kurallar arasında hazır olarak “blacklist.rules” dosyası bulunmakta fakat whitelist.rules dosyası bulunmamaktadır.Bu dosyayı Windows için “C:\Snort\rules” dizini altında Kali Linux için “/root/ snort-2.9.7.2/etc” dizini altına bizim oluşturmamız gerekmektedir. Bu işlem için ilgili dizin altına “whitelist”  adında boş txt dosyası oluşturup uzantısını .”rules” olarak değiştiriyoruz.

Bu işlemleri tamamladıktan sonra windows ortamı için configurasyon dosyasında değişleri aratıp önümde ki “/” işaretini “\” şeklinde değiştirmemiz gerekmektedir. Çünkü windows klasörler içindeki alt klasör veya dosyarı “\” işariti ile yolunu göstermekteyiz. Linux da ise “/” işareti ile.

clip_image066

clip_image068

Bir sonraki adım olarak Windows için dynamic libraries dll dosyalarını ve dizini configurasyon dosyasına göstereceğiz. Dll dosyaları “C:\Snort\lib\snort_dynamicpreprocessor” dizini altında bulunmaktadır. Düzenlemeyi configurasyon dosyasında “Step #4” altında yapmaktayız.

clip_image070

Kali Linux için /usr/lib/ snort_dynamicpreprocessor altında .so uzantısı ile bulunmaktadır.

clip_image072

Windows için Dynamicengine dll dosyasınıda yine aynı yerde gösteriyoruz. Dll dosyası “C:\Snort\lib\snort_dynamicengine” dizininde bulunmakta.

clip_image074

Kali Linux için /usr/lib/ snort_dynamicpreprocessor klasörü altında gösteriyoruz.

clip_image076

Bir sonraki adım olarak Windows için output ayarlarını yapacağız. Bu işlemleri Step #6’ ın altında gerçekleştireceğiz. Ben çıktıları tcpdump olarak “c:\Snort\log\tcpdump.log” olarak çıkması için düzenliyorum. Ayrıca aynı yerde bulunan “classification.config, reference.config” config dosyalarını yerini belirtiyoruz. Dosyalar C:\Snort\etc altında bulunmaktadır.

 

clip_image078

Kali Linux üzerinde output ayarları istenildiği gibi değiştirilebilir.

clip_image080

Configurasyon dosyasında yapıla bilcek başka bir ayar ise kuralların aktif/pasif yapılması olabilir. Kuralları pasif yapmak için başına “#” işareti koymamız gerekmekte. Aktif yapmak içinde işareti kaldırmamız gerekmekte. Aşağıdaki gibi

clip_image082

Snort’un Test Edilmesi

Windows için snort’u çalıştımak için komut satrından “cd C:\snort\bin” ile dizinine gidilir. C:\Snort\bin>snort –h ile yardım penceresi görüntülenir.

clip_image084

Makinemiz üzerindeki interfaceleri listelemek için “Snort –W” komutunu kullanıyoruz. Eğer makinemizin üzerinden birden fazla ethernet kartı olsaydı hepsi listelenecek ve index numarası üzerinde “-i” paremetresi ile  isteğimiz interface’in trafiğini dinleye biliriz.

clip_image086

Örnek olarak “snort –v –i 1” ile snort’u verbose modunda çalıştırmış olduk.

clip_image088

Kali Lunix üzerinde snort’u “snort -vd” komutu ile çalıştırarak test ediyoruz.

clip_image089

Çıktı ekranı aşağıdaki gibidir.

clip_image091

Mevcut bir pcap dosyasını incelemek için “snort -c /etc/snort/snort.conf -r /Malware/20140905/20140905.pcap -A console -l snort_log > ~/snort_log/snort_pcap.log 2>&1” komutunu kullana biliriz.

clip_image092

Komutu çalıştırdığımızda root dizini altında oluşturduğumuz “snort_log” klasörüne snort_pcap.log dosyasının oluşturulmuş olduğunu görmekteyiz.

clip_image094

 

clip_image096

 

Snort hakkında daha fazla bilgi için https://www.snort.org/#documents adresini ziyaret edebilirsiniz.

Faydalı olması dileğiyle. Bir sonraki yazıda görüşmek üzere.

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu