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對所有流量的資料根據規則進行匹配,有時會產生很多合法程式的誤報,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/227688.html
標籤:訊息安全
上一篇:js 前端詞典物件的屬性和值讀取
下一篇:Snort的安裝以及使用實驗
