Snort

From ICO wiki
Revision as of 16:27, 29 May 2012 by Mernits (talk | contribs)
Jump to navigationJump to search

Uuendab Priit Lilleleht A21

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:

  1. Võib seda otseselt kasutada pakkide nuuskimisel nagu tcpdump.
  2. Paketi loggerina (kasulik võrguliikluse debuggimisel jne).
  3. 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.

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.