Snort的安裝,配置,測試


在學習snort的時候,參考了很多文章,遇到了許多坑。這里是完成搭建的過程。

在Ubuntu 16.04下安裝snort

 

安裝snort

首先,新建一個文件夾來保存需要的tar包的文件夾

#mkdir ~/snort_src

#cd ~/snort_src

 

安裝必備的組件

#sudo apt-get install -y build-essential libpcap-dev libpcre3-dev libdumbnet-dev bison flex zlib1g-dev liblzma-dev openssl libssl-dev

 

build-essential:提供用於編譯軟件的構建工具(GCC等)。

bison,flex:DAQ所需的解析器(DAQ將在下面安裝)。

libpcap-dev:Snort所需的網絡流量捕獲庫。

libpcre3-dev:支持Snort所需正則表達式的函數庫。

libdumbnet-dev:libdnet庫為幾個低層網絡例程提供了一個簡化的可移植接口。許多安裝Snort的指南都是從源代碼安裝此庫的,盡管這不是必需的。

zlib1g-dev:Snort所需的壓縮庫。

liblzma-dev:提供對swf文件的解壓縮(adobe flash)

openssl和libssl-dev:提供SHA和MD5文件簽名

 

Snort所需的最后一個庫是Nghttp2的開發庫

#sudo apt-get install -y libnghttp2-dev

 

在snort官網下載數據采集器(DAQ)來抽象對數據包捕獲庫的調用

#cd ~/snort_src

#wget https://snort.org/downloads/snort/daq-2.0.6.tar.gz

#tar -xvzf daq-2.0.6.tar.gz

#cd daq-2.0.6

#./configure

#make

#sudo make install

 

源碼安裝snort

#cd ~/snort_src

#wget https://snort.org/downloads/snort/snort-2.9.9.0.tar.gz

#tar -xvzf snort-2.9.9.0.tar.gz

#cd snort-2.9.9.0

#./configure --enable-sourcefire

#make

#sudo make install

 

更新共享庫

#sudo ldconfig

 

Snort安裝會將Snort二進制文件放在/ usr / local / bin / snort,因此,創建到/ usr / sbin / snort的符號鏈接

#sudo ln -s /usr/local/bin/snort /usr/sbin/snort

 

安裝后輸入snort -V看到以下內容

 

 

 

 

 

 

將snort配置為NIDS

基本配置:出於安全原因, Snort應該以非特權用戶身份運行,創建一個snort用戶和組

#sudo groupadd snort

#sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort

 

創建snort需要的文件和文件夾

# 創建Snort目錄:

#sudo mkdir /etc/snort

#sudo mkdir /etc/snort/rules

#sudo mkdir /etc/snort/rules/iplists

#sudo mkdir /etc/snort/preproc_rules

#sudo mkdir /usr/local/lib/snort_dynamicrules

#sudo mkdir /etc/snort/so_rules

 

# 創建一些存儲規則和ip列表的文件

#sudo touch /etc/snort/rules/iplists/black_list.rules

#sudo touch /etc/snort/rules/iplists/white_list.rules

#sudo touch /etc/snort/rules/local.rules

#sudo touch /etc/snort/sid-msg.map

 

# 創建日志文件

#sudo mkdir /var/log/snort

#sudo mkdir /var/log/snort/archived_logs

 

# 調整權限

#sudo chmod -R 5775 /etc/snort

#sudo chmod -R 5775 /var/log/snort

#sudo chmod -R 5775 /var/log/snort/archived_logs

#sudo chmod -R 5775 /etc/snort/so_rules

#sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules

 

# 改變文件夾的所有權

#sudo chown -R snort:snort /etc/snort

#sudo chown -R snort:snort /var/log/snort

#sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules

 

將解壓后snort中的文件復制到我們新建的文件夾中

#cd ~/snort_src/snort-2.9.9.0/etc/

#sudo cp *.conf* /etc/snort

#sudo cp *.map /etc/snort

#sudo cp *.dtd /etc/snort

 

#cd ~/snort_src/snort-2.9.9.0/src/dynamic-#preprocessors/build/usr/local/lib/snort_dynamicpreprocessor/

#sudo cp * /usr/local/lib/snort_dynamicpreprocessor/

 

基本的文件結構如下:

 

 

 

 

編輯snort配置文件

注釋掉Snort導入默認規則文件集的行

#sudo sed -i 's/include \$RULE\_PATH/#include \$RULE\_PATH/' /etc/snort/snort.conf

 

修改snort.conf文件(這里使用gedit編輯器)

#sudo gedit /etc/snort/snort.conf

 

文件中修改如下

#配置網絡信息,這里的IP是192.168.147.138,所以ip如下

ipvar HOME_NET 192.168.0.0/16

 

我們需要告訴Snort我們之前創建的所有文件夾的位置。這些設置也是snort.conf文件的一部分

var RULE_PATH /etc/snort/rules                      # 104行左右

var SO_RULE_PATH /etc/snort/so_rules                #  105行左右

var PREPROC_RULE_PATH /etc/snort/preproc_rules      # 106行左右

var WHITE_LIST_PATH /etc/snort/rules/iplists        # 113行左右

var BLACK_LIST_PATH /etc/snort/rules/iplists        #  114行左右

#啟用規則文件

include $RULE_PATH/local.rules                              #取消注釋,在545行左右

 

測試snort

#sudo snort -T -c /etc/snort/snort.conf -i ens33     #ens33是網卡,可用ifconfig查看

然后我們看到如下結果,配置成功

 

 

 

 

 

接下里,編輯規則文件,

#sudo gedit /etc/snort/rules/local.rules

編寫兩條基本的規則

 

 

 

 

 

保存后退出

開始測試

#sudo snort -T -c /etc/snort/snort.conf -i ens33

可以看到如下結果

 

 

 

 

 

開始檢驗,用一台別的主機ping snort的主機

#sudo /usr/local/bin/snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i ens33

可以看到如下結果 

 

 

 

 

到這里,測試規則就完成了

 

安裝Barnyard2

下一步,安裝Barnyard2,這是一個專用的后台處理程序,將有助於減少Snort服務器上的負載

 

安裝一些必備組件

#sudo apt-get install -y mysql-server libmysqlclient-dev mysql-client autoconf libtool

安裝mysql時系統會提示輸入root密碼,這里我使用的密碼為123

 

編輯snort.conf

#sudo vi /etc/snort/snort.conf

#添加一行以告訴Snort以二進制形式輸出事件。在snort.conf中的第520行之后(該行為注釋掉的示例),添加以下行並保存文件:

output unified2: filename snort.u2, limit 128

 

接下來,安裝Barnyard2

去到需要安裝的目錄下

#cd ~/snort_src

#wget https://github.com/firnsy/barnyard2/archive/master.tar.gz -O barnyard2-Master.tar.gz

#tar zxvf barnyard2-Master.tar.gz

#cd barnyard2-master

#autoreconf -fvi -I ./m4

 

Barnyard2需要訪問dnet.h庫,該庫是我們先前與Ubuntu libdumbnet軟件包一起安裝的,創建一個鏈接

#sudo ln -s /usr/include/dumbnet.h /usr/include/dnet.h

#sudo ldconfig

 

根據您的系統結構,運行Barnyard2在MySQL的庫(這里時64位的)

#./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu

然后繼續

#make

#sudo make install

測試barnyard2是否安裝成功

#barnyard2 -V

 

 

 

 

為Snort配置為使用Barnyard2,從源程序包中復制一些文件

#sudo cp ~/snort_src/barnyard2-master/etc/barnyard2.conf /etc/snort/

#sudo mkdir /var/log/barnyard2

#sudo chown snort.snort /var/log/barnyard2

#sudo touch /var/log/snort/barnyard2.waldo

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

 

創建數據庫

#輸入的密碼為安裝時設定的密碼

#mysql -u root -p

mysql> create database snort;

mysql> use snort;

mysql> source ~/snort_src/barnyard2-master/schemas/create_mysql

mysql> CREATE USER 'snort'@'localhost' IDENTIFIED BY '123';

mysql> grant create, insert, select, delete, update on snort.* to 'snort'@'localhost';

mysql> exit

 

創建數據庫后,要將信息告訴Baenyard2,編輯barnyard2.conf文件

#sudo gedit /etc/snort/barnyard2.conf

在文件的末尾添加(末尾有關於數據庫的配置,可以選擇取消注釋,然后修改)

output database: log, mysql, user=snort password=123 dbname=snort host=localhost sensor name=sensor01

 

然后運行如下命令:

#sudo barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo -g snort -u snort

 

 

 

結果如圖

安裝base

創建可視化界面,這里使用的是base,base需要php5,但是ubuntu16中以不可用,轉為了php7(如果配置不對,后面配置base時會出現錯誤,導致有些頁面顯示不出來)

安裝php5軟件包

#sudo add-apt-repository ppa:ondrej/php

#sudo apt-get update

#sudo apt-get install -y apache2 libapache2-mod-php5.6 php5.6-mysql php5.6-cli php5.6 #php5.6-common php5.6-gd php5.6-cli php-pear php5.6-xml

安裝pear圖像圖

#sudo pear install -f --alldeps Image_Graph

 

下載安裝adodb

#cd ~/snort_src

#wget https://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-520-for-#php5/adodb-5.20.8.tar.gz

#tar -xvzf adodb-5.20.8.tar.gz

#sudo mv adodb5 /var/adodb

#sudo chmod -R 755 /var/adodb

 

下載base並復制到apache2目錄下

#cd ~/snort_src

#wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz

#tar xzvf base-1.4.5.tar.gz

#sudo mv base-1.4.5 /var/www/html/base/

 

 

創建和配置base文件

#cd /var/www/html/base

#sudo cp base_conf.php.dist base_conf.php

#sudo vi /var/www/html/base/base_conf.php

配置如下

$BASE_urlpath = '/base';             # 50

$DBlib_path = '/var/adodb/';      # 80

$alert_dbname     = 'snort';        # 102

$alert_host       = 'localhost';

$alert_port       = '';

$alert_user       = 'snort';

$alert_password   = '123';         # 106

 

修改base文件權限

#sudo chown -R www-data:www-data /var/www/html/base

#sudo chmod o-r /var/www/html/base/base_conf.php

 

這里也可以不配置base文件,可以在http://localhost/base中設置

 

重啟apache

#sudo service apache2 restart

 

 

瀏覽器打開 http://localhost/base/index.php

可以看到如下結果

 

 

 

這樣就基本完成。需要更加完善則需要自定義規則。

 

不斷的入坑學習,才能不斷進步!

 


免責聲明!

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



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