Snort - Ubuntu 14.04

From ICO wiki
Revision as of 20:06, 15 January 2015 by Vlutter (talk | contribs)
Jump to navigationJump to search

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. [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 

[3]

 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 juhendit 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 sellest kuidas snort töötab, sain ma hiljem juba aru.

Kasutatud kirjandus

  1. http://computer-outlines.over-blog.com/article-nids-snort-barnyard2-apache2-base-with-ubuntu-14-04-lts-123532107.html
  2. http://en.wikipedia.org/wiki/Snort_%28software%29
  3. http://packages.ubuntu.com/precise/amd64/libdaq-dev/filelist

Autor

Veronia Lutter A31