snort + ....

Najsampierw ... hmm... sami wiecie to nie lanie wody ino ino... Ctrl+C Ctrl+v ;]

$ mkdir kombajn
$ cd kombajn


NOTE:
Sprawdz ustawienia swojego php.ini odnośnie socket'u mysql'a. Proponuje ustawić go na:

mysql.default_socket = "/var/run/mysqld/mysqld.sock"

## --- mysql --- ##

$ wget http://mysql.easynet.be/Downloads/MySQL-5.0/mysql-5.0.45-linux-i686-glibc23.tar.gz
$ tar mysql-5.0.45-linux-i686-glibc23.tar.gz
$ cd mysql-5.0.45-linux-i686-glibc23
$ ./configure --with-unix-socket-path=/var/run/mysqld/mysqld.sock
$ make
# make install
# cp support-files/my-medium.cnf /etc/my.cnf
$ cd ..

I postępujemy zgodnie z dokumentacją. Jeżeli dostaniesz mysql_install_db command not found podaj pełną ścieżkę /usr/local/bin/mysql_install_db

# mysql_install_db --user=mysql

Jeżleli nie masz usera i grupy mysql do dodaj
# adduser mysql
# groupadd mysql

Kolejny krok to utworzenie katalogu pod który kompilowaliśmy socket i nadaniu mu odpowiednich praw

# mkdir /var/run/mysqld
# chown mysql.mysql /var/run/mysqld/

Skoro mam już mysqla to warto zaopatrzyć się w phpMyAdmin'a ;-) Czasami się przydaje.
Zakładam, że apacz skonfigurowany.

## --- phpMyAdmin --- ##

$ cd /home/marcin/kombajn
$ wget http://ovh.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.2-all-languages.tar.bz2
$ bzip2 -dc phpMyAdmin-2.11.2-all-languages.tar.bz2 |tar xvf -
$ cd phpMyAdmin-2.11.2-all-languages

I dłubiemy w config.inc.php. Szukamy lini $cfg['PmaAbsoluteUri'] = ''; i zastępujemy ją adresem pod jakim będzie widniał nasz phpadmin

$cfg['PmaAbsoluteUri'] = 'http://xydomena.pl/phpadmin';

Następnie zmieniamy $cfg['Servers'][$i]['auth_type'] = 'config'; na

$cfg['Servers'][$i]['auth_type'] = 'cookie';

Wpisz jakieś pierdoły ;-) w $cfg['blowfish_secret'] = '';

$cfg['blowfish_secret'] = 'fqn9rqvqwerg54iysekhsdfbsfqw(&3r-I)454';

I spróbujemy się zalogować
http://xydomena.pl/phpadmin login root, bez hasła, jeżeli się zalogujesz pierwszym krokiem będzie zmiana hasła i wylogowanie sie z phpadmina.
Przy kolejnej próbie zalogowania dostaniesz errora:

"Client does not support authentication protocol requested by server; consider upgrading MySQL client"

Czyli konsla i klepiemy

# mysql -u root -p
Enter password:

I podajemy hasło które przed chwilą ustawiliśmy w phpadminie, następnie klepiemy magiczną regułkę:

mysql> set password for 'root'@'localhost' = OLD_PASSWORD('tajnehaslo');
mysql>exit

I ponowna próba zalogowania się przez phpadmian zakończy sie powodzeniem ;)

Teraz pora na utworzenie 2-uch baz dla snorta

# mysql -u root -p
Enter password:
mysql> create database snort_log;
mysql> create database snort_archive;
mysql> exit

Narazie to wystarczy.

## --- SNORT --- ##

Zasysamy, konfigurujemy dając opcje pod mysql'a

$ cd /home/marcin/kombajn/
$ wget http://www.snort.org/dl/current/snort-2.8.0.tar.gz
$ tar zxvf snort-2.8.0.tar.gz
$ cd snort-2.8.0
$./configure --with-mysql --with-mysql-include=/usr/local/include/mysql/ --with-mysql-lib=/usr/local/lib/mysql

hmm.. i tu chwilkę się zastanaowimy ;) jeżli konfiguracaj przeszła ci bez problem znaczy to, że masz wszyskie wymagane pakiety. Jeżeli natomiast czegoś ci brakuje to patrz na czym się wywali ale prawdopodobnie będzie to libpcap0 libpcap-dev lub libpcre3 , libpcre3-dev

$ make
# make install
# mkdir /etc/snort
# cp etc/* /etc/snort/
# cp -r rules schemas /etc/snort/

Spróbujemy odpalić snorta

# snort -c /etc/snort/snort.conf

Jeżeli przy próbie odpalenia snorta wywali nam błąd w stylu:

snort: error while loading shared libraries: libmysqlclient.so.14: cannot open shared object file: No such file or directory

Należy wyedytować /etc/ld.so.conf i dopisać linię:

/usr/local/lib/mysql

I oczywiście

# ldconfig

Pewnie będzie kolejny error ;)

ERROR: Unable to open rules file: ../rules/local.rules or /etc/snort/../rules/local.rules
Fatal Error, Quitting..

W tym przypadku edytujemy /etc/snort/snort.conf i szukamy vat RULE_PATH, zmieniamy go na :

var RULE_PATH /etc/snort/rules

I kolejny error :P

ERROR: [!] ERROR: Can not get write access to logging directory "/var/log/snort".
(directory doesn't exist or permissions are set incorrectly
or it is not a directory at all)

Czyli:

# mkdir /var/log/snort
# snort -c /etc/snort/snort.conf

I działa :P

Teraz konfiguracją snorta i mysql'a. Zaczniemy od mysql'a i dadania usera snort

# mysql -u root -p
Enter password:
mysql> GRANT USAGE ON * . * TO "snort"@"localhost" IDENTIFIED BY "tajnos" WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
mysql> GRANT ALL PRIVILEGES ON `snort\_archive` . * TO "snort"@"localhost" WITH GRANT OPTION ;
mysql> GRANT ALL PRIVILEGES ON `snort\_log` . * TO "snort"@"localhost" WITH GRANT OPTION ;

Następnie powinniśmy dodać tabele do obu baz ale nim to zrobimy to zassamy ACID żeby móc stworzyć tablele dla baz snort_log i snort_log. Czyli

## --- ACID --- ##

$ cd /home/marcin/kombajn
$ wget http://acidlab.sourceforge.net/acid-0.9.6b23.tar.gz
$ tar zxvf acid-0.9.6b23.tar.gz

I dodajemy table do baz

# mysql -D snort_log -u snort -p < /home/marcin/kombajn/snort-2.3.0/schemas/create_mysql
# mysql -D snort_log -u snort -p < /home/marcin/kombajn/acid/create_acid_tbls_mysql.sql
# mysql -D snort_archive -u snort -p < /home/marcin/kombajn/snort-2.3.0/schemas/create_mysql
# mysql -D snort_archive -u snort -p < /home/marcin/kombajn/acid/create_acid_tbls_mysql.sql

Pora dokończyć konfigracje snorta. W tym celu edytujemy /etc/snort/snort.conf i szukamy Configure output plugins i lini

# output database: log, oracle, dbname=snort user=snort password=test

I dopisujemy

output database: alert, mysql, user=snort password=tajnos dbname=snort_log host=localhost

Kolej na ACID i edycję pliku /home/marcin/kombajn/acid/acid_conf.php i dodajemy parametry dla połączenia się z bazami.

$alert_dbname = "snort_log";
$alert_host = "localhost";
$alert_port = "3306";
$alert_user = "snort";
$alert_password = "tajnos";

/* Archive DB connection parameters */
$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "3306";
$archive_user = "snort";
$archive_password = "tajnos";

Jak zrobiłeś wcześniej virtulahosta to to klepnij sobie w przeglądarkę acid.xydomena.pl
I pewnie dostaniesz kolejnego errora od ACID :P

Error loading the DB Abstraction library: from "/adodb.inc.php"
Check the DB abstraction library variable $DBlib_path in acid_conf.php
The underlying database library currently used is ADODB, that can be downloaded at http://php.weblogs.com/adodb;

Czyli robimy dokładnie to co napisane

$ cd /home/marcin/kombajn
$ wget http://heanet.dl.sourceforge.net/sourceforge/adodb/adodb502a.zip
$ tar zxvf adodb502a.zip

I w pliku /home/marcin/kombajn/acid/acid_conf.php podajemy lokalizecje adodb.inc.php czyli szukamy DBlib_path i dopisujemy:

$DBlib_path = "/home/marcin/kombajn/adodb/";

Nie pozostaje nam nic innego jak odpalić mysqla i snorta ;)

Możemy napotkać się jeszcz na problem z połączeniem do bazy mysq za pomocą ACID otrzymując na stronie komunikat:

Client does not support authentication protocol requested by server; consider upgrading MySQL client

Należy wtedy zalgować sie do mysqla na usera snort i zmieniec haslo:

$ mysql -u snort -p
Enter password:
mysql> set password for 'snort'@'localhost' = old_password ('agentos');

I odświerzyć storne ;)
Konfiguracja samego snorta +ACID to inna bajka

30-10-2007 11:17:39