PDF dökümanı oku - Seyhan Tekelioğlu

Transkript

PDF dökümanı oku - Seyhan Tekelioğlu
SNORT KURULUMU VE KONFİGÜRASYONU
By Seyhan TEKELİOĞLU
http://www.seyhan.biz
Bu doküman da Snort’u NIDS (Network Intrusion Detection System) modunda, Red Hat
Enterprise 4 linux üzerine kurulumunu anlatmaya çalışacağım. Anlatım sırasında işletim sisteminde
kurulması gereken modüllere ve mysql ayarlarına da değineceğim. Ayrıca alarmları izlemek için BASE
(Basic Analysis and Security Engine) kuracağız. Dokümanı adım adım uyguladığınızda kurduğunuz
Snort’u NIDS modunda çalışıyor hale getireceksiniz.
Bölüm 1 – Red Hat Enterprise 4 Kurulumu
Kuruluma başlarken elinizdeki 4 adet RHEL 4 (Red Hat Enterprise Linux 4) cd’sinden ilkini
cdrom’a takın ve sistemi boot edin.
Cd kontrol ekranını Skip ile geçtikten sonra gelen Welcome ekranını next ile geçin.
Dil seçiminde ben İngilizce kullandığım için English seçtim, size de Türkçe yerine İngilzice
kurulumu tavsiye ediyorum. Burada English seçtikten sonra Keybord kısmında Turkish seçin.
Sonraki ekranda Disk Partitioning olarak Automaticly partition seçin. Çıkan seçeneğe Yes
cevabını verdikten sonra Automatic Partitioning kısmında Choose to remove all partitions from this
hard drive seçeneğini işaretleyin. Sonraki ekranda yine öncekindeki gibi Yes seçeneğini seçin.
Disk setup kısmını next ile geçip, Boot loader kısmınıda olduğu gibi bırakın ve sonraki adıma
geçin.
Network Configuration kısmında DHCP kullanmayarak server’ınıza statik bir ip adresi vermenizde
yarar var. DNS ve Gateway’i de ayarladıktan sonra sonraki adıma geçin.
Firewall bölümünde Choose enable firewall’u seçili duruma getirin ve SSH, HTTP, HTTPS
portlarını açın. SELinux kısmını warn olarak ayarlayın.
Additional Language kısmını US English olarak seçin. Time Setup’da Türkiye’yi bulup İstanbul’u
işaretleyin (Europe/Istanbul).
Root Password olarak bir şifre belirleyin. Sonraki adımda Customize software packages to be
installed seçip ilerleyin.
Packet Group Selection kısmında Desktop olarak hiçbir şey seçmeyin hepsi unchecked olsun
(Biz konsoldan çalışacağız). Applications kısmında Editör olarak ben vi kullanıyorum o nedenle onu
seçtim, burada istediğiniz bir editörü seçebilirsiniz. Text based internet olduğu gibi kalsın. Application
başlığındaki diğer her şey işaretsiz olsun. Server Section kısmında Server Configuration Tools işaretli
olsun, Web Server kısmında detaylara girin ve sadece Crypto-Utils, Mod_auth_mysql, Mod_perl,
Mod_ssl, Php, Php_mysql, Webalizer işaretli kalsın. Mail Server, Windows File Server, DNS Server,
FTP Server, Postgresql Database işaretsiz kalsın. MySQL Database’de sadece MyODBC,
Mod_auth_myswl, Mysql-devel, Mysql-server, Mysqlclient10, Perl-DBD-Mysql, Php-mysql seçili
olsun. News Server, Network Servers, Legacy Network Servers işaretsiz olsun. Development kısmında,
Development Tools’u işaretleyin standart işaretlenen modüller dışında Expect ve Gcc-objc modülünü
işaretleyin. Development altındaki diğer tüm işaretleri kaldırın. System kısmında Administartion’ı
işaretleyin ve gelen seçenekler olduğu gibi kalsın. Bundan başka System altında işaretli başka bir şey
kalmasın. Miscellaneous kısmında seçili bir şey olmasın.
Bu seçimlerden sonra 2 kere next’e basıp kurulumun kaç cd olacağını öğrenin. Son olarak
Continue düğmesine tıklayarak kuruluma başlayın. Kurulum bittikten sonra ekstra hiç bir şey kurmak
istemediğinizi belirtip sistemi yeniden başlatın. RHEL 4 kuruldu. Tebrikler.
Bölüm 2 – Snort İçin Ön Hazırlık
RHEL 4 kurulumundan sonra konsol ekranından root hesabı ile giriş yapın ve snort için
kullanacağımız yeni bir hesap yaratın. Bunun için önce groupadd snort ile snort isimli bir grup oluşturun
daha sonrada useradd –g snort snort ile snort isimli bir kullanıcı oluşturup bunu snort grubuna ekleyin.
Yeni oluşturduğumuz bu kullanıcıya şifre belirlemek içinse passwd snort komutunu verip iki kere
istediğimiz şifreyi yazmamız yeterli olacaktır.
Kullanıcıyı oluşturduktan sonra şimdi yeni user’la sisteme giriş yapıp ayarlara su - (sudo)
kullanarak devam edebiliriz (su - ve sudo için daha fazla bilgiye google.com.tr dan ulaşabilirsiniz).
Öncelikle SSH bağlantısı için konfigürasyonu elden geçirmelisiniz. Bunun için /etc/ssh/sshd_config
dosyasını editörünüz ile açıp PermitRootLogin no ve PermitEmptyPasswords no satırlarını ekleyin.
Bu işlemden sonra dosyayı kayıt edip kapatın ve ayarların geçerli olması için /etc/init.d/sshd
restart komutu ile ssh servisini yeniden başlatın. Servisler ile ilgili olarak bir de kullanılması gereken http
ve mysql servislerini de başlatmalısınız. Bunun içinde /etc/init.d/httpd start ile servis başlatılıp
chkconfig httpd on ile her açılışta çalışır duruma getirilir. Mysql içinde /etc/init.d/mysqld start ve
chkconfig mysqld on komutlarını kullanabilirsiniz.
Şimdi sırada snort kurulumu için gerekli dosyaların indirilmesi işlemi var. Bütün dosyaları root
folder’ına toplayacağız. Kurulumları orada yine su - ile root hakkı alıp yapacağız. Buradaki – ile root
user’ının folder’ını kullanacağınızı belirtin.
Bu yazı hazırlanırken en son snort sürümü 2.4.4 idi. Biz bu sürüme göre kurulum işlemlerini
yapacağız. Önce wget http://www.snort.org/dl/current/snort-2.4.4.tar.gz komutunu kullanarak snort’u
indirin.
Daha sonra yine bu yazı hazırlanırken son sürümü 6.3 olan PCRE kütüphanesini wget
http://belnet.dl.sourceforge.net/sourceforge/pcre/pcre-6.3.tar.gz komutunu kullanarak indirmemiz
gerekiyor.
Bölüm 3 – Snort Kurulumu ve Ayarları
Snort’u kurmadan önce PCRE kütüphanesini derlememiz gerekiyor. Bunun için önce sıkıştırılmış
tar dosyasını tar –zxvf pcre-6.3.tar.gz komutuyla açın. PCRE nin bulunduğu dizine girip sırasıyla önce
./configure yazıp enter’a basın, işlem bitince make yazıp enter’a basın ve son olarak make install yazıp
enter’a basın ve kurulumu tamamlayın. Şimdi tekrar önceki dizine dönüp snort kurulumuna başlayalım.
Bu işlemlere de önce tar dosyasını açmakla başlayalım. tar –zxvf snort-2.4.4.tar.gz komutuyla snortu
açalım, daha sonra snort dizinine girip ./configure –with-mysql komutunu yazalım, sonra sırasıyla
make ve make install konutlarını çalıştıralım. Bu işlemler ile snort kurulmuş oldu. Tebrikler.
Kurulumdan sonra yapmamız gereken birkaç işlem daha var. Snort’un işlem yapacağı bazı
dizinleri oluşturmanız gerekiyor. Şimdi snort dizininden çıkmadan dizinleri oluşturmak için sırasıyla
şunları yapın. Önce mkdir /etc/snort komutunu çalıştırın. Daha sonra mkdir /etc/snort/rules ve mkdir
/var/log/snort komutlarıyla dizin oluşturma işlemini bitirin. Daha sonra cd etc/ ile etc dizinine giderek her
şeyi cp * /etc/snort komutuyla /etc/snort altına kopyalayın.
Sıra snort için kullanılacak kural dosyasını indirip uygulamaya geldi. Bunun için diğer dosyaları da
indirdiğiniz dizine geri dönün. Biz siteye kayıtlı kullanıcı olmadığımız için sadece kayıtsız kullanıcıların
kullanabileceği kural dosyalarını indirebiliyoruz.(Kayıtlı kullanıcı olup gerekli ücreti verirseniz daha güncel
http://www.snort.org/pubdosyaları
indirmeye
hakkınız
olur).
wget
bin/downloads.cgi/Download/vrt_pr/snortrules-pr-2.4.tar.gz komutuyla kural dosyasını indirin.
Sonrasında tar –zxvf snortrules-pr-2.4.tar.gz komutu ile tar dosyasını açın. Daha sonra cd
rules komutu ile dizine girin ve son olarak daha önce açtığımız rules klasörüne yeni kural tablolarını
kopyalayın. Bunun için cp –R * /etc/snort/rules komutunu kullanabilirsiniz.
Şimdide snort.conf dosyası üzerinde bazı değişiklikler yapıp kullanabileceğimiz hale getireceğiz.
snort.conf dosyası /etc/snort dizini altında bulunur. Kullandığınız editör programı ile konfigürasyon
dosyasını açın. Ben vi kullandığım için .vi /etc/snort/snort.conf komutunu kullandım. Konfigürasyon
dosyasında ilk değiştirmeniz gereken yer var HOME_NET any satırıdır. Buraya iç networkünüzde
kullanılan ip bloğunu yazın. Bizim örneğimizde buraya var HOME_NET 192.168.1.0/24 yazdım. Daha
sonra var EXTERNAL_NET any satırını var EXTERNAL_NET !$HOME_NET şeklinde değiştirin.
Bu satırda bizim yaptığımız işlem HOME_NET ‘de yazan ip bloğu ve/veya blokları dışındaki tüm
ip bloğunun dış ip bloğu olduğunun tanımlanmasıdır. Sonraki değiştirmemiz gereken satır kuralların
belirlendiği dizinin tanımlandığı var RULE_PATH satırıdır. Burayı var RULE_PATH /etc/snort/rules
şeklinde değiştirin.
Daha sonra preprocessor stream4_reassamble satırını değiştirmemiz gerekiyor. Bu satırı
preprocessor stream4_reassemble: both,prts 21 23 25 53 80 110 111 139 143 445 513 1433 olarak
değiştirin.
Konfigürasyon dosyasında son olarak logların tutulacağı database’i belirtmemiz gerekiyor.
Burada database için belirleyeceğimiz kullanıcı adı ve şifre mysql ile oluşturacağınız database’de
kullanılanla aynı olmak zorunda. Bu satırı output database: log, mysql, user=snort password=<snort
user ı için oluşturduğunuz şifre> dbname=snort host=localhost şeklinde tanımlayın.
Snort’u açılışta çalışacak bir daemon olarak tanımlayabiliriz. Bunun için önce cd /etc/init.d ile
init.d dizinine girin, wget http://www.internetsecurityguru.com/snortinit/snort komutuyla snort
dosyasını indirin. Daha sonra chmod 755 snort ile snort dosyasını çalıştırılabilir hale getirin. Son olarak
açılışta çalışması için chkconfig snort on komutunu yazın.
Bölüm 4 – Mysql Database Ayarları
Snort için kullanılacak database’i ayarlamak için bazı mysql komutları gireceğiz. Burada istenen
database adı, kullanıcı adı ve şifre bilgilerini snort.conf dosyasında yazdıklarınızla aynı olmasına dikkat
edin. Şimdi database oluşturmaya başlayabiliriz. Konsola mysql yazıp enter’a basın. Daha sonra
sırasıyla aşağıdaki satırları yazın.
mysql> SET PASSWORD FOR root@localhost=PASSWORD('sifre');
>Query OK, 0 rows affected (0.6 sec)
mysql> create database snort;
>Query OK, 1 row affected (0.02 sec)
mysql> grant INSERT,SELECT on root.* to snort@localhost;
>Query OK, 0 rows affected (0.03 sec)
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('snort_sifreniz');
>Query OK, 0 rows affected (0.00 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
>Query OK, 0 rows affected (0.00 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
>Query OK, 0 rows affected (0.00 sec)
mysql> exit
Oluşturduğumuz database’e tabloları eklemek için ise konsoldan mysql -u root -p < /root/snort2.4.4/schemas/create_mysql snort komutunu çalıştırın. Bu komuttan sonra size root şifresi
sorulacaktır. Şifrenizi yazıp tablo oluşturmayı tamamlayın. Buradaki root şifresi ile database oluştururken
yazdığınız root şifresi birbiriyle aynı olmalıdır. Bu işlem ile oluşturduğumuz snort database’ine tabloları
da eklemiş olduk. Snort kurulum işlemimiz bitti sayılır. Şimdi sırada alarmları izleyebileceğimiz görsel bir
arabirim oluşturmaya geldi.
Bölüm 5 – BASE (Basic Analysis and Security Engine) Kurulumu
Alarmları izlemek için BASE kullanacağız. BASE php tabanlı bir scripttir. Snort database’inden
aldığı verileri işler ve karşımıza anlaşılır bilgiler çıkartır. Ayrıca arama, listeleme v.s. gibi işlemler ile çıkan
alarmların yönetimini kolaylaştırır. BASE kurulumuna başlamak için daha önce dosyaları kaydettiğimiz
dizine dönüp önce ADODB sonrada BASE’i indirmeye başlayalım. Bu yazı hazırlanırken en son ADODB
versiyonu 4.8.1, en son BASE versiyonu ise 1.2.4 idi. Kurulumlar bu versiyonlar üzerinden yapılacaktır.
wget http://belnet.dl.sourceforge.net/sourceforge/adodb/adodb481.tgz komutuyla ADODB’yi
indirin.
wget http://belnet.dl.sourceforge.net/sourceforge/secureideas/base-1.2.4.tar.gz
BASE’ i indirin.
ile
de
İndirdiğimiz dosyaları kurmadan önce Firewall’da bazı ayarlamalar yapmamız gerekiyor. Bu
işlemler sistemimizin daha güvenli çalışmasını sağlayacaktır. Önce cd /etc/sysconfig komutuyla
sysconfig dizinine girin. vi iptables komutuyla iptables dosyasını editör ile açın. Daha sonra
konfigürasyon satırlarından aşağıdaki satırları bulup silin.
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Satırları sildikten sonrada aşağıdaki satırı da konfigürasyona ekleyin.
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 –j ACCEPT
Son olarak da -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT satırını
-A RHFirewall-1-INPUT -p icmp --icmp-type any -j REJECT ile değiştirin. Bu işlemler bittikten sonra
services iptables restart komutuyla Firewall kurallarının yeniden alınmasını sağlayın.
Şimdi sırada ADODB kurulumu var. Kuruluma başlamadan önce indirdiğimiz dosyayı apache’nin
www dizinine kopyalamamız gerekiyor. Bunun için dosyayı indirdiğiniz yere gelip cp adodb481.tgz
/var/www komutunu kulanın. Kopyalamadan sonra cd /var/www ile www klasörüne girin. tar –zxvf
adodb481.tgz ile tar dosyasını açın ve daha sonra rm –rf adodb481.tgz ile buradaki dosyayı silin.
ADODB ile işimiz bitti. Sıra geldi BASE kurulumuna.
BASE kurulumu için önce dosyaları indirdiğimiz dizine geri dönün. ADODB de olduğu gibi
buradaki indirilmiş base-1.2.4.tar.gz dosyasını bu sefer apache klasörlerinden html altına
kopyalayacağız. Bunun için cp base-1.2.4.tar.gz /var/www/html komutunu kullanın. Şimdi cd
/var/www/html komutuyla kopyalama yaptığımız dizine gidin ve tar –zxvf base-1.2.4.tar.gz ile tar
dosyasını açın. Buraya kopyaladığımız dosyayı rm –f base-1.2.4.tar.gz ile silin. Son olarak da açılan
dizinin adını daha kolay ulaşılabilir bir hale getirelim. Bunun için mv base-1.2.4 base komutu dizinin
adını değiştirmekte bize yardımcı olacaktır.
Şimdi BASE içindeki konfigürasyon dosyasında bazı değişiklikler yapmanız gerekecek. Bunun
için cd /var/www/html/base ile BASE’in bulunduğu dizine girin. Konfigürasyon dosyasını oluşturmak için
cp base_conf.php.dist base_conf.php komutunu kullanın.
Sırada konfigürasyon dosyasının içindeki ayarlamalara geldi. Bunun için vi base_conf.php
komutuyla konfigürasyon dosyasını editör ile açıyoruz. Burada önce dosyaların durduğu yeri $BASEurlpath = “/base”; olarak ayarlayın.
Sonra ADODB nin durduğu yeri $DBlib_path = “/var/www/adodb/”; olarak değiştirin.
Database tipini $DBtype = “mysql”; olarak seçin. Daha sonra database bağlantı ayarlarını
yapmanız gerekiyor. Bunun için de konfigürasyonu aşağıdaki şekilde düzenleyin.
$alert_dbname = “snort”;
$alert_host = “localhost”;
$alert_port = “”;
$alert_user = “snort”;
$alert_password = “snort_sifreniz”;
Bu işlemlerden sonra internet tarayıcınızla BASE kurulumuna devam edebilirsiniz. Bunun için
tarayıcınızın adres satırına https://localhost/base yazıp kurulum ekranının gelmesini sağlayın. İlk
ekranda Setup Page linkine tıklayın.
Çıkan ekranda AG düğmesine tıklayarak tabloları oluşturun. Tablo oluşturma işlemi sona
erdikten sonra Main page linkine tıklayarak BASE’in ana sayfasına gelebilirsiniz.
BASE ekranına herkesin ulaşmasını istemiyorsanız girişi şifreleyebilirsiniz. Bunun için apache
içinden BASE’in bulunduğu dizini güvenli hale getirin. Önce mkdir /var/www/passwords komutuyla
passwords dizinini oluşturun. Sonra /usr/bin/htpasswd –c /var/www/passwords/passwords kullanici
komutuyla dizine erişmesini istediğiniz bir kullanıcıyı tanımlayın. kullanici kısmına istediğiniz bir şeyi
yazabilirsiniz. Bu komuttan sonra size bu kullanıcı için bir şifre soracaktır. Erişim şifresini belirleyin.
Daha sonra şifreli giriş işlemini apache’ye tanıtmamız gerekiyor. Bunun yapmak için vi
/etc/httpd/conf/httpd.conf komutuyla apache konfigürasyon dosyasını açın.
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Bu satırları bulduktan sonra sonuna aşağıdaki satırları ekleyin.
<Directory "/var/www/html/base">
AuthType Basic
AuthName "Seyhan"
AuthUserFile /var/www/passwords/passwords
Require user kullanici
</Directory>
Son olarak da apache’nin servislerini yeniden başlatmamız gerekiyor. Bunun için /etc/init.d/httpd
restart komutunu kullanın.
Artık snort’u çalıştırıp neler olup bittiğine bakabiliriz. Snort çeşitli modlarda çalışabilmektedir.
Burada NIDS (Network Intrusion Detection System) modunda çalıştıracağız (Daha fazla bilgi için bkz.
http://www.snort.org/docs/snort_htmanuals/htmanual_2.4/rc1/).
Komut satırından snort -dev -l /var/log/snort -h 192.168.1.0/24 -c /etc/snort/snort.conf
komutunu çalıştırarak snort’u aktif hale getirin.
Snort’un kurulu olduğu makine trafiğin geçtiği bir yere bağlı değil ise Snort’un çalışıp
çalışmadığını test etmek için snort kurulu makineye nmap, nessus v.s. gibi programlarla tarama başlatıp
BASE içinden alarmların gelişini takip edebilirsiniz. BASE ekranındaki hareketlilik snort’un düzgün
çalıştığınız göstergesidir.
Snort’u başarıyla kurdunuz. Tebrikler. Başka bir makalede görüşmek üzere hepinize iyi
çalışmalar.
Seyhan Tekelioğlu
http://www.seyhan.biz

Benzer belgeler