Snort - Ubuntu 14.04
Sissejuhatus
Snort on tasuta vabavaraline võrgu sissetungi vältimise süsteem ja võrgu sissetungi avastamise süsteem, mis on loodud Martin Roesch´i poolt 1998. aastal. Snort´i vabavaralisel võrgupõhisel sissetungi avastamise süsteemil on võime teostada reaalajas liikluse analüüsi ja pakettide logimist IP võrkudes. Snort teostab protokolli analüüsi, sisu otsimist ja sisu vastavuse kontrolli.
Programmi saab samuti kasutada, et avastada sonde või rünnakuid, kaasa arvatud operatsioonisüsteemi sõrmejälgede katseid, juurdepääsu liideseid, puhvri ületäitumisi, serveri sõnumiploki sonde ja salajasi portide skaneerimisi.
Snort´i saab konfigureerida kolme erinevat viisi: nuuskurina, pakettide logimisena ja võrgu sissetungi avastamisena. Nuuskurina loeb programm võrgu pakette ja näitab neid konsoolis. Pakettide logimise viisina logib programm pakette kettale. Võrgu sissetungi avastamise viisina jälgib programm võrguliiklust ja analüüsib seda vastu kasutaja tehtud reeglite. Programm võtab peale seda kasutusele konkreetsed meetmed, olenevalt mida on tuvastatud. [1]
Siin juhendis seadistame võrgu sissetungi vältimise süsteemi snort, milleks seadistame Snort´i, Barnyard2´e, MySql´i ja BASE´i Ubuntu 14.04-le.
Seda konfiguratsiooni on natuke keeruline seadistada ja diagnoosida ning vajab mõningast tarkvara kompilatsiooni.
Snort installeerimine ja seadistamine
[2] NB: Siin juhendis teeme kõike sudo õigustes, selleks tuleb sisestada:
sudo -i
- Esmalt tuleb teha tavaline apt-get update/upgrade:
apt-get update
apt-get upgrade
- ning peale seda installeerime snort´i:
apt-get install snort
- Snort´i installatsiooni ajal peab kirjutama enda koduvõrgu ehk kaitstud alamvõrgu:
192.168.56.0/24
- Seejärel peab muutma snort.conf faili:
nano /etc/snort/snort.conf
NB: Selleks, et minna mingile kindlale reale nano-s, tuleb kasutada CTRL + W ja siis CTRL + T ning kirjutada vastav reanumber.
- Muudame rida 51:
ipvar HOME_NET 192.168.56.0/24
- ning rida 536:
output unified2: filename snort.log, limit 128, mpls_event_types, vlan_event_types
- Peale seda taaskäivitame snort´i:
service snort restart
- Eemaldame eelmised logikirjed:
rm /var/log/snort/snort.log
- Muudame /etc/snort/rules/local.rules faili:
nano /etc/snort/rules/local.rules
- lisame sinna kaks reeglit testimise eesmärgil:
alert icmp any any -> $HOME_NET any (msg:"ICMP Test NOW!!!"; classtype:not-suspicious; sid:1000001; rev:1;) alert tcp any any -> $HOME_NET 80 (msg:"HTTP Test NOW!!!"; classtype:not-suspicious; sid:1000002; rev:1;)
Snort testimine
- Testime snort´i:
snort -i eth1 -v
NB: CTRL + C, et peatada testimine.
- Seejärel teeme konfiguratsiooni laadimise testi:
snort -A console -u snort -g snort -c /etc/snort/snort.conf -i eth1 -T
- Käivitame snort´i otse hoiatuste konsoolirežiimis(kui serverit nüüd pingida, peaksid ilmuma hoiatused):
snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i eth1
Barnyard2 seadistamine
- Esmalt me installeerime kompilatsiooni sõltuvused ja barnyard2 sõltuvused:
apt-get install autoconf
apt-get install libtool
apt-get install libpcap-dev
apt-get install libmysqlclient-dev
apt-get install libdumbnet-dev
apt-get install libdaq-dev
- Tuleb teha ka nimeviit:
ln -s /usr/include/dumbnet.h /usr/include/dnet.h
- Seejärel installeerime barnyard2´e:
cd /usr/src
wget https://github.com/firnsy/barnyard2/tarball/master
tar -zxf master
cd firnsy-barnyard2*
autoreconf -fvi -I ./m4
./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu
make
make install
cp /usr/local/etc/barnyard2.conf /etc/snort
cp schemas/create_mysql /usr/src
mkdir /var/log/barnyard2
- Muudame Barnyard2.conf faili:
nano /etc/snort/barnyard2.conf
- Muudame rida 226:
output alert_fast
- Muudame rida 347, selleks kustutame kommentaari märgi ära ning muudame parooli:
output database: log, mysql, user=snort password=sinuvalitudparool dbname=snort host=localhost
MySql seadistamine
- Installeerime MySqli serveri:
apt-get install mysql-server
- Installatsiooni käigus küsitakse Mysql´i serveri parooli, tuleb sisestada:
sinuvalitudparool
- Seadistame andmebaasi:
mysql -u root -p
- Sisestame need read SQL> konsooli:
create database snort;
create database archive;
grant usage on snort.* to snort@localhost;
grant usage on archive.* to snort@localhost;
set password for snort@localhost=PASSWORD('sinuvalitudparool');
grant all privileges on snort.* to snort@localhost;
grant all privileges on archive.* to snort@localhost;
flush privileges;
exit
- Seejärel kasutame Snort´i struktuuri MySqli´i andmebaasis:
mysql -u root -p
- Sisestame:
use snort;
source /usr/src/create_mysql;
- Selle päringuga näeme uusi tabeleid, mis me just importisime:
show tables;
exit
Snort ja Barnyard testimine
- Kontrollime, kas snort teenus on käivitatud:
service snort restart
- Manuaalselt käivitame Barnyard2´e:
/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/barnyard2/bylog.waldo -C /etc/snort/classification.config
- Tuleb luua ka sid-msg-map fail:
cd /usr/share/oinkmaster
bash -c "sudo ./create-sidmap.pl /etc/snort/rules > /etc/snort/sid-msg.map"
Barnyard2 alglaadimisel käivitamine
- Tekitame faili:
touch /etc/init.d/runbarnyard2
- Kirjutame faili:
nano /etc/init.d/runbarnyard2
#!/bin/sh case $1 in start) echo "Starting Barnyard2" sudo bash -c "barnyard2 -D -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -n" echo 'Barnyard2 started.' ;; stop) echo "Stopping Barnyard2" sudo killall barnyard2 echo 'Barnyard2 stopped.' ;; restart) $0 stop sleep 4 $0 start ;; *) echo "usage: $0 (start|stop|restart)" ;; esac exit 0
- Anname root kasutajale kõik õigused loodud failile:
chmod 700 /etc/init.d/runbarnyard2
- ning uuendame:
update-rc.d runbarnyard2 defaults 21 00
- Muudame Barnyard2 käivitatavaks deemonina(taustal käivitatav protsess):
nano /etc/snort/barnyard2.conf
- Selleks võtame kommentaari märgi rea 84 eest ära(tulemus peaks olema selline):
# enable daemon mode # config daemon
- Kasutus:
/etc/init.d/runbarnyard2 start/stop/restart
Apache2 / BASE graafilise kasutajaliidese seadistamine
- Apache2 seadistamine:
apt-get install apache2
apt-get install libapache2-mod-php5
apt-get install libphp-adodb
- Muudame /etc/php5/apache2/php.ini faili:
nano /etc/php5/apache2/php.ini
- ning muudame rida 462:
error_reporting = E_ALL & ~E_NOTICE
- Seejärel muudame /etc/apache2/apache2.conf faili, et lisada autoriseerimine www/base jaoks:
<Directory /var/www/html/base> AllowOverride All Require all granted </Directory>
- Taaskäivitame apache2:
service apache2 restart
Installeerime BASE sõltuvused
apt-get install php-pear
apt-get install libwww-perl
apt-get install php5-gd
pear config-set preferred_state alpha
pear channel-update pear.php.net
pear install --alldeps Image_Color Image_Canvas Image_Graph
Siit kohast ma enam edasi ei seadistanud snorti, kuna ilmnesid vead, mida ära lahendada ei suutnudki. Kes soovib, saab jätkata juhendiga poolelijäänud kohast: http://computer-outlines.over-blog.com/article-nids-snort-barnyard2-apache2-base-with-ubuntu-14-04-lts-123532107.html
Muutsin ka veel ise ära liidese, mida snort kuulab. Kuna snort kuulab algselt eth0 ning meie laboris peaks see olema eth1, siis muutsin failis /etc/snort/snort.debian.conf failis liidese ära:
DEBIAN_SNORT_INTERFACE="eth1"
NB: Seal failis saab samuti muuta ära HOME_NET(ehk koduvõrk), mida küsitakse snort´i algseadistusel.
Kokkuvõte
Snort on üsna hea süsteem, mida kasutada enda süsteemi jälgimiseks ning sissetungi avastamiseks. Algselt tundus see väga keeruline süsteem olevat ning täiesti lõpuni seda õigesti konfigureeritud seetõttu ei saanudki, kuid snort´i tõõpõhimõte on üsna arusaadav.
Kasutatud kirjandus
- http://computer-outlines.over-blog.com/article-nids-snort-barnyard2-apache2-base-with-ubuntu-14-04-lts-123532107.html
- http://en.wikipedia.org/wiki/Snort_%28software%29
- http://packages.ubuntu.com/precise/amd64/libdaq-dev/filelist
Autor
Veronia Lutter A31