Bu makalenin amacı bir tür Saldırı Tespit Sistemi (Intrusion Detection System) olan Snort.2.8.6'nın Ubuntu-10.04-Desktop-i386 işletim sistemi üzerine kurulabilmesini sağlamaktır. Devamında yayınlanacak olan ikinci dokümanda ise Snort'un daha performanslı çalışabilmesini sağlamak için Snort'un ürettiği ikazları okunabilir hale getiren Barnyard programının kurulum adımları anlatılacaktır. Ayrıca üretilen kayıtların (logs) MYSQL veritabanında saklanması ve bu kayıtların izlenmesinde kullanılan Basic Analysis and Security Engine'in (BASE) uygun şekilde yapılandırılmasından bahsedilecektir.
Snort'un Saldırı Tespit Sistemi (STS) olarak kullanıldığı durumlarda genellikle iki ağ arayüz kartı (Network Interface Card – NIC) kullanılır. Bu arayüzlerinden birisi ağı dinlemek için, diğeri ise Snort'a uzaktan erişip Snort'un yapılandırılmasında kullanılır. Ağı dinleyen arayüze genellikle IP adresi atanmaz ve bağlı olduğu anahtarın (switch) tüm portları bu arayüze aynalanır (mirroring). Bu yöntemle, anahtar üzerinden geçen tüm paketlerin Snort tarafından dinlenilmesi sağlanır. Fakat bu dökümanda Snort, test amaçlı kurulacağı için sadece bir arayüz kullanılacaktır. Bu arayüz üzerinden geçen paketler dinlenilecek ve Snort bu arayüz üzerinden yapılandırılacaktır.
Snort'un üzerine kurulacağı Ubuntu-10.04-Desktop-i386 adlı işletim sistemini http://www.ubuntu.com/ adresinden indirebilirsiniz. Yazılım varsayılan ayarları ile kurulmuştur. İşletim sistemi dili olarak İngilizce seçilmiştir. Aşağıdaki adımlara geçmeden önce Ubuntu'nun tek bir ağ arayüz kartı ile kurulduğu varsayılmıştır.
Dikkat! Kurulum esnasında talep edilecek kullanıcı adına "snort" haricinde başka bir kullanıcı adı verin. "snort" kullanıcı adı ile kuruluma devam ederseniz ileride paket kurulumları sırasında hata ile karşılaşacaksınız. Bu kılavuzun hazırlanmasında kullanıcı adı olarak "snortroot" kullanılmıştır.
Snort'un kurulacağı ağ topolojisi aşağıda gösterilmiştir:

Snort Kurulumu İçin Gerekli Ön Paketlerin Kurulması
Snort'u indirip kurmadan önce, Snort'un ihtiyaç duyduğu bazı paketlerin indirilip kurulması gerekmektedir. Bunun için sırasıyla "Applications -> Accessories -> Terminal" yolundan bir Terminal (Komut Satırı) penceresi açılır.

Komut satırı açıldıktan sonra aşağıdaki komut çalıştırılır.
sudo apt-get install libpcap0.8-dev libmysqlclient15-dev mysql-client-5.1 mysql-server-5.1 bison flex apache2 php5 libapache2-mod-php5 php5-gd php5-mysql libtool libpcre3-dev php-pear vim ssh openssh-server
Bizden kurulum yaparken oluşturduğumuz yetkili kullanıcının şifresi istenecektir. Kullanıcı şifresi girilir ve kurulum işlemine geçilir. Kuracağımız dosyaların belirli bir boyutta olacağı belirtilir ve kuruluma devam edip etmek istemediğimiz sorulur. Gelen soruyu "y" ile yanıtlıyoruz ve paketler bizim için indirilip kurulmaya başlanıyor.

Kurulum işlemi MYSQL'in kurulumunu da içerdiği için kurulum aşamasında bizden veritabanı yöneticisi olan "root" kullanıcısı için şifre istenecektir. Karışıklığa neden olmamak için burada ve bundan sonraki tüm şifre gerektiren işlemlerde varsayılan "Test12345" şifresi kullanılacaktır. Şifre girilir ve kuruluma devam edilir.

Snort Ve Mysql Kurulumu
Bu adımda "snort-mysql" paketi kurulacaktır. Kuruluma başlamadan önce "ifconfig" komutu çalıştırılır ve bilgisayarda bulunan ağ arayüzleri ve bu arayüzler ile ilgili bilgiler listelenir. Dokümanın hazırlanmasında kullanılan sanal makinede yalnızca bir tane ağ arayüz kartı vardır ve bu arayüz "eth0" olarak adlandırılmıştır. Eğer sisteminizde birden fazla ağ arayüz kartınız olsaydı, bunlar da "eth1, eth2, ……., ethN" e kadar devam edecekti. Bu aşamada Snort'un hangi arayüzü dinleyeceğine karar verilir ve sonraki adıma geçilir. Sonraki aşamalarda bizden dinlemek istediğimiz arayüzün adı sorulacaktır.

Artık "snort-mysql" paketi kurulmaya hazırdır. Aşağıdaki komut çalıştırılır ve gelen onaylama ekranına "y" girilir ve işleme devam edilir.
sudo apt-get install snort-mysql


Bu aşamada bizden dinlemek istediğimiz ağ arayüzü ve bu arayüzün IP adresi sorulacaktır. Bu alana yazdığımız bilgiler ilk aşamada çok önemli değildir. Bu ayarları daha sonra yapılandırma ayarlarından değiştireceğiz. Önemli olan "veritabanı yaratayım mı?" sorusuna "evet" cevabı ile devam edilmesidir. Gelen pencereleri onaylayarak kuruluma devam ediyoruz.

Kurulum sonunda alt paketlerin kurulumu ile ilgili bir hata alıyorsanız Ubuntu'yu kurarken oluşturduğunuz kullanıcı adının "snort" olup olmadığını kontrol edin. Eğer kullanıcı adını "snort" olarak tanımladıysanız, bu aşamada hata ile karşılaşırsınız. Başka bir kullanıcı adı ile kuruluma devam etmelisiniz.
Snort'un ürettiği kayıtları (log) yazacağı veritabanı yaratılmalıdır. Bunun için aşağıdaki adımlar sırası ile takip edilmelidir. Öncelikle aşağıdaki komut çalıştırılarak MYSQL yönetim durumu ekranına girilir.
mysql -u root -p
Komut çalıştırıldıktan sonra kurulum aşamasında belirlediğimiz "root" kullanıcısına ait şifre istenecektir. Belirlediğiniz şifre girilerek devam edilir. Biz varsayılan "Test12345" şifremizi girerek devam ediyoruz.

Doğru kullanıcı adı ve şifre ile oturum açıldıysa bizi aşağıdaki gibi bir oturum ekranı karşılar.

Şimdi ise Snort'un ürettiği kayıtları (log) kaydetmek için kullanacağı veritabanı yaratılır. Aşağıdaki komut ile "snort" isminde bir veritabanı oluşturulur. Hemen altındaki "grant" komutu ile az önce yaratılan "snort" veritabanı üzerinde tablo yaratma, veri ekleme, silme, güncelleme ve seçme hakları "snort" isimli kullanıcı için elde edilir. "SET PASSWORD" komutu ile de "snort" kullanıcısına belirlenen şifre atanır ve ardından "exit" komutu ile MYSQL oturumundan çıkılır. Biz varsayılan "Test12345" şifresini atadık, siz de kendi belirlediğiniz şifreyi atayabilirsiniz.
create database snort;
grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
SET PASSWORD FOR snort@localhost=PASSWORD('Test12345');
exit

Ardından "cd" komutu ile önceden oluşturulmuş Snort'un kullanacağı veritabanı şemasının (schema) bulunduğu dizine gidilir. Bu şema "zcat" komutu ile MYSQL içerisinde bulunan "snort" veritabanına aktarılır.
cd /usr/share/doc/snort-mysql/
zcat create_mysql.gz | mysql -u root -p snort
Bu işlemi gerçekleştirebilmek için "root" kullanıcısı için oluşturulan şifre istenecektir. Şifre girilir ve işleme devam edilir.

Bu adımda "snort" veritabanın doğru şekilde kurulup kurulmadığını kontrol edilir. Bunun için önce MYSQL'e "root" kullanıcısı ile giriş yapılır ve kontrol için aşağıdaki komutlar çalıştırılır. MYSQL'e girerken "root" kullanıcısı için oluşturulan şifre istenecektir.
mysql -u root –p
SHOW DATABASES;
use snort;
SHOW TABLES;


Şekil 14 – "snort" veritabanı tablolarının kontrolü
"exit" komutu ile MYSQL yönetim oturumundan çıkılır ve tekrar komut satırı ekranına dönülür. Şimdi ise "/etc/snort/" içerisinde bulunan "snort.conf" dosyası uygun şekilde düzenlenmelidir. "snort.conf" dosyası aşağıdaki komut kullanılarak "vi" ile açılır.
sudo vim /etc/snort/snort.conf

Yapılandırma dosyası üzerinde değişiklik yapabilmek için "vi" komutlarını hakkında bilgi sahibi olmanız gerekmektedir. "vi" hakkında herhangi bir bilgi sahibi değilseniz yapılandırma dosyasını "gedit" editörü ile grafiksel ortamda da düzenleyebilirsiniz.

Dosya içerisinde "var HOME_NET any" satırı bulunur ve satır başına "#" karakteri eklenerek yorum satırı haline getirilir. "vi" içerisinde arama ve değişiklikler yapabilme ile ilgili bilgileri http://www.linuxprogramlama.com/index.php?topic=48.0;wap2 adresinde bulabilirsiniz. Satırı yorum satırı haline getirdikten sonra altına "var HOME_NET $eth0_ADDRESS" satırı eklenir. "eth0" kullanılan arayüzün adıdır. "ifconfig" komutu bize arayüzler hakkında bilgi veren komutumuzdu. Siz de dinlemek istediğiniz arayüzün adını "ifconfig" komutu ile öğrendikten sonra "_ADDRESS" yazan kısmın önüne ekleyiniz.
#var HOME_NET any
var HOME_NET $eth0_ADDRESS

Bu defa "output log_tcpdump: tcpdump.log" satırı "snort.conf" dosyası içerisinde bulunur ve "#" karakteri ile yorum satırı haline getirilir.
#output log_tcpdump: tcpdump.log

Aynı şekilde "output log_unified" satırı bulunur ve bulunduğu satırın altına aşağıdaki satır eklenir. Burada "snort.log" Snort'un kayıtlarını kaydedeceği dosyanın ismini, "limit 128" alanı ise bu dosyanın MegaByte cinsinden alabileceği azami değeri belirtir.
output unified2: filename snort.log, limit 128

Yaptığımız değişikler kaydedilip çıkılır ve yapılandırma ayarlarını doğru şekilde gerçekleştirip gerçekleştiremediğimizi anlamak için Snort aşağıdaki komut satırı kullanılarak çalıştırılır. Burada "-c" parametresi ile hangi yapılandırma dosyasının kullanılacağı ve "-i" parametresi ile de hangi arayüzün dinlenileceği belirtilir.
sudo snort -c /etc/snort/snort.conf -i eth0

Eğer tüm adımları doğru tamamlamışsanız gördüğünüz ekran aşağıdaki gibi olmalıdır.

"ctrl+c" tuş birleşimi ile Snort durdurulur ve sonraki adımlar ile yapılandırma ayarlarına devam edilir.
Not: Base, Adodb'nin kurulması ve Barnyard'ın yapılandırmasından ikinci makalede bahsedilecektir.








Son Yorumlar