天天看點

ubuntu 10.10 安裝snort acidbase相關注意事項

在安裝snort的過程中遇到了一點困難,但還是完成。下文将依據http://blog.solrex.org/articles/implement-snort-ids-on-ubuntu-710.html的一篇博文,提出自己安裝過程出現的問題和解決辦法。由于以上博文是在ubuntu7.10環境中進行,本文在10.10中進行。

1 第一點差別:我之前已經安裝過LAMP和pcap、phpMyAdmin(用php編寫的可以用來管理mysql的web工具)。

2 安裝Snort:

準備工作:通過ubuntu的apt-get方式得到的snort是2.8.4版本的,而官方http://www.snort.org/已出到2.9版本。但考慮到安裝簡單化,直接

sudo apt-get install snort安裝。此步驟沒有什麼意外情況。

3 為了確定pcap的安裝與否,可以通過dpkg -l libpcap0.8 檢視 libpcap是否安裝或者通過新立得檢視。如果沒有,則需安裝。

4 在 MySQL 資料庫中為 Snort 建立資料庫: 

和上面的博文基本沒有差別,這裡引用:

***********************************************************

Ubuntu 軟體倉庫中有一個預設的軟體包 snort-mysql 提供輔助功能,用軟體包管理器下載下傳安裝這個軟體包。

$ sudo apt-get install snort-mysql

安裝好之後檢視幫助文檔:

$ less /usr/share/doc/snort-mysql/README-database.Debian

(下面建庫建表的步驟其實README-database.Debian 中就有)

根據幫助文檔中的指令,在 MySQL 中建立 Snort 的資料庫使用者和資料庫。所使用的指令如下:

$ mysql –u root –p

在提示符處輸入上面設定的密碼 (這個是你mysql的管理者密碼,一般manual中會讓使用者設定為test,不過最好設定一個自己常用的,否則容易在這麼多密碼中混淆】

 【注意$ mysql –u root –p後如果密碼正确,你應該就進入了mysql的操作台,會出現mysql>提示符,然後你就可以建立資料庫,以及使用者和密碼、權限等】

mysql> CREATE DATABASE snort;   

mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to [email protected];

mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort;

mysql> SET PASSWORD FOR [email protected]=PASSWORD('snort-db'); //此處snort-db為密碼

mysql> exit

以上指令的功能是在 MySQL 資料庫中建立一個 snort 資料庫,并建立一個 snort 使用者來管理這個資料庫,設定 snort 使用者的密碼為 snort-db。

然後根據 README-database.Debian 中的訓示建立 snort 資料庫的結構。

$ cd /usr/share/doc/snort-mysql

$ zcat create_mysql.gz | mysql -u snort -D snort -psnort-db (這裡的-psnort-db連在一起,沒有空格,我也沒搞清楚,主觀上認為應該是-p snort-db但是,這樣反而不行,照做即可)

這樣就為 snort 在 MySQL 中建立了資料庫的結構,其中包括各個 snort 需要使用的表。(此時,你就可以通過PHPMyAdmin檢視了)

[設定 snort 把 log 檔案輸出到 MySQL 資料庫中]

修改 Snort 的配置檔案:/etc/snort/snort.conf

$ sudo vim /etc/snort/snort.conf

在配置檔案中将 HOME_NET 有關項注釋掉,然後将 HOME_NET 設定為本機 IP 所在網絡,将 EXTERNAL_NET 相關項注釋掉,設定其為非本機網絡,如下所示:

#var HOME_NET any

var HOME_NET 192.168.0.0/16 (根據你自己的網絡情況修改)

#var EXTERNAL_NET any

var EXTERNAL_NET !$HOME_NET

将 output database 相關項注釋掉,将日志輸出設定到 MySQL 資料庫中,如下所示:

output database: log, mysql, user=snort password=snort-db dbname=snort host=localhost

#output database: log, mysql (一個字也不能錯,否則連不上庫就寫不進去了)

這樣,snort 就不再向 /var/log/snort 目錄下的檔案寫記錄了,轉而将記錄存放在 MySQL 的snort資料庫中。這時候可以測試一下 Snort 工作是否正常:

$ sudo snort -c /etc/snort/snort.conf

如果出現一個用 ASCII 字元畫出的小豬,那麼 Snort 工作就正常了,可以使用 Ctrl-C 退出;如果 Snort 異常退出,就需要查明以上配置的正确性了。

*****************************************************************************************

5 保證你的apache2和mysql,php可用,下一步将[安裝和配置 acid-base]

首先聲明,這一步如果完全按照引用的博文來做,可能會出現問題,下面将會提到。

$ sudo apt-get install acidbase

這一步的安裝過程中會選擇db:mysql,然後輸入密碼:

【一定要注意,盡管這裡沒有指定讓你使用那個使用者登入,直接輸入密碼,但是其實它是預設snort使用者的,是以你不能輸入mysql的root密碼,而需要輸入snort使用者的密碼,根據上文就應該是snort-db,作者在這裡耗費了2個多小時,後來一直連不通,就是這個原因。eg: 如果你輸入root密碼,在後來按照引用博文中提到的浏覽器驗證acidbase時就會出現:

************

Check the DB connection variables in base_conf.php

= $alert_dbname : MySQL database name where the alerts are stored

= $alert_host : host where the database is stored

= $alert_port : port where the database is stored

= $alert_user : username into the database

= $alert_password : password for the username

Database ERROR:Access denied for user 'snort'@'localhost' (using password: YES)

**********

(小記:在解決此問題的艱辛曆程中,作者google了snort的maillists還有國外bbs的多篇文章,都沒有給出根本原因。并發現:在目前版本中将安裝acidbase後的/usr/share/acidbase目錄中内容cp -r到/var/www下,在浏覽器中輸入localhost/acidbase,此時web server通路的并不是www下的acidbase目錄,而是/usr/share/acidbase,各位可以自己試試,試試在顯示的首頁acid_main.php中添加PHP輸出代碼,如echo "me";等确定。作者也針對上述浏覽器提到的檢查base_conf.php方法來解決,并将裡面的alert_dbname等資訊全部手動指派,發現根本沒有效果。而引用博文中将此檔案删除并建立的方法,browser會直接報錯。補充一點:這個acid_base.conf的真實位置是在/etc/acidbase下面。

後來,作者不妨重裝acidbase來試圖找出問題原因,(你還别說,還真找到了),現象是你通過apt-get remove acidbase無法徹底删除,首先是手動删除了/etc/acidbase下面的東東,之後發現安裝時還提示已經有conf配置檔案,這就怪了,我/usr和/etc下都删了,怎麼還有conf?後來通過仔細看提示,原來隐匿在/etc/dbconfig-common下面還有一個acidbase.conf配置檔案,注意此時的acid和base之間沒有下劃線連接配接,在這裡配置檔案中定義了我們首次設定的資料庫連接配接情況,

****

dbc_dbtype='mysql'

# dbc_dbuser: database user

# the name of the user who we will use to connect to the database.

dbc_dbuser='snort'

# dbc_dbpass: database user password

# the password to use with the above username when connecting

# to a database, if one is required

dbc_dbpass='test' (需要改為snort-db)

*****

正是在這裡作者發現了原因,使用者名直接被設為了snort,而密碼确是作者填寫的root密碼,作者将其改正後解決。so,就這樣,作者将這個檔案也删除了,(通過新立得可以将acidbase全部徹底删除)。然後重裝,重新設定密碼。world silence!)

至于引用博文中将/usr/share/acidbase的東東移到/var/www下的思想确實需要,這個要注意權限和連結的問題,過程自己解決吧。

這時,通過http://localhost/acidbase通路估計就不會出現什麼問題了,它會手下提醒你增加資料表到snort庫中,原來snort庫中16個表,增加了6個acid相關的,後為22.

如圖:

ubuntu 10.10 安裝snort acidbase相關注意事項

在phpmyadmin中看mysql中建立的表:

ubuntu 10.10 安裝snort acidbase相關注意事項

6 至于測試snort就是後面的事情了,just remember :/etc/init.d/snort start/stop/restart。

歡迎讨論,blog.csdn.net/jo_say.