Snort: Difference between revisions
No edit summary |
No edit summary |
||
Line 95: | Line 95: | ||
Võimalikud tegevused paketiga: | Võimalikud tegevused paketiga: | ||
Alert – loome hoiatuse, logime paketi | Alert – loome hoiatuse, logime paketi | ||
Log – logime paketi | Log – logime paketi | ||
Pass – ignoreerime paketti | Pass – ignoreerime paketti | ||
Activate – loome hoiatuse, rakendame dynamic reeglid | Activate – loome hoiatuse, rakendame dynamic reeglid | ||
Dynamic – eelneb Activate tegevus, järgnevalt logime | Dynamic – eelneb Activate tegevus, järgnevalt logime | ||
Drop – laseme iptables-il paketi droppida ja logime | Drop – laseme iptables-il paketi droppida ja logime | ||
Reject – laseme iptables-il paketi droppida ja saadame keeldumise | Reject – laseme iptables-il paketi droppida ja saadame keeldumise | ||
Sdrop - laseme iptables-il paketi droppida ja ei logi | Sdrop - laseme iptables-il paketi droppida ja ei logi | ||
Revision as of 15:50, 6 January 2015
Uuendab Gerli Kaunissaar AK51
SNORT paigaldamine koos graafilise liidesega BASE
Snort on populaarne IDS/IPS platvorm, mille 1998. aastal töötas välja Martin Roesch. Snort on mitmeplatvormiline ja kasutab mudelit, mille puhul tarkvara levitatakse GPL litsentsiga. Snort kombineerib signatuuripõhist, protokollipõhist ja anomaaliaid otsivat ründetuvastust.
Referaadi eesmärgiks on installeerida ründetõrjeprogramm Snort (IDS) ja BASE (Basic Analysis and Security Engine). Snort IDS annab seadistatuna rünnete hoiatusi (alerts) ja BASE on hoiatuste analüüsi ja päringute veebiliides. BASE 'i abil saate Snorti avastatud ründeid analüüsida.
Kõik käsud käivitame serveris juurkasutaja õigustes. Juurkasutajale üleminek:
sudo -i
Vastavalt GPL-i võimalustele kuulub Snort enamustesse Linuxi distributsioonidesse. Kõige lihtsamal kujul on Snort installeeritav näiteks debiani pakina:
apt-get install snort
Kuid tuleb arvestada, et niimoodi installeerituna omab Snort vaid repositooriumis sisalduvaid signatuure, mida ei uuendata ja mis seetõttu üha kiiremini vananevad.
Veebiliidese tarbeks installeerime apache'i webiserveri:
apt-get install apache2
ja MySQL-i:
apt-get install mysql-server
MySQL küsib installeerimisel juurkasutaja parooli. See parool on soovitav meelde jätta.
Installeerime php5:
apt-get install php5
Andmebaasi loomine Snort-i tarbeks:
$ mysql -p mysql> CREATE DATABASE snort; mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort@localhost; mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort; mysql> SET PASSWORD FOR snort@localhost=PASSWORD('snort-db'); mysql> flush privileges; [kontrolliks, kas kõik õnnestus:] mysql> show grants for 'snort'@'localhost';
Nüüd võime andmebaasi lahti pakkida mysql.gz , mis snorti installiga dokumentatsiooni alla lisati:
cd /usr/share/doc/snort-mysql/ $ zcat create_mysql.gz | mysql -u snort -D snort -psnort-db
Vajame ka snorti reegleid. Variant: registreerida endale kasutaja, saada oinkcode ja laadida reeglid snorti saidist; teine variant – laadida reeglid emergingthreats saidist http://www.emergingthreats.net/
oinkmaster -o /etc/snort/rules -u http://rules.emergingthreats.net/open/snort-2.9.0/emerging.rules.tar.gz
laeme alla reeglite konfiguratsiooni:
wget http://rules.emergingthreats.net/open/snort-2.8.6/emerging.conf
muudame snort.conf faili:
nano /etc/snort/snort.conf
ja lisame include- lausetele järgneva rea:
include $RULE_PATH/emerging.conf
ja kopeerime emerging.conf faili /etc/snort/rules kataloogi.
cp emerging.conf /etc/snort/rules
Lihtsamaks MySQL-iga opereerimiseks võime kasutada phpmyadmin-i:
mkdir /var/www/mysqlgui
cd /var/www/mysqlgui
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.1.3/phpMyAdmin-4.1.3-all-languages.tar.gz
tar -xvvvf phpMyAdmin-4.1.3-all-languages.tar.gz
BASE
wget http://ftp.ee.debian.org/debian/pool/main/a/acidbase/acidbase_1.4.5-2_all.deb
dpkg –i acidbase_1.4.5-2_all.deb
apt-get install -f
SNORT reeglite ülesehitus
Snort tuvastab liiklust reeglite (Inglise keeles - Snort rules) alusel. Reegel on tingimus(ed), millele vastamisel kas genereeritakse hoiatus või blokeeritakse paketid.
Võimalikud tegevused paketiga:
Alert – loome hoiatuse, logime paketi
Log – logime paketi
Pass – ignoreerime paketti
Activate – loome hoiatuse, rakendame dynamic reeglid
Dynamic – eelneb Activate tegevus, järgnevalt logime
Drop – laseme iptables-il paketi droppida ja logime
Reject – laseme iptables-il paketi droppida ja saadame keeldumise
Sdrop - laseme iptables-il paketi droppida ja ei logi
SNORT reeglid
Pöörame tähelepanu allalaetud reeglitele kataloogis/etc/snort/rules. Reeglite kasutamist määrab include –lausend seadistusfailis /etc/snort/snort.conf . Näiteks:
include $RULE_PATH/attack-responses.rules
määrab, et snorti reeglite faili
/etc/snort/rules/attack-responses.rules
kasutatakse.
Kontrollime, kas on määratud local.rules kasutamine ja kui pole, lubame.
include $RULE_PATH/local.rules
Täiendame faili local.rules mõne reegliga seejärel salvestame ja taaslaeme Snorti.
ERKO UMAL A21
SNORT
Mis on Snort?
Snort on avatud lähtekoodiga võrgu sissetungi vältimise süsteemi, mis on võimeline täitma reaalajas liiklus-analüüsi ja packeti loggimisi IP võrkudes. Smort suudab teha protokolli analüüsi, sisu otsimist/sobitust ja saab kasutada erinevate rünnakute ja sondide leidmisel,nagu ka stealth port skaneerimist, CGI rünnakud, SMB sondid, OS sõrmejäle tegemisel, ning palju muud.
Mida saab Snortiga teha?
Snortil on kolm peamist otstarvet:
- Võib seda otseselt kasutada pakkide nuuskimisel nagu tcpdump.
- Paketi loggerina (kasulik võrguliikluse debuggimisel jne).
- Või siis täis puhutud võrgu sissetungi vältimise süsteemina.
Kuidas Snort tööle saada?
Eeltingimused
MacPorts
Võib juhtuda, et kõigepealt pead installeerima MacPorts paki. Juhendi MacPortsi konfigureerimiseks leiad siit http://trac.macports.org/wiki/InstallingMacPorts
MySQL 5 installeerimine
Me kasutame MySQLi, et salvestada Snorti teateid andmebaasi BASE, et neile juurdepääseda ja kuvada.
- Installi MySQL koos MacPortsiga.
%% sudo port install mysql5 +server
- mysql_install_db5 käsu täitmisel esmakordselt teha setup MySQL5.
%% sudo -u mysql mysql_install_db5
- käivita MySQL ja seadistada see käivituma süsteemi bootimisel.
%% sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
- Kinnita MySQL protsess, et see töötaks selle käsuga.
%% ps -ax | grep mysql
- Kui MySQL töötab näeb väljund allolevaga sarnane välja.
26683 ?? Ss 0:00.05 /opt/local/bin/daemondo --label=mysql5 --start- 26692 ?? S 0:00.02 /bin/sh /opt/local/lib/mysql5/bin/mysqld_safe - 26712 ?? S 0:16.90 /opt/local/libexec/mysqld --basedir=/opt/local 20796 p2 R+ 0:00.00 grep mysql
- Loo MySQL root parool.
%% sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password <mypassword>
- Teosta MySQL root konto logini test uue root parooliga.
%% mysql5 -u root -p
PHP intsleerimine ja testimine
Võite installida PHP 4 või 5, kuid hea PHP5 binaarne paigaldaja, mis töötab koos Apple'i Apache 1.3 on Marc Liyanage's PHP 5 pakett.
- Laadige alla ja käivitage installeri pakett, tehke "lihtne install " ja hiljem redigeerige faili / usr/local/php5/lib/php.ini jaoks MacPorts "MySQL5 nagu näidatud.
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
- BASE liides kasutab faili index.php, nii et kui sa tahad lihtsalt "/ base" url juurdepääsu BASE veebiliidest leida httpd.conf faili (/ etc / httpd / httpd.conf Apple'i sisseehitatud Apache ) ja lisa "index.php",
DirectoryIndex direktiivi, nagu näidatud.
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
- Nüüd pane veebiserver tööle.
- Mine System Preferences Applei menüüs.
- Kliki Sharing ikoonile.
- Pane linnuke Web Sharing ruutu või eemaldada linnuke ja vaata seda uuesti.
- Kliki Sharing ikoonile.
- Mine System Preferences Applei menüüs.
Valmistuge PHP testiks, looge fail nimega test.php Apache dokumendi juurkataloogi (/ Library / veebiserveri / Documents Apple'i sisseehitatud Apache), mis sisaldab allpool toodud rida.
<?php phpinfo() ?>.
Nüüd ava url http://localhost/test.php brauseris. Kui PHP töötab korralikult näed PHP tabelit.
Snort DB loomine
Logi sisse MySQLis root kasutajana.
%% mysql5 -u root -p
Kui oled loginud MySQLis root kasutajaks, loo Snorti andmebaas ja kasutaja ning määrata Snorti load andmebaasis.
mysql> create database snort; mysql> grant INSERT,SELECT on root.* to snort@localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort@localhost; mysql> grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort; mysql> SET PASSWORD FOR snort@localhost = OLD_PASSWORD('<snortdb-passwd>'); mysql> exit
Installeeri ja konfigureeri BASE.
Teostage see käsk paigaldamaks BASE ja selle sõltuvus Adodb kaudu MacPortsi.
%% sudo port install base
Tee sümbolitega lingid Apache root dokumenti.
%% cd <Apache-docroot> %% sudo ln -s /opt/local/share/adodb adodb %% sudo ln -s /opt/local/share/base base
Tee koopia BASE proovi failist mille laiendiks on "dist".
%% cd /opt/local/share/base %% sudo cp base_conf.php.dist base_conf.php
Avage fail base_conf.php tekstiredaktoris.
%% pico /opt/local/share/base/base_conf.php
Muuda faili muutujad, nagu on näidatud.
$BASE_urlpath = '/base';
$DBlib_path = '/<Apache-docroot>/adodb';
$alert_dbname = 'snort';
$alert_host = 'localhost';
$alert_user = 'snort';
$alert_password = '<mysql-snort-password>';
$archive_dbname = 'snort';
$archive_user = 'snort';
$archive_password = '<mysql-snort-password>';
$archive_host = 'localhost'
Snordi instaleerimine ja konfigureerimine
Siin installime Snorti, impordime Snordi MySQL andmebaasi skeemi ja seadistame Snorti.
Snordi installeerimine
Kasutage neid samme, et installida MacPortsi kaudu Snort.
%% sudo port install snort +mysql5 +server
Installi Snordi reeglid
Tee koht Snordi seadete failidele, eeskirjadele ja logidele.
%% sudo mkdir –p /opt/local/etc/snort/rules %% sudo mkdir /var/log/snort
Selleks, et käivitada täielik eeskirjade kogum, peate registreeruma Snort.org. Siis minge Snordi reeglite lehele ning laadige alla "registred user" versioon (võid ka maksta ja saada "subscription release") Snordi reeglite failidest ning pakkige need lahti.
%% cd <snort-rules-download-dir>/rules %% sudo cp * /opt/local/etc/snort/rules %% sudo cp *.config /opt/local/etc/snort
Kuna Snordil ei ole automatiseeritud updateimis mehhanismi, peaksite alla laadima uusimad eeskirjad ja taaskäivitama Snordi iga paari nädala tagant veendumaks, et see tunneks uusimaid rünnaku profiile.
Redigeeri snort.conf
Nimeta snort.conf proovi fail ümber snort.conf.
%% cd /opt/local/etc/snort %% sudo mv snort.conf.dist snort.conf %% sudo pico /opt/local/etc/snort/snort.conf
Siis ava snort.conf tekstiredaktoris.
%% sudo pico /opt/local/etc/snort/snort.conf
Muuda RULE_PATH ja andmebaasi muutujad täpselt nii, nagu on näidatud ja HOME_NET vastavalt vajadusele.
# Path to your rules files var RULE_PATH /opt/local/etc/snort/rules
# database: log to a variety of databases output database: alert, mysql, user=snort password=<snortpwd> dbname=snort host=localhost
var HOME_NET [10.1.1.0/24,192.168.1.0/24]
Vaikeseaded teiste muutujate snort.conf failis peaks olema OK enamikel eesmärkidel.
Impordi Snorti skeem
Impordi Snordi andmebaasi skeemi sisse Snordi MySQL andmebaasi, nagu on näidatud.
%% cd /opt/local/share/snort/schemas %% cat create_mysql | mysql5 –u root -p snort
Logi sisse MySQLi root kasutajana.
%% mysql5 –u root –p
Siis kuva Snordi tabelid tema andmebaasis.
mysql> show databases; mysql> use snort; mysql> show tables; mysql> exit
+------------------+ | Tables_in_snort | +------------------+ | data | | detail | | encoding | | event | | icmphdr | | opt | | reference | | reference_system | | schema | | sensor | | sig_class | | sig_reference | | signature | | tcphdr | | udphdr | +------------------+ 16 rows in set (0.00 sec)
Impordi BASE's skeemid
Lisa tabelid, mida BASE vajab Snordi andmebaasi kasutades neid käske.
%% cd /opt/local/share/base/sql %% cat create_base_tbls_mysql.sql | mysql5 -u root -p snort
Nüüd näita tabeleid uuesti ja näed uut tabelit eesliidesega "acid", sest BASE põhineb vanemal Analysis Consolil Intrusion Andmebaasil (ACID).
+------------------+ | Tables_in_snort | +------------------+ | acid_ag | | acid_ag_alert | | acid_event | | acid_ip_cache | | base_roles | | base_users | | data | | detail | | encoding | | event | | icmphdr | | iphdr | | opt | | reference | | reference_system | | schema | | sensor | | sig_class | | sig_reference | | signature | | tcphdr | | udphdr | +------------------+ 22 rows in set (0.01 sec)
See lõpetab installi ja konfiguratsiooni kõigile vajalikule tarkvarale Snordil ja BASEl.
Snorti käivitamine esiplaanil
Snordi kävitamine esiplaanil võimaldab näha veateateid nii, et see on hea mõte kävitada Snort sel viisil, kuni olete kindel, et programm töötab korralikult. Lihtsalt jätta-D (daemon mode) valik ja Snort jooksebki esiplaanil.
%% sudo snort –c /opt/local/etc/snort/snort.conf
Veenduge, et MySQL tugi on sisse lülitatud. Kui Snort on kompileeritud MySQL toetusega,näed sa neid Snorti andembaasi sõnumeid mis liiguvad üle oma terminali akna (output trimmed):
database: compiled support for ( mysql ) database: configured to use mysql database: user = root database: password is set database: database name = snort database: host = localhost database: sensor name = <ip address> database: sensor id = 1 database: schema version = xxx database: using the "alert" facility
--== Initialization Complete ==--
Pärast mil initsialiseerimise info on kuvatud,näed sa live packeti jäädvustatud teavet terminali ekraanile,seda muidugi siis kui oled ühendatud võrku. Nüüd "kill" SNorti esiplaani protsess kirjutades Cntl-C et vaadata kokkuvõtet nagu on näidatud allpool.Pöörake erilist tähelepanu "Action Stats" osas (output trimmed):
Snort received 216 packets Analyzed: 216(100.000%) Dropped: 0(0.000%) ========================= Breakdown by protocol: TCP: 10 (4.630%) UDP: 98 (45.370%) ICMP: 60 (27.778%) ARP: 19 (8.796%) EAPOL: 0 (0.000%) IPv6: 0 (0.000%) IPX: 0 (0.000%) OTHER: 23 (10.648%) DISCARD: 0 (0.000%) ========================== Action Stats: ALERTS: 1 LOGGED: 1 PASSED: 0
Kui hoiatusteated ja / või sisselogitud statistika on null siis Snort ei loggi ennast korralikult MySQLi ningei näe tegevust BASEis.
Snorti käivitamine - tagaplaanil
Kui tead Snort töötab korralikult, siis võib selle käivitada tagataustal -D (daemon) lülitiga.
%% sudo snort –D –c /opt/local/etc/snort/snort.conf
Kui olete installinud Snorti koos serveriga võite kasutada launchctl et seada Snort käivituma süsteemi bootimisel, aga kui sa ikka ei taha käivitada Snorti startupil siis võib lihtsalt jätta selle sammu tegemata.
%% sudo launchctl load -w /Library/LaunchDaemons/org.macports.snort.plist
Kui sa ei saa installida Snorti koos + serveriga või ei soovi jooksutada launchctl käsku, võite Snordi käivitada tagataustal koos Snordi käivitamisskriptiga nagu näidatud.
%% sudo /opt/local/share/snort/snort.sh start
Snordi protsesside vaatamine
Et näha Snorti töötamas tagataustak,kasuta seda käsku.
%% ps -ax |grep snort
Kui Snort töötab, ps käsu väljund sisaldab rida sarnaselt käesolevale.
538 p1 S+ 0:00.51 snort -c /opt/local/etc/snort/snort.conf
Teadete vaatamine Snordiga
Mine http://localhost/base/index.php et vaadata BASE pealehte. Võib juhtuda, et peate ootama mõne hetke ennem kui Snort tuvastab sissemurdmise või sondi, mistõttu ei pruugi te näha mitte mingisugust tegevust BASE veebilehel kohe pärast Snordi paigaldamist.