Snort的安裝以及使用實驗


Snort實驗

一.實驗環境

操作系統:ubuntu18.04、Kali

實驗工具:snort、vmware workstation

1號機IP:192.168.204.131

2號機IP:192.168.204.132

二.實驗內容

在進行Snort配置前需要搭建實驗環境,實驗所需的環境配置如下圖所示:

Part A

在1號機上運行Snort對網絡接口eth0進行監聽,要求如下:

1)僅捕獲2號機發出的icmp回顯請求數據包。

2)采用詳細模式在終端顯示數據包鏈路層、應用層信息。

3)對捕獲信息進行日志記錄,日志目錄/var/log/snort。

Part B

在1號機上運行Snort對網絡接口eth0進行監聽,要求如下:

1)僅捕獲2號機發出的telnet請求數據包。

2)將捕獲數據包以二進制方式存儲到日志文件中/var/log/snort/snort.log。

Part C

在1號機的snort規則集目錄ids/rules下新建snort規則集文件new.rules,對來自外部主機的、目標為當前主機80/tcp端口的請求數據包進行報警,報警消息自定義。

在1號機上編輯snort.conf配置文件,使其包含new.rules規則集文件。

以入侵檢測方式啟動snort,進行監聽,2號機訪問1號機Web服務。

三.實驗步驟

安裝snort:

https://www.snort.org/downloads/archive/snort/daq-2.0.6.tar.gz

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

安裝所需的頭文件庫

如果是Kali端:

apt-get install gcc                             : 編譯器,如果報錯,apt-get install g++

apt-get install flex                      : DAQ所需的解析器

apt-get install bison                          : DAQ所需的解析器

apt-get install zlib1g-dev                  : Snort所需的壓縮庫

apt-get install libpcap-dev             : Snort所需的網絡流量捕獲頭文件庫

apt-get install libdnet-dev                : 不是必要的,只是snort為幾個網絡歷程提供了簡化的可移植接口

apt-get install luajit                  : lua的頭文件庫headers

apt-get install liblua5.1-0-dev

apt-get install liblua5.1-0-dev liblua50-dev liblualib50-dev

apt-get install build-essential            : 提供編譯軟件的構建工具

apt-get install libpcre3-dev        : Snort所需的pcre3的頭文件

apt-get install libdumbnet-dev         : 同libdnet

apt-get install openssl libssl-dev : ssl的加密組件,提供SHA和MD5文件簽名

apt-cache search lua

#源碼安裝libpcap

tar -zxvf libpcap-1.9.0.tar.gz

cd libpcap-1.9.0

./configure && make && make install

#源碼安裝nghttp2

tar -zxvf nghttp2-1.35.1.tar.gz

cd nghttp2-1.35.1

./configure && make && make install

#源碼安裝LuaJIT

tar -zxvf LuaJIT-2.0.5.tar.gz

make && make install (ps:無./configure)

#源碼安裝pcre

tar -zxvf pcre-8.42.tar.gz

cd pcre-8.42.tar.gz

./configure && make && make install

#源碼安裝daq

tar -zxvf daq-2.0.6.tar.gz

cd daq-2.0.6

./configure && make && make install

#源碼安裝snort

tar -xvzf snort-2.9.7.0.tar.gz                           

cd snort-2.9.7.0

./configure --enable-sourcefire

make

make install

#更新共享庫

ldconfig                                                         

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

snort -V

如果是Ubuntu,則很簡單:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install snort
#檢查是否安裝成功
snort -V

Part A:

監聽端口ens37: sudo snort -i ens37 -dev icmp and src 192.168.204.132 -l /var/log/snort

2號機ping 1號機:

1號機:

使用wireshark打開保存的日志記錄:

Part B:

1號機開啟telnet:

安裝openbsd-inetd:

sudo apt-get install openbsd-inetd

安裝telnetd:
sudo apt-get install telnetd

重啟openbsd-inetd:
sudo /etc/init.d/openbsd-inetd restart

查看telnet運行狀態:
sudo netstat -a | grep telnet

1號機開啟監聽並記錄日志:

sudo snort -i ens37 -b tcp and src 192.168.204.132 and dst port 23

2號機發起請求:

sudo telnet 192.168.204.131

1號機:

wireshark打開日志:

sudo wireshark /var/log/snort/snort.log.1605864340

Part C:

在1號機的snort規則集目錄ids/rules下新建snort規則集文件new.rules,對來自外部主機的、目標為當前主機80/tcp端口的請求數據包進行報警,報警消息自定義:

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

輸入:alert tcp any any -> 192.168.204.131 80 (msg:"WARNING! There is http connect!" ;sid:26287)

編輯snort.conf配置文件,使其包含loacl.rules規則集文件:

gedit /etc/snort/rules/local.rules

添加:include $RULE_PATH/local.rules

安裝apache:

sudo apt install apache2 -y

開啟apache:

sudo service apache2 start

以入侵檢測的方式啟動snort進行監聽:

snort -c /etc/snort/snort.conf -A console -i ens37

2號主機在瀏覽器訪問1號主機的服務器:

1號主機發生警告:

四.實驗總結

​ 通過本次實驗,我學會了snort的部署和相關命令的使用,認識到snort的強大。在使用的過程中不斷的遇到問題,解決問題,從這個過程中我也學習到了許多的知識,了解到snort的三種方式嗅探器模式,包記錄器模式,和網絡入侵檢測系統模式。嗅探器模式僅僅是從捕獲網絡數據包顯示在終端上,包記錄器模式則是把捕獲的數據包存儲到磁盤,入侵檢測模式則是最復雜的能對數據包進行分析、按規則進行檢測、做出響應。但是snort也存在缺點,Snort由各功能插件協同工作,安裝復雜,各軟件插件有時會因版本等問題影響程序運行;Snort對所有流量的數據根據規則進行匹配,有時會產生很多合法程序的誤報。


免責聲明!

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



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