Install Snort with snort report in CentOS
Step 1: Preparing
#yum install pcre pcre-devel php php-common php-gd php-cli php-mysql flex bison mysql mysql-devel mysql-bench mysql-server php-pear.noarch php-pear-DB.noarch php-pear-File.noarch kernel-devel libxml2-devel vim-enhanced.i386
#yum install gcc-c++
Download sourcode:
#cd /usr/local
#wget ips-builder.googlecode.com/files/libnet-1.0..
#wget libdnet.googlecode.com/files/libdnet-1.12.tgz
#wget tcpdump.org/release/libpcap-1.1.1.tar.gz
#wget snort.org/downloads/1623 -O daq-0.6.2.tar.gz
#wget snort.org/downloads/1631 -O snort-2.9.2.3.tar.gz
#download snort.org/snort-rules
#wget unixwiz.net/tools/nbtscan-source-1.0.35.tgz
#wget jpgraph.net/download/download.php?p=1.27.1 -O jpgraph-1.27.1.tar.gz
Step 2: Install lib
#cd /usr/local
#tar zxvf /root/libnet-1.0.2a.tar.gz
#cd Libnet-1.0.2a
#./configure && make && make install
#cd /usr/local
#tar zxvf /root/libdnet-1.12.tgz
#cd libdnet-1.12
#./configure && make && make install
#cd /usr/local
#tar xvzf libpcap-1.1.1.tar.gz
#cd libpcap-1.1.1
#./configure && make && make install
#cp /usr/local/lib/libpcap.a /usr/lib/
#cd /usr/local
#mkdir nbtscan
#cd nbtscan
#tar zxvf /root/nbtscan-1-3-1.tar.gz
#make
Step 3: Install dag and snort
Install DAG
#cd /usr/local
#tar xvzf daq-0.6.2.tar.gz
#cd daq-0.6.2
#./configure && make && make install
Install Snort
#cd /usr/local
#tar zxvf /root/snort-2.9.2.3.tar.gz
#cd snort-2.9.2.3
#./configure && make && make install
Step 4: Config snort
Create snort rules and logs
#mkdir /etc/snort
#mkdir /var/log/snort
#cd /etc/snort
#tar zxvf /root/snortrules-snapshot-2921.tar.gz -C /etc/snort
#cp etc/* /etc/snort
#groupadd snort
#useradd -g snort snort
#chown snort:snort /var/log/snort
#touch /var/log/snort/alert
#chown snort:snort /var/log/snort/alert
#chmod 600 /var/log/snort/alert
#mkdir /usr/local/lib/snort_dynamicrules
#cp /etc/snort/so_rules/precompiled/Centos-5-4/i386/2.9.2.1/*.so /usr/local/lib/snort_dynamicrules
#cat /etc/snort/so_rules/*.rules >> /etc/snort/rules/so-rules.rules
Edit snort.conf
#vim /etc/snort/snort.conf
Change:
RULE_PATH to /etc/snort/rules
PREPROC_RULE_PATH to /etc/snort/preproc_rules
SO_RULE_PATH to /etc/snort/so_rules
Find reputation preprocessor and comment all this preprocessor. ( line 511)
Find unified2 and uncomment, edit to: output unified2: filename snort.log, limit 128
Step 5: Setup MySQL
#mysql -u root -p
>SET PASSWORD FOR root@localhost=PASSWORD(‘password’);
>create database snort;
>grant ALL PRIVILEGES on snort.* to snort@localhost with GRANT option;
>SET PASSWORD FOR snort@localhost=PASSWORD(‘password’);
>exit
#cd /usr/local/snort-2.9.2.1/schemas
#mysql -p < create_mysql snort
Test database:
#mysql -u root -p
#SHOW DATABASES;
There should be 4 rows ( snort)
#use snort;
#SHOW TABLES;
There should be 16 rows
#exit;
Step 6: Create GUI
Extract JPGRAPP
#cd /usr/local
#tar xvzf /root/jpgraph-1.27.1.tar.gz
#cp jpgraph-1.27.1 /var/www/html
#mv /var/www/html/jpgraph-1.27.1 /var/www/html/jpgraph
#cd /var/www/html
#tar zxvf /root/snortreport-1.3.1.tar.gz
#cd snortreport-1.3.1
#vim srconf.php
Find $pass, change password to your password
Find JPGRAPH_PATH change to ("JPGRAPH_PATH", "../jpgraph/src/");
Find NMAP_PATH change to ("NMAP_PATH", "/usr/bin/nmap -v");
Find NBTSCAN_PATH change to ("NBTSCAN_PATH", "/usr/local/nbtscan/nbtscan");
Install Barnyard
#cd /usr/local
#tar zxvf /root/barnyard2-1.9.tar.gz
#cd barnyard2-1.9
#./configure --with-mysql &&make && make install
#cp etc/barnyard2.conf /etc/snort
Setup Barnyard
#vim /etc/snort/barnyard2.conf
Change hostname to localhost
Change interface to eth0 ( listen interface)
Change mysql line: output database: log, mysql, user=snort password=password dbname=snort host=localhost
Step 7: Start Snort
First CLI terminal
#snort -c /etc/snort/snort.conf
Second CLI terminal
#cp /dev/null /var/log/snort/barnyard.waldo
#mkdir /var/log/barnyard2
Start barnyard:
#/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard.waldo
Test snort:
Third CLI:
#vim /etc/snort/rules/local.rules
Insert line:
“alert tcp any any <> any 80 (msg: "Test web activity"; sid:1000001;)”
Restart snort ( Ctrl+C and type start snort again in first CLI)
Open Web Browser, type your snort server address
Go to: http:///snortreport-1.3.3/alerts.php
If you see a number of events with SID 1000001, Snort works!
Step 8: Config Snort and barnyard start automatically
Snort:
#ln -s /usr/local/bin/snort /usr/sbin/snort
#cp /usr/local/snort-2.9.2.1/rpm/snortd /etc/init.d
#cp /usr/local/snort-2.9.2.1/rpm/snort.sysconfig /etc/sysconfig/snort
#cd /etc/rc3.d
#ln -s ../init.d/snortd S99snortd
#cd ../rc0.d
#ln -s ../init.d/snortd K99snortd
#cd /etc/rc5.d
#ln -s ../init.d/snortd S99snortd
#cd ../rc6.d
#ln -s ../init.d/snortd K99snortd
#chmod 755 /etc/init.d/snortd
#vim /etc/sysconfig/snort
Find eth0 and change to your interface
Comment ALERTMODE=FAST, DUMP_APP=1, BINARY_LOG=1
Test: /etc/init.d/snortd start
Barnyard2:
#vim /etc/snort/barnyard2.conf
Uncomment config daemon
Set the path to your waldo file, /var/log/snort/barnyard2.waldo
#vim /usr/local/barnyard2-1.9/rpm/barnyard2.config
Change LOG_FILE to snort.log
Change CONF to /etc/snort/barnyard2.conf
#ln -s /usr/local/bin/barnyard2 /usr/sbin/barnyard2
#cp /usr/local/barnyard2-1.9/rpm/barnyard2 /etc/init.d
#vim /etc/init.d/barnyard2
Change BARNYARD_OPTS to BARNYARD_OPTS="-D -c $CONF -d $SNORTDIR -w $WALDO_FILE -f $LOG_FILE -X $PIDFILE $EXTRA_ARGS"
#cp /usr/local/barnyard2-1.9/rpm/barnyard2.config /etc/sysconfig/barnyard2
#chmod 755 /usr/local/bin/barnyard2
#cd /etc/rc3.d
#ln -s ../init.d/barnyard2d S99barnyard2d
#cd ../rc0.d
#ln -s ../init.d/barnyard2d K99barnyard2d
#cd /etc/rc5.d
#ln -s ../init.d/barnyard2d S99barnyard2d
#cd ../rc6.d
#ln -s ../init.d/barnyard2d K99barnyard2d
#chmod 755 /etc/init.d/barnyard2
Test: /etc/init.d/barnyard2 start.
------------------------------------------------------------
Thanks for reading
--------------------------------------------------------------------------
Security Research
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.
Nam Habach