入侵检测系统搭建实验操作手册
一.【实验目的】
(1)掌握snort入侵检测系统环境搭建和使用。
(2)了解入侵检测工作原理和应用。
二.【实验环境】
实验所需器材:
(1)两台PC主机
(2)两根网线
三.【实验配置】
(1)操作系统:主机A操作系统Windows系统。
(2)软件配置:主机A需要使用到的软件主要有:MobaXterm。
(3)网络配置:
主机A的网络配置信息如下:
IP | 192.168.1.20 |
---|---|
Netmask | 255.255.255.0 |
Gateway | 192.168.1.1 |
主机B的网络配置信息如下:
IP | 192.168.5.21 |
---|---|
Netmask | 255.255.255.0 |
Gateway | 192.168.5.1 |
为了让每一个实验案例顺利进行,请严格按照此文档对各主机进行网络配置。
四.【实验原理】
一、数据包捕获
Snort依赖于libpcap库(或在Windows平台上的winpcap)来捕获网络数据包。在捕获数据包时,Snort需要将网卡设置为混杂模式,以便能够接收到所有经过网络接口的数据包,而不仅仅是发往本机的数据包。
二、数据包解码
捕获到的数据包被送到包解码器进行解码。网络中的数据包可能具有不同的格式,如以太网包、令牌环包、TCP/IP包、802.11包等。包解码器的任务是将这些不同格式的数据包解码成Snort能够识别的统一格式。
三、预处理
解码后的数据包进入预处理阶段。预处理阶段主要完成一些初步的处理工作,如TCP碎片重组、HTTP解码、Telnet解码等。这些处理工作有助于后续规则匹配阶段更准确地识别出潜在的攻击行为。
四、规则匹配
规则匹配是Snort入侵检测系统的核心部分。Snort使用预定义的规则集来检测潜在的攻击行为。规则集通常以Snort.conf文件的形式存在,其中包含了各种攻击模式和特征。
Snort会对数据包的各个字段(如源IP、目的IP、端口号、协议类型等)进行匹配,判断是否满足规则集中的条件。规则匹配引擎使用高效的数据结构和算法来加速匹配过程,以提高检测效率。
五、响应处理
一旦发现匹配的数据包,Snort将采取相应的响应机制。Snort具有多种响应机制,包括报警(Alert)、记录日志(Log)、启动其他动态规则链(Activation)等。这些响应机制可以根据实际需求进行配置和使用。
报警:Snort可以通过多种方式报警,如将报警信息输出到控制台、日志文件或发送到其他系统。
记录日志:Snort可以将检测到的攻击行为记录到日志文件中,以便后续分析和取证。
启动其他动态规则链:Snort可以根据检测结果启动其他动态规则链,以进一步检测和处理潜在的攻击行为。
六、工作模式
Snort具有三种工作模式:嗅探器模式、数据包记录器模式和网络入侵检测系统模式。
嗅探器模式:在此模式下,Snort仅从网络上读取数据包并显示在终端上,不进行任何处理或响应。
数据包记录器模式:在此模式下,Snort将捕获到的数据包保存到文件中,以便后续分析。这对于网络安全审计和取证非常有帮助。
网络入侵检测系统模式:这是Snort最常用的模式。在此模式下,Snort实时分析网络流量,并根据用户定义的规则集识别出潜在的恶意活动。
五.【实验步骤】
下面操作步骤以SSH形式登录设备,也可以通过VLC远程登录。
1)通过SSH方式登录设备,输入用户名和密码进入系统。
用户名:hnxs密码:123123
2)将当前用户切换到root权限用户,root用户密码“123123”。
su
3)安装入侵检测系统环境依赖库文件
apt-get install -y libpcre3-dev libdnet-dev zlib1g-dev libdumbnet-dev bison flex libpcap-dev
4)将snort源码、dap数据采集器和LuaJIT依赖库上传到设备用户目录中
5)解压daq数据采集器
tar -zxf daq-2.0.7.tar.gz
6)跳转到解压后daq目录
cd daq-2.0.7
7)执行configure设置daq编译环境。
./configure
8)执行make编译daq源码,编译完成后部署到系统环境中
make;make install
9)跳转到用户目录,解压LuaJIT依赖库
cd …;unzip luajit.zip
10)跳转到解压后LuaJIT目录
cd luajit
11)通过“make”编译LuaJIT依赖库和安装到系统中
make;make install
12)跳转到用户目录,解压snort入侵检测系统源码
cd …/;tar -zxf snort-2.9.20.tar.gz
13)跳转到解压后snort目录
cd snort-2.9.20
14)执行执行configure设置snort编译环境。
./configure --enable-sourcefire
15)执行make编译snort源码并安装到系统中。编译snort代码需要等待一段时间。
make;make install
16)通过“mkdir -p”命令递归创建Snort所需的多个目录结构,包括配置文件目录、规则目录、预处理规则目录、动态规则库目录以及SO规则目录。
mkdir -p /etc/snortmkdir -p /etc/snort/rulesmkdir -p /etc/snort/rules/iplistsmkdir -p /etc/snort/preproc_rules mkdir -p /usr/local/lib/snort_dynamicrulesmkdir -p /etc/snort/so_rules
17)使用“touch”命令创建Snort的黑名单、白名单规则文件,本地规则文件以及SID消息映射文件。
touch /etc/snort/rules/iplists/black_list.rulestouch /etc/snort/rules/iplists/white_list.rulestouch /etc/snort/rules/local.rulestouch /etc/snort/sid-msg.map
18)创建snort日志目录
mkdir -p /var/log/snortmkdir -p /var/log/snort/archived_logs
19)将snort配置模板文件复制到/etc/snort环境目录中
cp etc/.conf /etc/snort cp etc/.map /etc/snortcp etc/.dtd /etc/snort
20)将snort相关库文件复制到var目录
sudo cp src/dynamic-preprocessors/build/usr/local/lib/snort_dynamicpreprocessor/* /usr/local/lib/snort_dynamicpreprocessor/
21)编辑snort.conf配置文件
nano /etc/snort/snort.conf
22)修改配置网络信息
ipvar HOME_NET 192.168.0.0/16
23)修改snort配置文件夹路径
var RULE_PATH /etc/snort/rulesvar SO_RULE_PATH /etc/snort/so_rules var PREPROC_RULE_PATH /etc/snort/preproc_rules
24)修改snort配置文件黑名单和白名单路径
var WHITE_LIST_PATH /etc/snort/rules/iplistsvar BLACK_LIST_PATH /etc/snort/rules/iplists
25)配置规则文件和删除其他规则。按Ctrl+6设置起始点,Ctrl+K剪切选定的文本。
include $RULE_PATH/local.rules
26)更新snort共享库
ldconfig
27)将snort二进制文件创建到/usr/sbin/snort的符号链接
ln -s /usr/local/bin/snort /usr/sbin/snort
28)启动snort验证安装是否成功
snort -V
29)启动snort验证配置文件是否正确。-T表示启动测试
snort -T -c /etc/snort/snort.conf -i eth2
30)编辑snort入侵检测规则
nano /etc/snort/rules/local.rules
31)修改入侵检测规则,添加ICMP监听规则
alert icmp any any -> $HOME_NET any (msg:“ICMP Test detected!!!”; classtype:icmp-event; sid:10000001; rev:001; GID:1; )
32)设置设备eth2网络接口IP地址
ifconfig eth2 192.168.5.1
33)启动snort入侵检测系统,-A表示设置警告模式(fast\full\console\test or none),-q表示静默方式运行,-c表示指定配置文件,-i表示指定网络接口。
snort -A console -q -c /etc/snort/snort.conf -i eth2
34)主机B ping设备IP地址
ping 192.168.5.1
35)设备入侵检测系统检测到主机B ICMP报文
36)按“CTRL+C”退出snort程序,修改入侵检测规则,添加检测HTTP 80端口规则
alert tcp any 80 -> $HOME_NET any (msg:“HTTP Test detected!!!”; classtype:not-suspicious; sid:10000002; rev:001; )
37)设备启动HTTP服务器,端口号设置为8000
python3 -m http.server 80 &
38)启动snort入侵检测系统,检测HTTP服务器
snort -A console -q -c /etc/snort/snort.conf -i eth2
39)主机B访问设备HTTP服务器,打开浏览器软件,输入设备IP地址访问HTTP服务器。
192.168.5.1
40)设备入侵检测系统检测到主机B 访问HTTP服务器
六.【实验思考】
(1)Snort如何检测入侵行为?
(2)如何使用攻击工具来模拟各种网络攻击,并使用snort进行检测?
最后
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。
干货主要有:
①1000+CTF历届题库(主流和经典的应该都有了)
②CTF技术文档(最全中文版)
③项目源码(四五十个有趣且经典的练手项目及源码)
④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)
⑤ 网络安全学习路线图(告别不入流的学习)
⑥ CTF/渗透测试工具镜像文件大全
⑦ 2023密码学/隐身术/PWN技术手册大全
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
扫码领取
