日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

基于snort、barnyard2和base的 网络入侵检测系统的部署与应用

發(fā)布時間:2023/12/15 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 基于snort、barnyard2和base的 网络入侵检测系统的部署与应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、項目分析

1.1、項目背景

伴隨著互聯(lián)網產業(yè)的不迅猛發(fā)展,新興技術層數(shù)不窮,互聯(lián)網通訊技術逐漸成為了各行各業(yè)不可替代的基礎設施,越來越多的業(yè)務都是依靠互聯(lián)網來得以實現(xiàn)。隨著我國科技產業(yè)的飛速發(fā)展,很多過去無法想象的事物變成了現(xiàn)實,由計算機衍生的人工智能等一系列高新技術,以不可阻擋的勢頭影響著人們的生活,這一切的一切都離不開互聯(lián)網的支撐,人們享受網絡帶來的便捷與暢快的同時,也不得不面對網絡入侵者對網絡安全所帶來的威脅,近些年網絡飛速發(fā)展的同時,信息安全問題也顯得日益突出,人們對隱私保護的意識逐漸增強,因此計算機網絡安全問題日益成為了社會各界所關注的熱點。擁有一個完備可靠的網絡安全攻防系統(tǒng)以是個人、企業(yè)乃至國家所不懈追尋的目標。

1.2、需求分析

在互聯(lián)網飛速發(fā)展的當下社會,信息安全問題尤為突出,任何試圖破壞網絡活動正常化的事件都可成為網絡安全問題。在網絡安全問題產生的早期,人們通常使用的方法就是防火墻,但隨著網絡攻擊技術手段的不斷提升,傳統(tǒng)的防火墻作為一種被動的防御性網絡安全工具,已經不足以防御新型的網絡攻擊。這種情況下逐漸誕生了網絡入侵檢測系統(tǒng),入侵檢測系統(tǒng)不僅能夠為網絡安全提供及時的入侵檢測以及采取響應防護手段,還可以正確識別針對計算機網絡的惡意行為,并為此做出響應和防護機制。它提供對系統(tǒng)內部攻擊和外部攻擊以及錯誤操作的實時防護,能夠自主的應對網絡攻擊,良好的彌補了傳統(tǒng)防火墻的不足,有效的完善了網絡安全的防護機制,入侵檢測及時做一種防御手段,已經成為網絡安全體系的重要組成部分。因此掌握網絡入侵檢測系統(tǒng)的部署與應用以是計算機從業(yè)人員不可缺少的知識技能。

1.3、Snort體系分析

IDS是計算機的入侵監(jiān)視系統(tǒng),它通過實時的監(jiān)視,對異常的網絡行為發(fā)出警報。入侵檢測系統(tǒng)大致可分為兩大類,信息來源一類是基于主機IDS的基于網絡的IDS,檢測方法一類是針對異常入侵檢測和誤用的入侵檢測。Snort
IDS(入侵檢測系統(tǒng))既是一個強大的網絡入侵檢測系統(tǒng)。它具有實時數(shù)據(jù)流量分析和記錄IP數(shù)據(jù)網絡數(shù)據(jù)包的能力,能夠進行協(xié)議分析,對數(shù)據(jù)包內容進行識別,檢測不同的攻擊方式,對攻擊進行實時監(jiān)控和報警。此外,Snort是一個開源的入侵檢測系統(tǒng),具有很好的移植性和可擴展性。Barnyard2作為IDS的前端工具,主要應用是讀取sonrt產生的數(shù)據(jù)并存儲到數(shù)據(jù)庫中,同時base的頁面變化,來測試應用成果與否。

Snort結構由四大模塊組成,分別是:

數(shù)據(jù)包嗅探模塊,負責監(jiān)聽網絡數(shù)據(jù)包,對網絡進行分析。

預處理模塊,用相應的插件來檢查原始的數(shù)據(jù)包,數(shù)據(jù)包預處理后傳送到檢測引擎。

檢測模塊,是Snort的核心模塊;檢測引擎根據(jù)預先設置的規(guī)則檢測數(shù)據(jù)包,一旦發(fā)現(xiàn)規(guī)則匹配,就通知警報模塊。

警報/日志模塊,經過檢測引擎檢測后數(shù)據(jù)輸出。如果出現(xiàn)異常則會發(fā)出報警

1.4、Snort三種工作模式

偵測模式:snort將在現(xiàn)有的網域內獲取數(shù)據(jù)包,并顯示在屏幕上。

數(shù)據(jù)包記錄模式:snort將已截取的數(shù)據(jù)包存入存儲硬盤中。

上線模式:snort可對截取到的數(shù)據(jù)包做分析的動作,并根據(jù)一定的規(guī)則來判斷是否有網絡攻擊行為的出現(xiàn)。

2、概要設計

2.1、Snort功能介紹

Snort擁有三大基本功能:嗅探器,數(shù)據(jù)包記錄和入侵檢測。嗅探器模式從網絡上讀取數(shù)據(jù)包并作為連續(xù)不斷的數(shù)據(jù)流顯示在終端。數(shù)據(jù)包記錄器模式是把數(shù)據(jù)包記錄到硬盤上。網絡入侵檢測模式可配置使snort分析網絡數(shù)據(jù)流以匹配用戶定義的一些規(guī)則,并根據(jù)檢測結果采取一定的措施。

2.2、入侵檢測模塊分析

snort是一套開源的網絡入侵預防與網絡入侵檢測軟件。使用了以偵測簽名與通信協(xié)議的偵測方法。數(shù)據(jù)嗅探是基于Libpcap開發(fā)而成,Libpcap是一個跨平臺的報文抓取程序。數(shù)據(jù)嗅探器將網卡獲取的數(shù)據(jù)送入上層預處理組件進行處理。

預處理器介于檢測引擎和數(shù)據(jù)包嗅探器之間,主要功能有包重組、解碼協(xié)議和異常檢測,負責對數(shù)據(jù)包的進行預先處理。作為入侵檢測系統(tǒng),它能夠對網絡中數(shù)據(jù)包片段編排與組裝,還原原始的數(shù)據(jù)內容。因此預處理器對安全威脅的檢測和識別非常重要。

檢測引擎是Snort的核心部分,其中負責規(guī)則處理的規(guī)則庫是檢測引擎的重要組件,規(guī)則處理模塊主要負責規(guī)則的解析和規(guī)則檢測。檢測引擎通過讀取規(guī)則文件把規(guī)則鏈中,再與數(shù)據(jù)包進行對比,檢測判定是否存在安全威脅,并做出響應的處理,如:警報、記錄或者忽略等。針對大流量的數(shù)據(jù)中心存在系統(tǒng)檢測處理數(shù)據(jù)丟失等情況,這就表示在大規(guī)模的網絡應用中,對引擎算法的優(yōu)化和改進,有著相當大的必要。

從本質上說,Snort與tcpdump和snoop一樣,都是網絡數(shù)據(jù)包嗅探器。因此,嗅探器模式是Snort工作的基本模式。只要運行Snort時不加載規(guī)則,它就可以從網絡上讀取數(shù)據(jù)包并連續(xù)不斷地顯示在屏幕上。這時,Snort將顯示統(tǒng)計信息。Snort使用Libpcap網絡驅動庫。在這種模式下,Snort將網卡設置為混在模式,讀取并解析共享信道中的網絡數(shù)據(jù)包。在嗅探模式下,Snort也可以將這些信息記錄到日志文件中。這些文件隨后可以用Snort或者tcpdump查看。這種模式的用戶并非很大,因為現(xiàn)在很多可以記錄包的工具了。在這種模式下并不需要snort.conf配置文件。
入侵模式需要載入規(guī)則庫才能工作。在入侵模式下,Snort并不記錄所有捕獲的包,而是將包與規(guī)則對比,僅當包與某個規(guī)則匹配的時候,才會記錄日志或產生報警。如果包并不與任何一個規(guī)則匹配,那么它將會被悄悄丟棄,并不做任何記錄。運行Snort的入侵檢測模式的時候,通常會在命令行指定一個配置文件。

2.3、Snort工作流程分析

Snort在進入工作模式之前,首先要對其進行基礎設置,對結構組件進行初始化配置,根據(jù)規(guī)則文件生成相應的規(guī)則鏈表。通過調用Libpcap提供的數(shù)據(jù)函數(shù)抓取數(shù)據(jù)包,對數(shù)據(jù)進行預處理,sonrt調用完了協(xié)議的解析函數(shù),對數(shù)據(jù)包進行分層解析,從數(shù)據(jù)包中提取有效的檢測信息,然后將解析的數(shù)據(jù)轉存。由snort將解析結果和已知的規(guī)則進行比較,判斷是否存在入侵行為,當相匹配時則判定存在網絡安全問題,向管理員發(fā)出警報。如果不存在安全問題則直接通過。

Snort,對每個被檢測的數(shù)據(jù)包都定義了如下的三種處理方式alert(發(fā)送報警信息)Log(記錄該數(shù)據(jù)包),Pass(忽略該數(shù)據(jù))。這些處理方式其實是具體定義,在檢測規(guī)則中的,具體的完成是在日志或者報警子系統(tǒng)中。日志子系統(tǒng)允許將嗅探器,收集到的信息,以可讀的格式或者tcpdump格式記錄下來。

此外,Snort有兩種輸出方式,即日志和告警,輸出結果時,snort會按常規(guī)規(guī)則或預處理規(guī)則直接指定輸出類型。

2.4、ADODB功能分析

adodb是一種兼容各類數(shù)據(jù)庫應用程序的接口(API),各種數(shù)據(jù)庫都可以,MySQL、Informix、Oracle,MS
SQL
7、Foxpro、Access,ADO、Sybase、FrontBase、DB2等,不論后端是何種數(shù)據(jù)庫,存取數(shù)據(jù)的方式都是一致的,adodb作為一種PHP存取數(shù)據(jù)庫的中間函數(shù)組件,在本次項目種擔負著橋梁的責任。

2.5、snort組件分析

barnyard2是一個snort組件,通過與數(shù)據(jù)庫相聯(lián)系,用于數(shù)據(jù)的調取與存放。daq、libdnet、libpcap都是snort的安裝組件,需要編譯后配合snort使用。snortrules-snapshot是snort的規(guī)則匹配庫,主要功能就是用于數(shù)據(jù)的比對與識別判斷依據(jù)。base則是用于前端頁面數(shù)據(jù)的顯示。

2.4、安裝準備

工作環(huán)境

名稱 版本
VMware Workstation Pro 15
MobaXterm 10.4
Centos 6.7
Mysql 5.7
adodb 5.20.9
barnyard2 1.9
base 1.4.5
daq 2.0.5
libdnet 1.12
libpcap 1.9.0
snort 2.9.9.0
snortrules-snapshot 2990

3、詳細設計

本次項目設計是基于centos6.7操作系統(tǒng),在系統(tǒng)上進行snort、barnyard2以及base的總體搭建,其中snort是主要部分,Barnyard2的作用是讀取snort產生的二進制事件文件并存儲到MySQL。同時根據(jù)base頁面的變化,來測試是否成功。

3.1、準備工作

安裝Centos6.7.iso鏡像到虛擬機,配置網絡設置確保連接互聯(lián)網。

3.1.1、安裝wget

3.1.2、更新yum源

# wget -O /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-6.repo

# yum clean all

# yum makecache

3.1.3、安裝epel源

#yum install -y epel-release

3.1.4、下載安裝配置文件

3.2、安裝配置LMAP

3.2.1、安裝LAMP組件

# yum install -y httpd mysql-server php php-mysql php-mbstring php-mcrypt
mysql-devel php-gd

3.2.2、安裝php插件

#yum install -y mcrypt libmcrypt libmcrypt-devel

修改vim /etc/php.ini

error_reporting = E_ALL & ~E_NOTICE

3.2.3、安裝pear插件

# yum install -y php-pear

# pear upgrade pear

# pear channel-update pear.php.net

# pear install mail

# pear install Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman

# pear install mail_mime

3.2.4、安裝adodb

# tar -zxvf adodb-5.20.9.tar.gz -C /var/www/html

# mv /var/www/html/adodb5 /var/www/html/adodb

3.2.5、安裝base

# tar -zxvf base-1.4.5.tar.gz -C /var/www/html/

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

3.2.6、設置目錄權限

# chown -R apache:apache /var/www/html

# chmod 755 /var/www/html/adodb

3.2.7、配置mysql

解壓barnyard2(使用文件創(chuàng)建數(shù)據(jù)庫表)

# tar -zxvf barnyard2-1.9.tar.gz

啟動mysql

# service mysqld start

設置root密碼為123456

# mysqladmin -u root password 123456

# mysql -uroot -p123456

創(chuàng)建snort的數(shù)據(jù)庫,創(chuàng)建名為snort、密碼為123456的數(shù)據(jù)庫用戶并賦予名為snort數(shù)據(jù)庫權限。

mysql>create database snort;

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

退出數(shù)據(jù)庫,導入創(chuàng)建數(shù)據(jù)庫表。

# mysql -uroot -p123456 -D snort <
/root/test/barnyard2-1.9/schemas/create_mysql

3.3、配置base

# service mysqld start 啟動mysql

# service httpd start 啟動apache

# service iptables stop 關閉iptables

用瀏覽器打開http://192.168.60.180/base

點擊Continue,進入配置頁面,選擇顯示語言,設置adodb路徑。

點擊下一步,配置數(shù)據(jù)庫。

點擊下一步,自行配置用戶名和密碼,這里我設置為admin:admin

點擊繼續(xù)進入,再點擊“Create BASE AG”

如果顯示Successfully created的字樣則說明是成功了,點擊“step 5”

如此即說明安裝成功。

3.4、安裝配置snort

3.4.1、安裝依賴包

# yum install –y gcc flex bison zlib libpcap tcpdump gcc-c++ pcre* zlib*
libdnet libdnet-devel

3.4.2、安裝libdnet

# tar -zxvf libdnet-1.12.tgz

# cd libdnet-1.12

對libdnet進行編譯到/usr/local目錄

# ./configure && make && make install

3.4.3、安裝libcap

# tar -zxvf libpcap-1.9.0.tar.gz

# cd libpcap-1.9.0

# ./configure && make && make install

移動到/usr/local目錄下進行編譯

3.4.4、安裝DAQ

# tar -zxvf daq-2.0.5.tar.gz

# cd daq-2.0.5

# ./configure && make && make install

移動到/usr/local目錄下進行編譯

3.4.5、安裝snort

# tar -zxvf snort-2.9.9.0.tar.gz

# cd snort-2.9.9.0

# ./configure && make && make install

移動到/usr/local目錄下進行編譯

3.4.6、配置snort

首先創(chuàng)建文件目錄

# mkdir /etc/snort

# mkdir /var/log/snort

# mkdir /usr/local/lib/snort_dynamicrules

# mkdir /etc/snort/rules

# touch

/etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules

# cd /usr/local/snort-2.9.9.0

# cp gen-msg.map threshold.conf classification.config reference.config
unicode.map snort.conf /etc/snort

編輯配置文件

# vim /etc/snort/snort.conf

修改路徑

var RULE_PATH /etc/snort/rules

var SO_RULE_PATH /etc/snort/so_rules

var PREPROC_RULE_PATH /etc/snort/preproc_rules

var WHITE_LIST_PATH /etc/snort/rules

var BLACK_LIST_PATH /etc/snort/rules

設置日志目錄

config logdir: /var/log/snort

配置輸出插件

output unified2: filename snortlog, limit 128

3.4.7、配置規(guī)則庫

# tar -zxvf snortrules-snapshot-2990.tar.gz -C /etc/snort/

# cp /etc/snort/etc/sid-msg.map /etc/snort/

3.5、安裝barnyard2

# mv barnyard2-1.9 /usr/local

# ./configure --with-mysql --with-mysql-libraries=/usr/lib64/mysql/

# make && make install

3.5.1、配置barnyard2

創(chuàng)建文件目錄

# mkdir /var/log/barnyard2

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

# cp /usr/local/barnyard2-1.9/etc/barnyard2.conf /etc/snort/

修改配置文件

# vi /etc/snort/barnyard2.conf

config logdir: /var/log/barnyard2

config logdir:/var/log/barnyard2

config hostname:localhost

config interface:eth0

config waldo_file:/var/log/snort/barnyard.waldo

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

4、部署測試

4.1、測試snort

參數(shù)注解:

-T 指定啟動模式:測試

-i 指定網絡接口:eth0

-c 指定配置文件:/etc/snort/snort.conf

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

如此則測試成功。

4.2、測試barnyard2

參數(shù)注解:

-c 指定配置文件:/etc/snort/barnyard2.conf

-d 指定Log目錄:/var/log/snort

-f 指定Log文件:snort.log

-w 指定waldo文件:/var/log/snort/barnyard2.waldo

#barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w
/var/log/snort/barnyard2.waldo

如此即說明安裝成功,ctrl+c終止程序。

4.3、測試IDS

首先確保:httpd開啟,iptables關閉,mysql開啟。

# service httpd start

# service iptables stop

# service mysqld start

4.3.1、添加測試規(guī)則

#vim /etc/snort/rules/local.rules

添加一條檢查ping包的規(guī)則

alert icmp any any -> any any (msg: "IcmP Packet detected";sid:1000001;)

規(guī)則解釋:

4.3.2、測試運行

配置好后,我們依次啟動:-D為后臺運行

# barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w
/var/log/snort/barnyard2.waldo -D

# snort -D -T -i eth0 -c /etc/snort/snort.conf

同時我們使用主機ping測試虛擬機。

# ping 192.168.60.180 -t

當IDS命令執(zhí)行完畢后,用主機瀏覽器訪問base安全分析引擎頁面。

http://192.168.60.180/base

可以看到有檢測到IP數(shù)據(jù)。

4.3、配置IDS啟動腳本

# chmod 755 startids.sh

#!/bin/bash

echo
"*********************正在啟動服務************************"

barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w
/var/log/snort/barnyard2.waldo -D

snort -D -c /etc/snort/snort.conf -i eth0

echo
"*********************正在啟動完成************************"

4.4、啟動IDS

# service mysqld start 啟動mysql

# service httpd start 啟動apache

# service iptables stop 關閉防火墻

使用腳本啟動IDS:

手動啟動IDS:

#barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w
/var/log/snort/barnyard2.waldo -D

#snort –D -c /etc/snort/snort.conf -i eth0

4.5、測試IDS

使用ping命令向IDS所在IP發(fā)送數(shù)據(jù)包,base頁面會出現(xiàn)ICMP警告。

可以看到,在連續(xù)不斷的ping目標IP的情況下,基本安全分析引擎BASE就會源源不斷的收到數(shù)據(jù)包警報數(shù)據(jù),我們還可以對某個特定的數(shù)據(jù)包進行分析和查看。

接下來對TCP和UDP進行測試,首先添加規(guī)則到local.rules中。

# vim /etc/snort/rules/local.rules

在網站根目錄下添加一個自定義網頁。

使用另外一個臺機器訪問此網頁。

再打開安全分析引擎BASE主頁面,發(fā)現(xiàn)TCP和UDP已經有了數(shù)據(jù)。

下一步跟進數(shù)據(jù),可以看到協(xié)議類型等信息。

通過IP分析,可以清晰的看到IP間的通訊情況。

最后我們使用namp對端口進行掃面查看安全引擎的檢測情況。

首先對snort進行簡單配置。

# vim /etc/snort/snort.conf

修改此處配置信息

# preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { high
}

將如下注釋去掉

# include $PREPROC_RULE_PATH/preprocessor.rules

# include $PREPROC_RULE_PATH/decoder.rules

# include $PREPROC_RULE_PATH/sensitive-data.rules

首先看到BASE的端口掃描通信區(qū)域沒有顯示。

接下來使用使用Kali中的nmap命令對目標IP進行掃描。

同時打開BASE主頁面,發(fā)現(xiàn)流量監(jiān)控數(shù)據(jù)同步顯示。

打開端口掃描通信查看詳細信息。

可以看到掃描流量的詳細信息。

自此,snort測試工作成功,可以上線運行。

4.6、停止IDS服務

可以使用已經配置好的腳本停止IDS。

也可以手動停止服務。

killall -9 snort barnyard2

總結

以上是生活随笔為你收集整理的基于snort、barnyard2和base的 网络入侵检测系统的部署与应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。