Snort的安裝以及使用實驗

Snort實驗

一.實驗環境apache

操做系統:ubuntu18.0四、Kaliubuntu

實驗工具:snort、vmware workstation瀏覽器

1號機IP:192.168.204.131服務器

2號機IP:192.168.204.132網絡

二.實驗內容tcp

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

Part A學習

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

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

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對全部流量的數據根據規則進行匹配,有時會產生不少合法程序的誤報。

相關文章
相關標籤/搜索