Salı, Temmuz 25, 2006

SNORT Saldırı Tespit Sistemi

SNORT Kurulumu

Snort ile ilgili kurulum kaynak dosyalarından yapılabildiği gibi RPM paketlerinden de yapılabilir. Snort ile ilgili dosyalar www.snort.org bağlantısından indirilebilir.

yum install snort snort-mysql

Snort uygulaması kurulduktan sonra ayarlamaların yapılması gerekir. Snort ile ilgili ayarlamalar /etc/snort/snort.conf dosyasında yapılmaktadır. Yapılacak bazı temel ayarlar aşağıdaki gibidir;

var HOME_NET 10.1.7.0/24
var EXTERNAL_NET !$HOME_NET
var DNS_SERVERS [10.1.7.10,10.1.7.11]
var SMTP_SERVERS 10.1.7.12
var HTTP_SERVERS 10.1.7.13
...
var RULE_PATH /etc/snort/rules

Snort uygulamasının topladığı kayıtların veri tabanında saklanabilmesi için;

output database: log, mysql, user=snort password=test dbname=snort host=localhost


Kuralların (Rules) Güncellenmesi

Snort ile ilgili kurallar kaynak paketleri ile gelmez. Kuralları RULEs bağlantısından indirilebilir. Kurallar belli dönemlerde güncellenir. Bu güncellemeleri indirebilmek için farklı yöntemler vardır.

1. Profesyonel destek sözleşmesi yapılmalı. Bu yöntemde güncellenen kurallara anında erişebilebilir.

2. Web sayfasına üye olmalı. Bu yöntemde kurallar belli bir zaman (beş gün) sonra indirilebilir.
MySQL Sunucusu

Mysql sunucusu snort’un topladığı uyarıların saklanacağı yer olacaktır. Bu sunucuda gerekli tablolar oluşturulur ve bilgilerin buraya yazılarak erişimin daha kolay olması sağlanır. Öncelikle sunucuya bir root şifresi verilmeli;

# service mysqld start
# mysqladmin -u root -h sensor password 'deneme'
# mysqladmin -u root -p reload
# mysqladmin -u root -p refresh
# service mysqld restart

# mysql -u root -p
# mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
>Query OK, 0 rows affected (0.25 sec)
# mysql> create database snort;
>Query OK, 1 row affected (0.01 sec)
# mysql> grant INSERT,SELECT on root.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
# mysql> SET PASSWORD FOR snort@localhost=PASSWORD('password_from_snort.conf');
>Query OK, 0 rows affected (0.25 sec)
# mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
# mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
>Query OK, 0 rows affected (0.02 sec)
# mysql> exit
>Bye

snort kullanıcısı ve snort veritabanı oluşturulduktan sonra, kayıtların saklanabilmesi için gerekli tabloların oluşturulması gerekir. Bunun için daha önceden hazırlanmış şemalar kullanılacaktır. Bu şemaya snort TAR arşivinden yada SRC kaynak paketinden elde edilebilir.

# mysql -u root -p < /tmp/snort-*/schemas/create_mysql snort
# mysql -u snort -p
mysql> use snort;
mysql> show tables;
+------------------+
| Tables_in_snort |
+------------------+
| data |
| detail |
| encoding |
| event |
| icmphdr |
| iphdr |
| opt |
| reference |
| reference_system |
| schema |
| sensor |
| sig_class |
| sig_reference |
| signature |
| tcphdr |
| udphdr |
+------------------+
16 rows in set (0.00 sec)

ADODB Eklentisinin Kurulması

ADOdb eklentisi PHP ve Phyton için bir veritabanı class’ıdır. Bu class aracılığı ile veritabanı üzerinde daha güvenli ve daha verimli yönetim sağlamaktadır. ADOdb bağlantısından indirilebilir.

BASE Uygulamasının Ayarlanması

Base uygulaması snort’un topladığı kayıtları veri tabanından okuyarak, istatistik olarak görüntülemek için kullanılır. Ayrıca bizim belirleyeceğimiz kriterlere uygun olarak sorgular da üretebiliriz. Base için gerekli RPM yada kaynak paketleri BASE bağlantısından indirilebilir. Base ile ilgili RPM kurulumu yapıldıktan sonra;

rpm -Uvh base-*.rpm
veya
tar -xzvf base-.*tar.gz

web tarayıcısı ile bağlantı kurulur ve ilk ayarlar yapılır.

http://sunucu_ip_adresi/base/

Aşağıdaki adımlar takip edilir:

1. Değişikliğin yapılacağı dosyaya web sunucusunun yazma izni olup olmadığı kontrol edilir ve gerekli uyarılar yapılır. İlgili ayarlar /dosya/yolu/base_conf.php dosyasında yapılır.

2. Kullanılacak dil ve adodb yolu belirlenir.
$DBlib_path = '/var/www/adodb';

3. Veri tabanı bağlantısı ile ilgili bilgiler girilir;
  • veri tabanı adı
  • veri tabanı bulunduğu sunucu
  • veri tabanı bağlantı portu
  • veri tabanı kullanıcısı
  • veri tabanı şifresi
NOT: Şifre base_conf.php dosyasında açık olarak tutulmaktadır.Bu nedenle erişim izinleri sınırlandırılmalıdır.

4. Arşiv veri tabanı kullanılıp kullanılmayacağı, eğer kullanılacaksa, arşiv veritabanı için yukarıdaki bilgiler girilmeli.

5. Erişim için yetkilendirme kullanılıp kullanılmayacağı belirlenir. Yönetici kullanıcı adı ve şifresi girilir.

Test


# snort -T -c /etc/snort/snort.conf
# snort-mysql -T -c /etc/snort/snort.conf

Snort yukarıdaki kontrollerden başarı ile geçerse, bir test kuralı oluşturarak kontrol yapılabilir:

# vi /etc/snort/rules/test.rules
alert tcp any any -> any any (msg:"TCP traffic";)

Test kuralı snort.conf dosyasına eklenmeli;

# vi /etc/snort/snort.conf
...
include $RULE_PATH/test.rules
...

Kategori : uygulama_

Hiç yorum yok: