適用系統:Fedora Core 5 與 Red Hat Enterprise Linux 4.0
安裝指引原文:
http://www.snort.org/docs/setup_guid...se_Minimal.pdf
安裝次序: PCRE->SNORT->ADODB->BASE
一、取得所需套件
PCRE:
http://www.pcre.org/
ADODB:
http://adodb.sourceforge.net/
BASE:
http://secureideas.sourceforge.net/
SNORT:
http://www.snort.org/
除了要使用 CVS 下載 snort 主程式以外,還要另外下載 rules(需先免費註冊)
二、安裝相關套件
本範例之工作目錄:/usr/local/src/snortinstall,並已事先將相關套件解壓縮在該目錄中
<PCRE-Perl Compatible Regular Expressions>
cd /usr/local/src/snortinstall/pcre
#./configure
#make
#make install
<SNORT>
1.編譯與安裝
# cd /usr/local/src/snortinstall/snort
#./autojunk.sh
#./configure --with-mysql=/usr/ --enable-dynamicplugin --with-snmp
#make
#make install
--with-mysql= 必須指定為 mysql.h 這個檔案的所在路徑,不知道在哪裡就用 find 找一下,必須要有安裝 mysql-devel 才會有這個檔案。若是檔案在 /usr/include/mysql/mysql.h,則只需要輸入『/usr/』,『include/mysql』這段路徑預設會自己加進去。
--enable-dynamicplugin 這一行一定要加進去,不然編譯雖然會成功,但實際執行時會有問題,會出現 unknow rule type: dynamicpreproccessor 之類的錯誤。
--------------
2.建立執行 snort 必要的目錄、使用者與群組
useradd snort
#mkdir /etc/snort
#mkdir /etc/snort/rules
#mkdir /var/log/snort <=== 要將使用者與群組設定為 snort,並給予 700 的權限
rules 檔案要到 snort 的官網下載,將 snort-snapshot-current.tar.gz 下載回來並解壓縮後,將 rules 目錄中所有的 *.rules 移至 /etc/snort/rules。doc 目錄中的 signatures 之後要放到 /var/www/html/base 目錄中,此為 base 會用到的 local 說明檔。
#cd /usr/local/src/snortinstall/snort/etc
#cp * /etc/snort
將所有的 config sample 複製到 /etc/snort 目錄中。
--------------
3.修改設定檔 /etc/snort/snort.conf
#nano /etc/snort/snort.conf
var HOME_NET any -> var HOME_NET 要監控的主機 IP 位址(eg.192.168.1.1)
var EXTERNAL_NET any -> 這行可以不用動
var RULE_PATH ../rules -> var RULE_PATH /etc/snort/rules
output database: log, mysql, user=snort password=password_of_snort dbname=snort host=localhost
如果host=localhost被擠到次一行,記得在行尾加上”\”,否則會得到錯誤訊息。
FATAL ERROR: /etc/snort/snort.conf(538) => Unknown rule type: host=localhost
--------------
4.建立mysql資料庫
注意:MySQL 的使用者與 Linux 系統本身的使用者不相關,是二個彼此獨立的系統。
#mysql -u root -p
Password:
mysql>create database snort;
mysql>use snort;
mysql>grant all on snort.* to snort@localhost identified by 'password_of_snort';
mysql>exit
#mysql -u root -p snort< /usr/local/src/snortinstall/snort/schemas/create_mysql
Enter password: password_of_root_mysql
確認一下資料庫及資料表
#mysql -u root -p
Password: password_of_root_mysql
mysql> show databases;
+------------+
| Database
+------------+
| mysql
| Snort
| test
+------------+
3 rows in set (0.00 sec)
mysql>use snort;
mysql>show tables;
+------------------+
| Tables_in_snort
+------------------+
| data
| detail
| encoding
| event
| icmphdr
| iphdr
| opt
| reference
| reference_system
| schema
| sensor
| sig_class
| sig_reference
| signature
| tcphdr
| udphdr
+------------------+
16 rows in set (0.00 sec)
mysql>exit
<ADODB-ADOdb Database Abstraction Library for PHP and Python>
#cp -a /usr/local/src/snortinstall/adodb /usr/share
記得要讓 httpd 有使用 /usr/share/adodb 的權限。
<BASE>
#cp /usr/local/src/snortinstall/base /var/www/html
二個地方要注意:
1./var/www/html/base 目錄設定成 httpd 具有修改的權限。
2.修改 /etc/php.ini 中的 error_reporting 為 EC_ALL & ~E_NOTICE
(改完以後記得重新啟動 httpd)
然後使用瀏覽器安裝 BASE:http://{path_to_url}/base/setup
Step 1 of 5
Pick a Language: english
==> RHEL 4.0 若選擇 chinese,實際使用使會出現一堆亂碼,FC5 則可以正常使用。
Path to ADODB: /usr/share/adodb
==> 因為我們之前把 adodb 放在這個地方。
Step 2 of 5
Pick a Database type: mysql
Database Host: localhost
Database Name: snort
Database User Name: snort
Database Password: 資料庫的密碼 for snort
Step 3 of 5
設定 BASE 管理員帳號與密碼。
勾選“Use Authentication System”
Admin User Name: admin (可以自己取)
Password: 管理員的帳號
Full Name: 隨便打即可
Step 5 of 5
登入系統
這樣子一來就全部安裝完成了。
記得要讓系統開機時自動啟動 mysqld、httpd、以及 snort。
在 /etc/rc.d/rc.local 中加入:
/usr/local/bin/snort -c /etc/snort/snort.conf -i eth0 -D -u snort -g snort
-c:指定要使用的 config 檔
-D:表示背景執行
-i:指定要監控的網路界面
-u:以特定使用者的身份執行
-g:以特定群組的身份執行
=============================
若是要使用到圖表,則 PHP 在編譯時必需加入對 gd 模組的支援。
#cd /usr/local/php-X.X.X
#./config.nice - -with-gd
#make
#make install
(然後要記得重新啟動 httpd)
注意!系統中必需要有安裝 libpng-devel、libjpeg-devel、zlib-devel 等三個套件,若已安裝但執行 ./config.nice - -with-gd 時系統卻出現 Configure: error: PNG support requires ZLIB. User - -with-zlib-dir=<DIR> 錯誤訊息時,則在./config.nice - -with-gd 後面要加上相對應的 - -with-zlib-dir=”/usr/include” - -with-jpeg-dir=”/usr/include” 等。
之所以指定 - -with-zlib-dir=/usr/include 是因為 zlib 的 header 檔都放在 /usr/include 中。若不確定在哪裡可以使用 rpm -qli zlib-devel 查看。就算編輯並安裝完成,系統中也必須要有安裝 php-pear 套件,並額外下載與安裝 Image-Graph、Image-Canvas 等套件才可使用圖表功能,十分麻煩。
=============================
整個架設完畢後,實際運作狀況: