20252810 2025-2026-2 《网络攻防实践》实践五报告
1.实践内容
1.1 PDR模型
PDR安全模型是一个基于时间的动态安全模型,以经典的网络安全不等式P>Dt+Rr为本质基础,并提出安全性可量化和可计算的观点。如果信息系统的防御机制能够抵御入侵的时间P,能够超过检测机制发现入侵的时间D和响应机制有效应对入侵的时间Rt之和,那么这个信息系统就是安全的。
1.2 P²DR模型
20世纪90年代末RSS公司在PDR模型的基础上进一步扩展出P2DR安全模型,基本描述为:网络安全=根据风险分析制定安全策略(Policy)+执行安全防护策略(Protection)+实时检测(Detection)+实时响应(Response)。
1.3 防火墙
防火墙指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。从技术范畴上说,防火墙属于一种网络上的访问控制机制,通过在不同的网络安全域之间建立起安全控制点,对通过的网络传输数据进行检查,根据具体的安全需求和策略设置决定是否允许网络访问通过防火墙,达到保护特定网络安全域免受非法访问和破坏的安全目标。其具备以下功能:
1.检查控制进出网络的网络流量
2.防止脆弱或不安全的协议和服务
3.防止内部网络信息的外泄
4.对网络存取和访问进行监控审计
5.防火墙可以强化网络安全策略并集成其他安全防御机制
缺点如下:
1.来自网络内部的安全威胁
2.通过非法外联的网络攻击
3.计算机病毒传播
4.针对开放服务安全漏洞的渗透攻击。
5.针对网络客户端程序的渗透攻击
6.基于隐蔽通道进行通信的特洛伊木马或僵尸网络。
1.4入侵检测
入侵检测,顾名思义,就是对入侵行为的检测与发现。在网络攻防技术领域,一次入侵可被定义为任何尝试破坏信息资源的保密性、完整性或可用性的行为。入侵检测即为通过对计算机网络或计算机系统中若干关键点信息的收集和分析,从中发现入侵行为的一种安全技术。
1.5 开源网络入侵检测系统Snort
Snort是一款非常著名的开源网络入侵检测系统软件,它被设计成一个跨平台、轻量级的网络入侵检测系统,用C语言编写,并采用了标准的捕获数据包函数库libpcap,具有非常好的可移植性。Snort软件的基本架构主要由四个基本部分组成
数据包嗅探/解码器(sniffer)
预处理器/插件(preprocessor)
检测引|擎/插件(detection engine)
输出模块/插件(output modules)
2.实践过程
1.过滤ICMP数据包,使得主机不接收Ping包;
首先,输入指令"iptables -L"查看所有规则

在kali中输入ifconfig查看kali的IP地址,并在WinXPattacker中输入ping 192.168.200.2(kali的IP地址)

在kali中输入iptables -A INPUT -p icmp -j DROP,阻止主机接受icmp的数据包。

这个时候再次使用WinXPattacker ping kali已经ping不通了

再次在kali中查找规则(sudo iptables -L),可发现多了一条

输入sudo iptables -F删除规则并再次查看规则,确认已清除。

2.只允许特定IP地址访问主机的某一网络服务,而其他的IP地址无法访问
| 主机 | IP地址 |
|---|---|
| Kali | 192.168.200.2 |
| WinXPattacker | 192.168.200.8 |
| SEEDUbuntu | 192.168.200.11 |
首先,在kali中输入命令sudo service apache2 start,打开简易的http服务

在谷歌浏览器中输入http://192.168.200.2/(kali的IP)

成功访问
seed中同样成功

在kali中输入iptables -I INPUT -p tcp --dport 80 -j DROP(阻断所有访问 80 端口的连接)
iptables -I INPUT -p tcp -s 192.168.200.8 --dport 80 -j ACCEPT(允许IP192.168.200.8连接)

再次刷新浏览器,发现只有WinXPattacker的能连接,seed的已经连接不了了


2.2 动手实践:Snort
在kali中输入snort -c /etc/snort/snort.lua -r ./listen.pcap -l /var/log/snort -A fast
会弹出提示要你先下载,点击y然后输入密码就行(这里我后面改了个命令,这一步可以改成sudo apt-get install snort,这里就不改下载截图了)

查看防火墙运行时规则(分页查看,按空格翻页)
iptables -L -n -v | less

查看防火墙脚本(看它是怎么生成规则的)
cat /etc/init.d/rc.firewall

查看IPS是否在用QUEUE机制
iptables -L -n -v | grep QUEUE

查看Snort IDS配置(重点看网络变量和规则文件)
cat /etc/hflow/snort.conf | grep -E "HOME_NET|EXTERNAL_NET|include"

检查Snort进程是否在跑
ps aux | grep snort

蜜网网关通过 iptables 防火墙和 Snort IDS/IPS 实现数据捕获与控制。数据捕获方面:iptables 使用 LOG 规则记录蜜罐间流量(前缀 Honeypot->Honeypot)和出站新连接超限行为,同时 QUEUE 规则将数据包交给 Snort_inline 深度检测;Snort IDS 进程独立记录攻击报警。数据控制方面:对蜜罐出站 TCP/UDP 新连接进行限速(超过 1/小时则 DROP),防止蜜罐被入侵后成为攻击跳板;QUEUE 配合 Snort_inline 实时阻断匹配攻击特征的数据包。最终实现蜜网核心需求:捕获攻击数据、控制攻击行为向外扩散。
3.学习中遇到的问题及解决
-
问题1:浏览器无法访问kali
![image]()
-
问题1解决方案:IE浏览器不行,换谷歌浏览器
![image]()
-
问题2:listen.pcap文件丢失
![image]()
-
问题2解决方案:问题不大,重新把文件拖进去就行。
-
问题3:vim /etc/init.d/rc.firewall输出是
![image]()
-
问题3解决方案:绕过这个换了其他方案
4.实践总结
在防火墙配置实践中,使用 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP 禁止主机响应 Ping 包,并通过 iptables -A INPUT -p tcp --dport 80 -s 192.168.200.3 -j ACCEPT 和 iptables -A INPUT -p tcp --dport 80 -j DROP 实现仅允许特定 IP(192.168.200.3)访问 HTTP 服务,其他 IP 被拒绝;在 Snort 入侵检测实践中,使用命令 snort -c /etc/snort/snort.conf -r 扫描文件.pcap -l /var/log/snort 对给定的 pcap 文件进行分析,通过配置获得明文报警日志,从而识别出其中的端口扫描或攻击行为;在蜜网网关分析中,发现其利用 iptables 的 LOG 和 QUEUE 规则配合 Snort_inline 实现攻击数据捕获(记录蜜罐间流量、超限连接)与数据控制(出站新连接限速、实时阻断恶意包),深刻体会到防火墙与入侵检测技术的联动是构建主动防御体系的关键。通过本次实践,我知道了 iptables 精细访问控制、Snort 离线分析以及蜜网数据控制机制,理解了安全工具如何协同完成“诱捕—检测—阻断—记录”的闭环。



