查看單個文章
舊 2006-11-08, 11:57 AM   #1
Chin-Wei 帥哥
長老會員
 
Chin-Wei 的頭像
榮譽勳章
UID - 114112
在線等級: 級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時級別:14 | 在線時長:257小時 | 升級還需:28小時
註冊日期: 2007-02-18
文章: 3448
精華: 0
現金: 1674 金幣
資產: 32804 金幣
預設 Linux入侵偵測系統之架設:Snort+BASE

適用系統: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 等套件才可使用圖表功能,十分麻煩。
=============================





整個架設完畢後,實際運作狀況:

http://img50.imageshack.us/img50/7537/2kd3.jpg



http://img244.imageshack.us/img244/6928/1zo5.jpg
__________________
思考,正是從一個錯誤,跳進另外一個錯誤。
Chin-Wei 目前離線  
送花文章: 5387, 收花文章: 1361 篇, 收花: 5457 次
回覆時引用此帖
有 7 位會員向 Chin-Wei 送花:
Admin2 (2006-11-08),J.Kevin (2007-04-08),jient (2006-11-09),kada (2007-08-14),NiGHTsC (2006-11-09),zasiza (2007-01-23),飛鳥 (2006-11-08)
感謝您發表一篇好文章