Snort入侵檢測系統構建


實驗聲明:本實驗教程僅供研究學習使用,請勿用於非法用途,違者一律自行承擔所有風險!

Snort入侵檢測系統構建

難度等級:中等

實驗時長:200min

【實驗目的】

通過本實驗掌握snort入侵檢測系統的搭建以及相關配置。

【實驗環境】

Snort服務器登錄信息:

用戶名: college

密碼: 360College

【實驗原理】

  搭建好Snort環境后,利用發包器,發送具有某種特征的數據包,檢驗規則的有效性。

實驗步驟

預置環境說明:

OS為CentOS7.snort服務器已安裝了daq、bison、 flex、libpcap、libdnet、ncurses、hwloc、luajit、pcre和zlib等工具插件以及mysql數據庫。

***所有需要的軟件,均在/home/IDS目錄下。

一、snort安裝

wget https://www.snort.org/downloads/archive/snort/snort-2.9.11.1.tar.gz

#tar xvf snort-2.9.11.1.tar.gz

#cd snort-2.9.11.1

#./configure --prefix=/usr/local/snort --enable-pthread --enable-gre --enable-mpls --enable-targetbased

#make && make install

#export PATH=$PATH:/usr/local/snort/bin

注意:

以上將snort安裝到指定目錄。從snort 2.3開始,不再支持mysql,因此,可采用barnyard2插件,將snort輸出寫入mysql數據庫中。

驗證 輸入命令:#snort -V 出現一頭小豬,並顯示正確的版本號,說明snort已經安裝成功。 注意:大寫的-V。

二、建立數據庫

首先建立mysql數據庫:

1、下載barnyard2。

wget https://codeload.github.com/firnsy/barnyard2/zip/master 將下載的master文件,更名為master.zip。解壓:unzip master.zip。 解壓縮后,在barnyard2-master/schemas目錄下,有一個create_mysql文件。

2、編輯它在文件開始處,加上如下兩行:

    create database snort; use snort; 

3、用下面的命令運行:

    sudo service mysql start mysql -u root -p < create_mysql 

然后輸入密碼mysql,即可執行。

4、授權給snort用戶

mysql> create user 'snort'@'localhost' identified by 'snort'; //創建snort用戶 mysql> grant INSERT,SELECT,update on snort.* to snort@localhost; //授權給snort用戶 mysql> flush privileges;

三、配置snort

(一)添加默認規則

1. cd snort-2.9.11.1/etc

2. sudo mkdir /etc/snort

3. cp * /etc/snort/

4. sudo tar -xvf /home/IDS/community-rules.tar -C /etc/snort/

5.在/etc/snort/目錄下,創建rules目錄。

sudo mkdir /etc/snort/rules sudo mv /etc/snort/community-rules /etc/snort/rules

在/etc/snort/rules/下添加black_list.rules、white_list.rules文件: sudo touch /etc/snort/rules/black_list.rules sudo touch /etc/snort/rules/white_list.rules

(二)配置Snort,添加自定義配置

修改Snort配置文件,用vi打開/etc/snort/snort.conf,修改如下: var HOME_NET 192.168.8.0/24 //本地主機所在網段 var EXTERNAL_NET !$HOME_NET //其他網段 var RULE_PATH /etc/snort/rules //規則文件所在目錄

(三)設置snort輸出插件

Snort輸出設置在snort.conf文件的

#Step #6: Configure output plugins 如果輸出到數據庫,則添加或修改配置文件。 sudo vi /etc/snort/snort.conf: output unified2: filename snort.log, limit 128 //此處將數據輸出到snort.log文件

(四)添加snort規則

Snort規則中snort.conf文件的

#7) Customize your rule set 部分下面進行配置。 include $RULE_PATH/local.rules local.rules規則文件可根據需要進行修改名稱。

四、運行SNORT

1、啟動snort:

cd ../snort/bin

snort --h //幫助,列出snort可用的各種選項 snort -c /etc/snort/snort.conf //指定配置文件啟動 $sudo service mysql start snort -T -c /etc/snort/snort.conf

此處如果出現以下錯誤: /usr/local/lib/snort_dynamicrules 在配置文件snort.conf中,注釋掉該行;或者建立/usr/local/lib/snort_dynamicrules文件夾。

2、錯誤解決:

(1)rpc_decode arguments:

Ports to decode RPC on: 111 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 alert_fragments: INACTIVE alert_large_fragments: INACTIVE alert_incomplete: INACTIVE alert_multiple_requests: INACTIVE 

ERROR size 1312 != 608 (0x520!=260) ERROR: Failed to initialize dynamic preprocessor: SF_SDF version 1.1.1 (-2) Fatal Error, Quitting.. 這個問題產生的原因是權限和歸屬問題,需要將動態預處理器指向有權限的文件夾。 修改snort.conf文件:

###################################################

#Step #4: Configure dynamic loaded libraries.

#For more information, see Snort Manual, Configuring Snort - Dynamic Modules

###################################################

#path to dynamic preprocessor libraries dynamicpreprocessor directory /usr/local/snort/lib/snort_dynamicpreprocessor/

#path to base preprocessor engine dynamicengine /usr/local/snort/lib/snort_dynamicengine/libsf_engine.so

#path to dynamic rules libraries

#dynamicdetection directory

#/usr/local/snort/lib/snort_dynamicrules

(2)錯誤:

[ Number of patterns truncated to 20 bytes: 323 ] pcap DAQ configured to passive. Acquiring network traffic from "eth0". Reload thread starting... Reload thread started, thread 0x7f1ed2879700 (28658) ERROR: Can't start DAQ (-1) - socket: Operation not permitted! Fatal Error, Quitting.. 權限不足,切換到root下;測試配置文件:

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

五、安裝和配置Barnyard

前面已經下載Barnyard2-master。下載鏈接: wget https://codeload.github.com/firnsy/barnyard2/zip/master。

(一)編譯安裝

sudo yum -y install libtool //安裝libtool,否則出現no libtoolize錯誤。

tar zxvf master.tar.gz

cd barnyard2-master

./autogen.sh //自動配置,完畢后,提示運行以下命令。

./configure --with-mysql --with-mysql-libraries=/usr/local/mysql/lib/ --with-mysql-includes=/usr/local/mysql/include 注意:在自己的環境中,需要核對庫文件和頭文件目錄

$ sudo make //編譯

$sudo make install //安裝完畢

(二)配置用戶組及目錄

sudo groupadd snort

useradd snort –g snort //創建snort組、snort用戶

sudo mkdir /var/log/snort /var/log/barnyard2

touch /var/log/snort/barnyard2.waldo

chown snort.snort /var/log/snort/barnyard2.waldo

sudo chown -R snort.snort /var/log/snort

sudo chown -R snort.snort /var/log/barnyard2 //創建日志目錄,並授權

(三)配置輸出參數

sudo cp /usr/local/etc/barnyard2.conf /etc/snort 修改: sudo vi /etc/snort/barnyard2.conf

1、找到 output alert_fast: stdout 改為:

output alert_fast

2、訪問數據庫設置

在database設置部分,找到mysql相關的,去掉注釋符號#,並修改為: output database: alert, mysql, user=snort password= snort dbname=snort host=localhost

此處注意:空密碼,必須寫成‘’的形式。

3、修改barnyard2.conf添加傳感器:

config interface: eth0 指定監聽網卡(多網卡主機根據需要設置)。

重新運行:

sudo snort -u snort -g snort -c /etc/snort/snort.conf -D 再運行barnyard2: sudo barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard2.waldo -g snort -u snort

沒有出現錯誤,即可。

 運行后,應該能看到sensor_name,user,database_name等配置參數。 並且,barnyard2等待新到來的數據。

4、測試與錯誤排除

錯誤1:進行make時,出現錯誤:

spo_database.h unkown type name my_bool we will handle it via api 解決: 在src文件夾下,打開spo_database.h文件,將my_bool類型修改為int類型,保存即可。 參考:https://blog.csdn.net/merisc/article/details/17078287

錯誤2:

Unable to open SID file '/etc/snort/sid-msg.map' 解決: 修改barnyard2.conf文件,指定sid文件路徑為:/etc/snort/rules/sid-msg.map。

錯誤3:

ERROR: Unable to open SID file '/etc/snort/sid-msg.map' (No such file or directory) ERROR: [Barnyard2Init()], failed while processing [/etc/snort/sid-msg.map] Fatal Error, Quitting.. Barnyard2 exiting 出現以上錯誤,說明sid-msg.map文件不存在,修改為正確路徑,或者利用create-sidmap.pl腳本重建。 重新運行。 如果sid-msg.map文件與規則不匹配,則刪除snort數據庫,重建數據庫。然后,snort會自動重新建立sid文件。

小結

通過本次實驗,能夠了解snort入侵檢測系統的搭建過程。在規則驗證方面,可在相應的rules目錄下放入自己編寫的規則,然后加載,進行驗證。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM