Instalacija SNORT+APACHE+ACID(BASE)+MYSQL+PASSIVE TAP (3 NIC)

5 odgovora [Poslednji unos]
salac
Slika korisnika salac
Offline
User
Član od: 29/05/2006

Instalacija SNORT+APACHE+ACID(BASE)+MYSQL+PASSIVE TAP (3 NIC)

Uvod

U ovom malom HOWTO dat je postupak uz pomoc kojeg se linux masina pretvara u NIDS (network intrusion detection  system). U radu je koriscena gentoo distribucija ali naravno uz odgovarajuce prepravke skoro identican postupak se moze izvesti na bilo kom drugom distrou.

Da li vec negde postoji ovakvo uputstvo?

Verovatno da; na http://gentoo-wiki.com mogu se naci delovi ovoga uputstva razbacani u dve ili tri sekcije, ali barem ja do sada nisam nigde nasao kompletan postupak – od definisanja bonding interfejsa, preko instalacije snorta i acid/base do pravljenja passive tapping kutije.

Sta je potrebno za pravljenje NIDS-a?

-Potrebna je fer PC konfiguracija, real-time analiza mreznog saobracaja nije posao koji mogu da odrade raspale 486/P1/P2 masine koje skupljaju prasinu, narocito ako se analizira saobracaj po 10/100 Mb UTP kablovima.
-Potrebne su TRI mrezne kartice, od kojih se dve koriste za prisluskivanje. Pozeljno je da ova dva 'prisluskivacka'  NIC-a budu gigabitne kartice pa makar u PCI varijanti;  naravno da niko ne ocekuje da PCI gigabitna karta moze da dostigne protok od 1Gbps, ali u odnosu na standardne 100Mbps one imaju veci buffer te su stoga pogodnije za ovu primenu.

Postupak instalacije

1.Rekompajiranje kernela i kompajliranje ifenslave user-space alata

Ukljucuje se u kernelu podrska za bonding, ukoliko vec nije ukljucena:
Device Drivers -> Networking Support -> Bonding Driver Support

Iskompajlirati ifenslave alat koji sluzi za manipulaciju bond-ovanih interfejsa:
# cd temp
# gcc –Wall –Wstrict-prototypes –O –I/usr/src/linux/include /usr/src/linux/Documentation/networking ifenslave.c –o ifenslave
# mv ifenslave /sbin/ifenslave

Restart sistema da bi rekompajlirani kernel zaziveo.

2.Editovanje konfiguracionih fajlova
Ubaciti automatsko ucitavanje modula pri restartovanju sistema
# echo bonding >> /etc/modules.autoload.d/kernel-2.6
# echo “alias bond” bonding >> /etc/modprobe.conf
(moze i u /etc/modules.d/aliases umesto u /etc/modprobe.conf)

3.Dodavanje bonding-a za dva NIC-a koja ce sluziti za tapping (prisluskivanje) i definisanje IP adresa
# cd /etc/init.d
# cp net.eth0 net.eth1
# cp net.eth0 net.eth2
# cp net.eth0 net.bond0
U ovom slucaju ispalo je da su eth0 I eth2 kartice koje ce biti u bonding-u dok je eth1 kartica koja sluzi kao izlazni interfejs, tj interfejs preko kome moze da se pristupa NIDS sistemu.

U /etc/conf.d/local.start se dodaje:
/sbin/ifenslave bond0 eth0
/sbin/ifenslave bond0 eth2

Setovanje IP adrese za bonding interfejs i za eth1, edituje se /etc/conf.d/net fajl i unosi: iface_eth1=”192.168.0.100 broadcast 192.168.0.255 netmask 255.255.255.0”
iface _bond0= “127.0.0.10 broadcast 127.255.255.255.0 netmask 255.255.255.0”
gateway =”eth1/192.168.0.250”

Ako nisu iskljucene startup skripte za eth0 I eth2, treba ih iskljuciti i ubaciti skripte za bond0 i eth1 u default running level :
# rc-update del net.eth0 default
# rc-update del net.eth2 default
# rc-update add net.eth1 default
# rc-update add net.bond0 default
Restart sistema, masina se boot-uje sa bond-ovanim NIC-evima.

4.Instalacija SNORT-a, MySQL-a, Apache-a, php-a, Libnet-a
Prvo treba podesiti USE varijable u /etc/make.conf
USE=’gd-external mysql apache2 php openssl jpg png gif –X –gtk –gnome –alsa”

Sledi emerge-ovanje potrebnih paketa:
# emerge dev-php5/jpgraph php mysql apache net-libs/libnet lynx snort

5.Sredjivanje startup skripti
# rc-update add snort default
# rc-update add mysql default
# rc-update add apache2 default

6.Instalacija pocetnih baza za mysql
# /usr/bin/mysql_install_db

Startovanje apache i mysql-a :
# /etc/init.d/apache2 start
# /etc/init.d/mysql start

Setovanje prava pristupa, uvodjenje root pass-a:
# mysql

>SET PASSWORD FOR root@localhost=PASSWORD(“test”);
>create database snort;
>grant INSERT,SELECT on root.* to snort@localhost;
>SET PASSWORD FOR snort@localhost = PASSWORD(“test”);
>grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort@localhost
>grant CREATE,INSERT,SELECT,DELETE,UPDATE on snort.* to snort;
>exit;

Ovim je uveden root password, napravljena nova baza i novi user snort.

7.Kreiranje SNORT baza (ovde je stara 2.2.0 verzija, sada aktuelna je 2.6.x):
# gunzip /usr/share/doc/snort-2.2.0/contrib/create_mysql.gz
# mysql –p
Options Multiviews Indexes Includes FollowSymLinks
AllowOverride All

Order allow,deny
Allow from all

Naravno podrazumeva se da je u /etc/conf.d/apache2 ukljucena podrska za php
APACHE2_OPTS="-D SSL -D PHP5"

10.Instalacija  i setovanje ACID-a ( tj BASE-a)
Od vremena kada sam ja pravio NIDS  sistem ACID je promenio ime i sada se zove BASE (znaci ode iz kiseline u bazu), ali instalacija i setovanje su identicni:
# ACCEPT_KEYWORDS=”~x86” emerge net-analyzer/base

Na kraju treba editovati config fajl /etc/base/base_conf.php :
$DBtype = “mysql” ;
$alert_dbname = “snort”;
$alert_host=”localhost”;
$alert_user=”snort”;
$alert_password=”test”;
$archive_dbname=”snort”;
$archive_host=”localhost”;
$archive_port=””;
$archive_user=”snort”;
$archive_password=”test”;

Instalacija je gotova, sada se kroz browser otvori https://localhost/base/base_db_setup.php
klikne na "Setup AG" da se instaliraju neke dodatne tabele.

11.Izrada PASSIVE TAP kutije
Za izradu kutije  najbolje je da se iskoristi neka od vec gotovih uticnica sa 4 RJ-45 lezista i onda se jednostavno veze izmedju njih prespoje po sledecoj shemi:

 
Ukoliko treba da se prisluskuje neka od mreznih veza (recimo kabl izmedju servera i switch-a) potrebno je uraditi sledece:
-dve NIC kartice koje su u bonding se obicnim kablom zabodu u tap1 i tap2 na kutiji.
-raskine se veza server-switch, uzme se kabl i zabode sa jedne strane u switch a sa druge u host1 na kutiji
-uzme se jos jedan UTP kabl i sa jedne strane se zabode u server a sa druge u host2 na kutiji.

Napomena:
Potrudite se da kablovi za tapping budu sto kraci i da sto je manje moguce raspredate parice kada pravite tapping kutiju , sve to neminovno unosi smetnje! Kablovi kojima se vezuju bonding NIC-evi sa kutijom NIKAKO ne smeju da budu duzi od 15-20 cm!

To je sve! Uzivajte Laughing out loud
Salac

0
psy_unix
Slika korisnika psy_unix
Offline
User
Član od: 24/11/2006

Svaka tebi cast brate i bas si me prijatno iznenadio . Inace imam i tri gigabitne katrice i gentoo 64 bit , pa cu naravno za vikend probati , tacnije u subotu jer u nedelju je GIGA LIGA .
Pitanje:  Da li ima veze ako stavim Gentoo 64 bit posto 32 bit-a nikad nisam ni uspeo da instaliram .
Licno mislim da ne bi trebalo da bude problema
P.S. Ostali : ugledajte se na salac .  Laughing out loud Afro >:D :biggrin:

__________________

www.nb.rs

"Two things came out of Berkeley: BSD and LSD. We don't believe this to be a coincidence."

salac
Slika korisnika salac
Offline
User
Član od: 29/05/2006

Hvala na pohvalama  Smile

Ne vidim zasto 64-bitna verzija ne bi radila, naprotiv, real-time analiza bi trebala da bude brza nego na 32-bitnim sistemima.

poz.

dukenukem_4d
Slika korisnika dukenukem_4d
Offline
User
Član od: 02/07/2007

Skava cast ,ovo je super  Afro

nego ovde kazu da
nije kompatibailan ovaj tap sa gigabitnim ethernetom?
(ili ako se koriste ove gigabitne kartice kao 10/100?)

__________________

ADSL 1024 Slackware Srbija?Psy linux> Notorrni_modem ali se teže instalira od oootranslit ња ња

salac
Slika korisnika salac
Offline
User
Član od: 29/05/2006

Istina je, ovom kutijom ne moze da se tap-uje gigabitna ethernet konekcija zato sto se tada koriste sve 4 parice za prenos podataka (za razliku od 100Base-TX standarda gde se koriste samo dve). Cisto sumnjam da se uopste moze napraviti pasivna kutija obzirom na to koliko je gigabitni ethernet osetljiv na smetnje....

Ako se zeli tapping i na gigabitnim konekcijama onda se moraju odvojiti pare za aktivnu tapping kutiju (koja u principu jeste gigabitni hub). Koliko takva stvarcica kosta, nemam pojma. U tom slucaju su umesto tri dovoljna dva NIC-a na NIDS-u.

poz.

GoranSTX
Slika korisnika GoranSTX
Offline
ModeratorUser
Član od: 29/05/2006

Bravo, salac, zaista detaljno i korisno.

__________________

http://autostoper.blogspot.com
Two things are infinite: the universe and human stupidity; and I'm not sure about the universe. (Einstein)
Registered Linux User #411782
http://linuxcounter.net/